agile testing benefits (atb)

Upload: vagabond4u

Post on 03-Jun-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 Agile Testing Benefits (ATB)

    1/7

    AGILE TESTING BENEFITS

    What is Agile Testing?

    Agile as the name refers implies something to do very quickly. Agile testing is used whenever customerrequirements are changing dynamically. Hence Agile Testing refers to validate the client requirements assoon as possible and make it customer friendly. As a Tester, you need to provide your thoughts on theclient requirements rather than just being the audience at the other end.

    If we have no SRS, BRS but we have test cases do you execute the test cases blindly or do you follow anyother process.

    Test case would have detail steps of what the application is supposed to do.1. Functionality of application.

    2. In addition you can refer to Backend, meaning look into the Database. To gain more knowledge of theapplication.

    Introduction to Agile Testing

    While the given application under test is still evolving depending upon the customer needs, the mindsetof the end user and the current market condition, it is highly impractical to go for the usual standardSDLC Models like Water Fall, V&V Model etc. Such models are most suitable for the Applications that arestable and non- volatile. The concept of Time -To-Market is the key word in todays IT Business thatcompels the Software vendors to come up with new strategies to save the time, resources, cut down thecost involved and at the same time, deliver a reliable product that meets the user requirements. In thiscase, a reasonably good amount of end-to-end testing is carried out and the product could beacceptable with known issues/defects at the end of an intermediate release. These defects are harmlessfor the Application usability.To adopt such a process in a systematic way, we have a new concept called Agile Methodology. Thismethodology continuously strives to overcome the issues of dynamically changing requirements whilestill trying to maintain a well-defined process.

    The process is as follows:1. The Customer prepares the Business Requirements and the Business Analyst or the Engineering teamreviews it. Ideally, the Quality Assurance/Testing team is also involved in reviewing these requirements

    in order to be able to plan further stages accordingly.2. During the Design and Implementation stages, the Engineering team writes User Stories and theanalysis of issues at various stages. The Customer reviews these on regular basis and updates theRequirement specifications accordingly. The Testing team would follow up on regular basis at everystage until a consolidated documentation is prepared. This is to ensure that the Customer, theEngineering team and the Testing team are at the same page always and thus ensuring complete testcoverage.

  • 8/11/2019 Agile Testing Benefits (ATB)

    2/7

    3. While the Engineering team starts the implementation, the Testing team starts with test planning,test strategies and test cases preparation. These would be properly documented and handed over to theCustomer and the Engineering team for review. This is to ensure the complete test coverage and avoidunnecessary or redundant test cases.4. As and when the Developer implements the code, the Testing team identifies if the application can be

    built using this code for a quick testing. This is to identify the defects at the early stage so that thedeveloper can fix them in the next round on priority basis and continue with further development. Thisiteration continues until the end of the code implementation. Once the testing cycle starts, the Testteam can now focus more on major test items such as Integration, Usability Testing and System Testingetc..

    Process followed at various stages in the product life cycle:

    Every intermediate release of the product would be divided into two short cycles, usually of the durationof 40 days each. Each cycle would be executed in the following stages. The roles and responsibilities ofevery individual and the team are clearly defined for each stage.

    - Design Specifications: The Testing teams efforts would focus on performing any tool or processimprovements and reviewing, understanding, and contributing to the nascent specifications.

    http://www.softwaretestingdiary.com/2012/03/what-is-agile-testing-advantages-of.html
  • 8/11/2019 Agile Testing Benefits (ATB)

    3/7

  • 8/11/2019 Agile Testing Benefits (ATB)

    4/7

    4. The development team has a responsibility to create automated unit tests which can be runagainst the code every time a build is performed

    5. With multiple code deliveries during the iteration, your regression testing requirements havenow significantly increased and without test automation support, your ability to maintain a

    consistent level of regression coverage will significantly decrease

    The role of a tester in an Agile project requires a wider variety of skills:

    1. Domain knowledge about the system under test

    2. The ability to understanding the technology be used

    3. A level of technical competency to be able to interact effective with the development team

    Advantages offered by Agile Methodology:

    The very first advantage is the saving of time and money. There is less documentation required thoughdocuments help to a great deal in verifying and validating the requirements but considering the timeframe of the project, this approach leads to focus more on the application rather than documenting thethings. Since it is iterative in its form, it tends to have a regular feedback from the end user so that thesame can be implemented as soon as possible. And because all phases of SDLC need to be completedvery quickly, there is a transparency to each individual working on the project with the status of eachphase.

    Another advantage that Agile Methodology offers to other approaches available is that in case there is

    any Change request or enhancements come in between any phase, it can be implemented without anybudget constraint though there needs to be some adjustment in the already allotted time frame whichwill not be a difficult task for the projects following Agile tactics.

    Daily meetings and discussions for the project following Agile approach can help to determine the issueswell in advance and work on it accordingly. Quick coding and Testing makes the management aware ofthe gaps existing in either requirements or technology used and can try to find the workaround for thesame.

    Hence, with the quicker development, testing and constant feedbacks from the user, the Agile

    methodology becomes the appropriate approach for the projects to be delivered in a short span of time.

    Principles behind Agile Manifesto:

    - Our highest priority is to satisfy the customer through early and continuous delivery of high-qualitysoftware.- Welcome changing requirements, even late in testing. Agile processes harness change for the

  • 8/11/2019 Agile Testing Benefits (ATB)

    5/7

    customers competitive advantage. - Deliver high-quality software frequently, from a couple of weeks to a couple of months, with apreference to the shorter timescale.- Business people, developers, and testers must work together daily throughout the project.- Build test projects around motivated individuals. Give them the environment and support they need,

    and trust them to get the job done.- The most efficient and effective method of conveying information to and within a test team is face-to-face conversation.- Working high-quality software is the primary measure of progress.- Agile processes promote sustainable development and testing. The sponsors, developers, testers, andusers should be able to maintain a constant pace indefinitely.- Continuous attention to technical excellence and good test design enhances agility.- Simplicity the art of maximizing the amount of work not done is essential.- The best architectures, requirements, and designs emerge from self-organizing teams.- At regular intervals, the test team reflects on how to become more effective, then tunes and adjusts itsbehavior accordingly.

    Agile Testing: Example

    Agile methodology with Extreme Programming and test-driven development was used to develop theSmart Client Offline Application Block. The following are highlights of the approach taken on the project:

    1. The test team and the development team were not formally separated. The developers workedin pairs, with one person developing the test cases and the other writing the functionality forthe module.

    2. There was much more interaction among team members than there is when following atraditional development model. In addition to using the informal chat-and-develop mode, theteam held a 30 minute daily standup meeting, which gave team members a forum for askingquestions and resolving problems, and weekly iterative review meetings to track the progressfor each iterative cycle.

    3. Project development began without any formal design document. The specifications were in theform of user stories that were agreed upon by the team members. In the weekly iterative reviewmeetings, team members planned how to complete these stories and how many iterations toassign for each story.

    4. Each story was broken down into several tasks. All of the stories and corresponding tasks werewritten down on small cards that served as the only source of design documentation for theapplication block.

    5. While developing each task or story, NUnit test suites were written to drive the development offeatures.

  • 8/11/2019 Agile Testing Benefits (ATB)

    6/7

    6. No formal test plans were developed. The testing was primarily based on the tasks or stories forfeature development. The development team got immediate feedback from the test team.Having the test team create the quick start samples gave the development team a perspectiveon the real-life usage of the application block.

    7. After the task or story passed all of the NUnit test cases and was complete, quick start sampleswere developed to showcase the functionality. The quick start samples demonstrated the usageof the application block and were useful for further testing the code in the traditional way(functional and integration tests). Any discrepancies found in this stage were reportedimmediately and were fixed on a case-by-case basis. The modified code was tested again withthe automated test suites and then was handed over to be tested again with the quick startsamples.

    Testing in an agile environment can be a challenge, but the benefits to having good testing areenormous. Here are a few keys to agile testing success:

    Test Early The key to agile is iteration: developing, testing, and developing again. To get themost out of an agile process, you have to test early. That means that you think about testing not just after the first couple of sprints, but at the very beginning of the development cycle.

    Test Often A good agile process emphasizes frequent testing. You are looking for defects early in the testing cycle. The longer defects wait in the code, the harder and more expensive they willbe to remove.

    Refactoring/Regression Stop every few weeks to focus on stability. Fix bugs, refactor old code,and run extensive regression testing to make sure you didnt miss bu gs during the ongoingtesting process.

    Test from a Customer Point of View As with any development process, its critical that thetesters and developers know the customers point of view. That means having good stories withcustomer relevant material, and then sharing those stories with the development team as wellas the testing team.

    Separate Testing from Development This is often difficult for smaller teams, but testersshould be independent. Keeping testers separate means they can develop true testing expertisewhile focusing on finding bugs.

    Communicate Having good communication between the testers, developers, and product guysis a key essential to a solid agile process. Even though testers should be separate fromdevelopers, they should work closely together to get the most from testing.

  • 8/11/2019 Agile Testing Benefits (ATB)

    7/7

    Automate What you Can The best agile teams automate as much of their testing load as theycan. Repeatedly testing the same case over and over is a waste of time. Locating new bugs is farmore valuable for any tester.