Role Of Qa And Testing In Agile 1225221397167302 8
Transcript of Role Of Qa And Testing In Agile 1225221397167302 8
© Copyright GlobalLogic 2008 2
Time for Introduction
• Working with GlobalLogic India
• Practicing Agile for last 3 years
• Certified Scrum Master (CSM), OCP, ISTQB
• Published Articles in Scrum Alliance & CM Journal
• Blog - http://thought-reader.blogspot.com/
© Copyright GlobalLogic 2008 3
Agenda
• Agile Testing – An Overview
– Traditional vs. Agile Approach
– Agile Values
• Agile Testing practices
– Test Driven Development
– Continuous Integration
– Regression Testing
– Exploratory Testing
• Role of a Tester in an Agile Project
• A Case Study
© Copyright GlobalLogic 2008 4
Let us brainstorm
• Does agile help QA?
• What is the difference between testing in traditional environment and agile environment?
• Do testers and QA people have a role in agile software development environment? If yes, what?
• Why QA is so much neglected in agile?
• Do developers and testers remain at opposite poles as it happens in traditional testing model (though not always)?
© Copyright GlobalLogic 2008 7
Traditional vs. Agile Approach
Criteria Traditional Agile
Understanding Requirements Upfront Constant interaction within the
team and with the Product Owner
Planning Plan one time delivery which has to happen way later
Continuous sprint by sprint planning, deliver important
features first
Designing of Test Cases All Upfront Evolving and Iteration Wise
Manage Change Prohibit Change Adapt and adjust at every release and iteration boundary
Progress review Milestone document review See working software every iteration and every release
Quality Responsibility Quality Engineer Entire team
© Copyright GlobalLogic 2008 8
Agile Values
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
© Copyright GlobalLogic 2008 9
Agile synthesized
• Reference – “Agile QA Testing by Elisabeth Hendrickson
© Copyright GlobalLogic 2008 10
Agile Testing - Definition
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
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
In the end a story is not complete until testing is finished.
© Copyright GlobalLogic 2008 11
Focus of Agile Testing
• High Value features first
• Continuous Integration with pre/post release build automation
• Test Driven development
• Automation of unit & regression testing
• Automated acceptance testing
• Exploratory testing
© Copyright GlobalLogic 2008 12
Agile Testing Practices
• Within an Iteration
Automated Acceptance tests
Manual Exploratory
testing
Automated Unit Tests
• Define “Done”• Represent requirements
• Derive “Design”• Represent Specifications
• Provide additional feedback
© Copyright GlobalLogic 2008 13
Test Driven Development (TDD)
A software development technique which ensures that the software being developed is 100%
covered by unit test cases
• Write the unit test case• Execute the build Test
fails• Write just enough code to
cover the test• Execute the build Test
passes• Refactor
Write the Test
Refactor
Execute the build
Coding
Execute the build
Fail
Pass
Pass
Fail
© Copyright GlobalLogic 2008 14
Continuous Integration
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.
Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible
– Martin Fowler
Pre-release builds (hourly/nightly) help developers to improve the quality of the source code and release builds
help in automating the release process.
© Copyright GlobalLogic 2008 15
Continuous Integration
It is essential that code repository is centralized and unified tools are used
© Copyright GlobalLogic 2008 17
Exploratory Testing
• 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.
• Used in higher test levels to complement systematic (automated) testing
• Exploratory testing is like the chess game with the application
© Copyright GlobalLogic 2008 18
Role of a Tester in an Agile Project
• Testers are integral part of the team
• Participate in Release/Iteration planning
• Start Testing activities from the day 1
• Collaborates with the customer to define the acceptance test criteria Validates that the system is doing exactly what it is supposed to do
• Tests Stories once they are complete
• Focuses on test automation
• Focuses more on exploratory testing
• Practices pair testing (similar to pair programming)
• Collaborates with Development team
• Provides continuous feedback to the team
© Copyright GlobalLogic 2008 19
A Day in Life of a Tester
• Starts by looking at prioritized personal work queue
• Identifying the work items for the day
• Attending the standup meeting
• Collaboration with Dev Team (seeking and offering support)
• Depending on the type of work item
– Writing acceptance Criteria
– Writing the test case
– Automating a test case
– Executing a test case (manually)
© Copyright GlobalLogic 2008 20
Why does it fail?
• Hard!
• Agile does not fix everything
• Are we ready for a change?
• Practicing TDD is not easy
• A move from Manual testing to Automated testing
• Agile Testing needs a coder-tester profile
• It makes products to be delivered faster
• Partial adoption?
© Copyright GlobalLogic 2008 21
How GlobalLogic does it?
• GlobalLogic applies a unique method and platform for distributed software development, “GlobalLogic Velocity™”
• “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.“
• 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.
• 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.