What is AGILE Methodology ? How It Works ?

    AGILE is a methodology that enables continuous iteration of development and testing throughout the software development life cycle of the project. Iteration is defined as a small release of software. Agile Testing starts at the beginning of the project with rapid integration between development and testing.
    Development and Testing Diagram
    Development and Testing Diagram
    We can define the term “Agile” as “moving quickly and easily”. In agile testing, the testers are closely working with the development team and testing is done in parallel as and when a piece of code has been developed.  Daily team meetings and discussions is an essential part of agile projects. It helps to find out the issues in advance and work on those accordingly. Management can be aware of the gaps in requirements or technology with the help of quick development and testing. Then it is possible to find out the workaround for the problem.
    Agile techniques and processes can be the reason behind success if it applied properly. It can become the appropriate approach with the quicker development, testing and constant feedback from the user.
    Agile testing is a Team effort. Agile team can achieve Quality and success by working as a single team to fulfill the common objective. There is no term called “My work”, “His Work”, “Your work”, “I am done with my work”. In an Agile team, we can find only the terms like “Our work”, “We have completed our Work”.
    How Agile model Helps:- It helps us by saving of time and money.
    - Our highest priority is to satisfy the customer by rapid, continuous delivery of useful software.
    - Customers, developers and testers interact with each other time to time.
    - Working Build is delivered in a weekly or monthly basis as and when required.
    - Interactions between team members is emphasized more than tools and process.
    - We can respond to change requests rather than following a planned approach.
    - We can discuss the changes with our customers and add/remove new features based on feedback.
    - We can eliminate most of the defects and crashes at the initial stage by resolving the top most reported bugs.
    Agile Testing Methodology
    Agile Testing Methodology
    Types of Agile Methods:
    Scrum: Scrum is an Agile process, where we can divide our projects into small components to be developed and then to be tested in specific time-period called as sprint (small cycles). Each feature should get developed and tested in a specified small time-slice.
    Extreme Programming (XP)XP (Extreme Programming) is an agile methodology. It can be applied when we may have a system whose functionality is expected to change every few weeks/months. Sometimes, Our customers may not have a concrete idea of what the system should exactly do. In many software industries, the requirements are dynamically changing and this change is the only constant thing. This is when XP will work while other methodologies do not work.
    The main goal of XP is to deliver useful software to the customer as and when it is required. Here, we have to set expectations so that in a limited period of time, customers can receive a new build of the system with the most prioritized features. Then we can make new plans for the next release. We will finish as much of working software as we can and measure our progress accordingly.
    DSDM (Dynamic System Development Method)DSDM is based upon continuous development and Frequent Delivery. Goal of DSDM is to deliver a working software quickly, with more functionality which can be delivered at regular intervals. As the users are actively involved in the development of the system, they are more likely to accept the system. Development results are directly visible to the customer. So, there is an early indicator of whether the project will work or not. There is no chance of a nasty surprise at the end of development. Because of regular feedback from the customer, the developed system is more likely to meet the needed requirements. System is being delivered on time and on budget.
    Delivery Life Cycle
    Delivery Life Cycle

    FDD (Feature Driven Development):
    This process is mostly used in larger teams working on a project using object-oriented technology. Here, as a team, we can spend a small time period at the beginning of the project to have a clear understanding of the domain in which we are working and use that understanding to create a rough plan without getting stuck in analysis and design phase.
    We can create an overall development plan and a comprehensive Feature list. These can be broken into minor and major Feature sets. The development plan includes the order in which feature sets will be worked on, who will be responsible for which feature sets etc.. Then the team can start designing, building and testing the features within a particular time frame.
    Role of Agile Testers:Agile testers should have the primary ability to learn new things and Be Adaptive to changes. We can expand our skill set like understanding of Business or domain knowledge and increase our technical skills while working in an agile team. We should have a good experience in exploratory testing. We can help our development team or customers by looking the features from various perspectives and make them aware of any type of problems or issues that may arise. Instead of creating comprehensive test documentation, we can create some checklists or feature lists which can be reused throughout the Project life cycle
    As an agile tester we should concentrate our testing effort in some specific areas where there are chances to get most of the defects. This is the best guideline to achieve proper testing coverage within limited time period, resources and budget.
    Conclusion:We cannot stick to any given methodology, because the needs and conditions of the company and project may change regularly, and we need to be flexible in how to approach managing projects if we want them to be successful. A single methodology will not work all the time, so the best way is to determine which methods work at that time and adopt that methodology to suit our individual needs. This is what being “Agile” is fundamentally about. A good agile team should choose the technical practices that can best work for them. 
    Shared By: Roshan Rajak


To receive daily posted JOBS & Interview Questions
Just enter your email address below and click 'Submit'
Enter your email address:

Make sure to activate your subscription by clicking on the activation link sent to your email