engaging iv&v testing services for agile projects
TRANSCRIPT
http://www.bilzits.com/servicests_en.asp
Presented By:
RAVI KUMAR
HCL Technologies Ltd.
• agile – 1 minute intro
•agile loves testers and testers fear
•Brian Maricks test categories
•testing role , old and agile ways of
testing
•agile testing – challenges, how to
and role of tester
•case for IV&V in the agile world
• role of automation and continuous
integration
•agile IV&V – Patterns &Anti
Patterns
•strategies & challenges
2
3
–
Iterative & Incremental
Something
agile
5
–
http://cartoontester.blogspot.com/2010/01/cartoon-agile-testing.html
7
Testers are Obsolete:
• Not true at all.
• Testers add value by
– Unearthing flaws than
validating just the
completeness.
– Focussing on feature
usage for customer than
looking into technical
implementation.
• Testers need to learn and
adapt to new ways.
http://www.altrock.su/music/metal/print:page,1,4083-fear-factory-obsolete-1998.html
8
http://www.raysullivan.com/2009/05/it-takes-a-village-to-test/
Brian Marick’s Test Categorization
9
Developer Tests (resistance to writing unit tests)
Does not know what to test.
Often lack of unit tests result in show stoppers
for QA/Functional Testing
Meant for Performance Testing
Rewrites of automation scripts
Tools adoption
Process of testing after dev.
Quality gates come to effect.
Code hand-off.
Managing test show-stoppers, support etc.
Reduced functional deliverables
Unit Testing
10
UI Testing
Unit Testing Foundation of a solid test
automation strategy.
Acceptance Criteria drives unit test
creation.
Testers can help developers to
identify unit test cases.
Expensive and has to be minimized.
Minimizing requires thoughts and
analysis.
Acceptance Testing.
Very good to capture customer or
business user perspective.
Not a substitute to unit testing.
Tools: Sahi, Watir, Selenium, Abbot, Frankenstein
Tools: Fit, Fitnesse, RSpec, JBehave
Tools: xUnit, TestNG
Ro
le o
f te
ste
r
11
–
testers are committed to ….
• define acceptance criteria and acceptance tests.
• clarify any ambiguity until it is understood by the team.
• testing along with development without sitting behind the QA wall
awaiting code hand-off.
• being an equal participant with the customer and the developer in
defining “DONE” criteria.
• maintaining of acceptance and other test scripts with automation
where feasible.
• provide frequent and continuous feedback to the team.
12
–
• Work with Customers, Business, Developers and
BAs to define acceptance criteria.
• Pair with developers and testers.
• Automate whatever you can. (xUnit test suites,
Web automation…)
– Can avoid manual regression tests.
– creating mocks to test end-to-end testing
scenarios.
• Metrics on bugs surfaced…..but remember
– Trailing indicators don’t help team much. (
Bugs that escaped into UAT)
– Leading indicators does help. (Bugs that
escaped just an iteration).
13
–
• Old ways die hard
• Adoption of automation tools.
– Tools such as QTP alone may not be
sufficient.
• Automating/maintaining test scripts.
• Bringing testing forward.
– In agile testing is first and then
development.
• Change in tester and management mindset
– Testers are also developers.
– Writing test scripts is similar to writing
code
14
• Conducts many types of testing which the dev team may not performs – Includes Non functional, SIT,
Exploratory, Risk Based, Security, Usability etc.
• IV&V teams support multiple dev teams.
• Engaging IV&V teams are economical.
• Helps is scaling agile in the organization.
•
•
•
•
16
To achieve the above…..the IV&V teams must have • Skills in right tools
• Just expensive proprietary tools may not work.
• Any tool to support testing.
• Right roles represented in the team • Toolsmith
• Test Developer
• Testers
17
Continuous Integration is CRITICAL !!!
–
Early Testing: Component Based
Early Testing: Layered Approach
18
19
• Functional • Leveraging common testing frameworks
(Ex. xunits , Acceptance Tests etc.)
• Invoke QC/QTP tests as part of weekly
builds.
• End-to-End Testing • Identify Services Interdependencies.
• Test Data Creation and Canned Test Data
Repositories ahead of time.
• Leverage Functional Test Suites from
Functional Team. Automate Input
Scenarios, Business Flows and Expected
Outputs.
• RBT for Evolving
Requirements • Release planning to identify potential
RBTs
• Collaborate with BAs as an ongoing
basis by parallel test teams
• Automate RBTs on stable sprint code
Early Testing Continued…
PATTERNS
• Share a common product
backlog and sprint backlog
• Work in the same team as
developers
• Common planning sessions
• Automation and test script
refactoring
• Helps developers pre-empt
bugs
ANTI PATTERNS
• Separate backlogs
• Separate teams
• Testers only planning
sessions.
• Reliance on only manual
testing.
• Await code drops and hand
offs to begin testing
• Catalogue bugs.
20
Questions
1. Agile Testing: http://en.wikipedia.org/wiki/Agile_testing
2. Agile Testing and Quality Strategies: Discipline Over Rhetoric:
http://www.ambysoft.com/essays/agileTesting.html#IndependentParallelTe
sting
3. Lisa Crispin, Janet Gregory (2009). Agile Testing: A Practical Guide for
Testers and Agile Teams. Addison-Wesley. ISBN 0-321-53446-8.
4. Agile Manifesto: http://agilemanifesto.org/
5. Brian Marick Test Categories: http://www.raysullivan.com/2009/05/it-
takes-a-village-to-test/
6. Agile and Independent Testing:
https://www.ibm.com/developerworks/mydeveloperworks/blogs/ambler/entr
y/agile_and_independent_testing25?lang=en
7. Agile Test Automation:
http://www.satisfice.com/presentations/agileauto.pdf
22