Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Role Of Qa And Testing In Agile 1225221397167302 8


Published on

  • Be the first to comment

Role Of Qa And Testing In Agile 1225221397167302 8

  1. 1. Role of QA and Testing in Agile Mayank Gupta
  2. 2. Time for Introduction <ul><li>Working w ith GlobalLogic India </li></ul><ul><li>Practicing Agile for last 3 years </li></ul><ul><li>Certified Scrum Master (CSM), OCP, ISTQB </li></ul><ul><li>Published Articles in Scrum Alliance & CM Journal </li></ul><ul><li>Blog - </li></ul>
  3. 3. Agenda <ul><li>Agile Testing – An Overview </li></ul><ul><ul><li>Traditional vs. Agile Approach </li></ul></ul><ul><ul><li>Agile Values </li></ul></ul><ul><li>Agile Testing practices </li></ul><ul><ul><li>Test Driven Development </li></ul></ul><ul><ul><li>Continuous Integration </li></ul></ul><ul><ul><li>Regression Testing </li></ul></ul><ul><ul><li>Exploratory Testing </li></ul></ul><ul><li>Role of a Tester in an Agile Project </li></ul><ul><li>A Case Study </li></ul>
  4. 4. Let us brainstorm <ul><li>Does agile help QA? </li></ul><ul><li>What is the difference between testing in traditional environment and agile environment? </li></ul><ul><li>Do testers and QA people have a role in agile software development environment? If yes, what? </li></ul><ul><li>Why QA is so much neglected in agile? </li></ul><ul><li>Do developers and testers remain at opposite poles as it happens in traditional testing model (though not always)? </li></ul>
  5. 5. Traditional software development
  6. 6. Agile testing -Why?
  7. 7. Traditional vs. Agile Approach Continuous sprint by sprint planning, deliver important features first Plan one time delivery which has to happen way later Planning Entire team Quality Engineer Quality Responsibility Evolving and Iteration Wise All Upfront Designing of Test Cases See working software every iteration and every release Milestone document review Progress review Adapt and adjust at every release and iteration boundary Prohibit Change Manage Change Constant interaction within the team and with the Product Owner Upfront Understanding Requirements Agile Traditional Criteria
  8. 8. Agile Values <ul><li>We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: </li></ul><ul><li>Individuals and interactions over processes and tools </li></ul><ul><li>Working software over comprehensive documentation </li></ul><ul><li>Customer collaboration over contract negotiation </li></ul><ul><li>Responding to change over following a plan </li></ul><ul><li>That is, while there is value in the items on the right, we value the items on the left more. </li></ul>
  9. 9. Agile synthesized <ul><li>Reference – “Agile QA Testing by Elisabeth Hendrickson </li></ul>
  10. 10. Agile Testing - Definition <ul><li>Agile testing is all about applying agile values and principles to testing. The value of agile testing lies in effective communication between developers, testers and the product owner </li></ul><ul><li>Testers write acceptance test cases and get them approved by the product owner. At the same time, coding is driven by the customer facing tests which is more likely to deliver better software </li></ul><ul><li>In the end a story is not complete until testing is finished. </li></ul>
  11. 11. Focus of Agile Testing <ul><li>High Value features first </li></ul><ul><li>Continuous Integration with pre/post release build automation </li></ul><ul><li>Test Driven development </li></ul><ul><li>Automation of unit & regression testing </li></ul><ul><li>Automated acceptance testing </li></ul><ul><li>Exploratory testing </li></ul>
  12. 12. Agile Testing Practices <ul><li>Within an Iteration </li></ul>Automated Acceptance tests Manual Exploratory testing Automated Unit Tests <ul><li>Define “Done” </li></ul><ul><li>Represent requirements </li></ul><ul><li>Derive “Design” </li></ul><ul><li>Represent Specifications </li></ul><ul><li>Provide additional feedback </li></ul>
  13. 13. Test Driven Development (TDD) <ul><li>A software development technique which ensures that the software being developed is 100% covered by unit test cases </li></ul><ul><li>Write the unit test case </li></ul><ul><li>Execute the build  Test fails </li></ul><ul><li>Write just enough code to cover the test </li></ul><ul><li>Execute the build  Test passes </li></ul><ul><li>Refactor </li></ul>Write the Test Refactor Execute the build Coding Execute the build Fail Pass Pass Fail
  14. 14. Continuous Integration <ul><li>Continuous Integration is a software development practice where members of a team integrate their work frequently; usually each person integrates at least daily - leading to multiple integrations per day. </li></ul><ul><li>Each integration is verified by an automated build (including test ) to detect integration errors as quickly as possible </li></ul><ul><li>– Martin Fowler </li></ul><ul><li>Pre-release builds (hourly/nightly) help developers to  improve the quality of the source code and release builds help in automating the release process. </li></ul>
  15. 15. Continuous Integration <ul><li>It is essential that code repository is centralized and unified tools are used </li></ul>
  16. 16. Regression Testing
  17. 17. Exploratory Testing <ul><li>Exploratory testing is concurrent test design, test execution, test logging and learning, based on a test charter containing test objectives, and carried out within time-boxes. </li></ul><ul><li>Used in higher test levels to complement systematic (automated) testing </li></ul><ul><li>Exploratory testing is like the chess game with the application </li></ul>
  18. 18. Role of a Tester in an Agile Project <ul><li>Testers are integral part of the team </li></ul><ul><li>Participate in Release/Iteration planning </li></ul><ul><li>Start Testing activities from the day 1 </li></ul><ul><li>Collaborates with the customer to define the acceptance test criteria  Validates that the system is doing exactly what it is supposed to do </li></ul><ul><li>Tests Stories once they are complete </li></ul><ul><li>Focuses on test automation </li></ul><ul><li>Focuses more on exploratory testing </li></ul><ul><li>Practices pair testing (similar to pair programming) </li></ul><ul><li>Collaborates with Development team </li></ul><ul><li>Provides continuous feedback to the team </li></ul>
  19. 19. A Day in Life of a Tester <ul><li>Starts by looking at prioritized personal work queue </li></ul><ul><li>Identifying the work items for the day </li></ul><ul><li>Attending the standup meeting </li></ul><ul><li>Collaboration with Dev Team (seeking and offering support) </li></ul><ul><li>Depending on the type of work item </li></ul><ul><ul><li>Writing acceptance Criteria </li></ul></ul><ul><ul><li>Writing the test case </li></ul></ul><ul><ul><li>Automating a test case </li></ul></ul><ul><ul><li>Executing a test case (manually) </li></ul></ul>
  20. 20. Why does it fail? <ul><li>Hard! </li></ul><ul><li>Agile does not fix everything </li></ul><ul><li>Are we ready for a change? </li></ul><ul><li>Practicing TDD is not easy </li></ul><ul><li>A move from Manual testing to Automated testing </li></ul><ul><li>Agile Testing needs a coder-tester profile </li></ul><ul><li>It makes products to be delivered faster </li></ul><ul><li>Partial adoption? </li></ul>
  21. 21. How GlobalLogic does it? <ul><li>GlobalLogic applies a unique method and platform for distributed software development, “GlobalLogic Velocity™” </li></ul><ul><li>“ GlobalLogic Velocity™ is an Agile product engineering method supported by an innovative collaboration platform, software frameworks and reusable software objects that together help bring high quality software products to market faster and with less risk.“ </li></ul><ul><li>Velocity Method is the GlobalLogic framework of processes, templates, and behaviors which optimizes communication and provides just enough structure to effectively manage distributed product engineering teams. </li></ul><ul><li>Velocity Platform is an integrated suite of tools and systems that aids Distributed Product Development by facilitating end-to-end collaboration and tracking of issues through Requirements Engineering, Iteration Planning and Release, Test Engineering, and Release Engineering. </li></ul>
  22. 22. Velocity – A case study
  23. 23. [email_address]