Date post: | 22-Jan-2015 |
Category: |
Technology |
Upload: | sudipta-lahiri |
View: | 131 times |
Download: | 2 times |
10/04/2023
1
AGILE TESTING
Sudipta Lahiri
10/04/2023
2
Agile Testing
Agile testing is a software testing practice that follows the principles of agile software development (wikipedia)
Involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace
10/04/2023
3
The role of Agile Testing
Agile teams do need testers People with strong testing skills They might need QA in a different
form/shape! Your function is to support the business
by helping them understand the business and acceptance criteria Understand risks!
10/04/2023
4 The 9 principles...
10/04/2023
5
Testing moves the project forward...
10/04/2023
6
Testing is not a phase
10/04/2023
7
Everybody tests! Everyone Tests
On traditional projects, independent testers are responsible for all test activities.
In Agile, getting the testing done is the responsibility of the whole team. Yes, testers execute tests. Developers do too.
The need to get all testing done in an iteration may mean that the team simply cannot do as much in each sprint as they originally thought. If yes, then Agile has made visible the impedance
mismatch between test and dev that already existed. The team was not going as fast as they thought. They
appeared to be going quickly because the developers were going fast. But if the testing isn't done, then the features aren't done, and the team just does not have the velocity they think.
Goldratt's TOC says that the whole team can only go as fast as the slowest part. To go faster, the team has to widen the throughput of
the slowest part of the process. Eliminate the bottleneck; everyone tests.
10/04/2023
8
Reduce feedback latency
10/04/2023
9
Case Study:Test Planning for one release – in 2011
IR Activities Dev BuildPlanned Start
Planned End Team
Cal Days
Total PDs
Resources Rate items
Pre Release 17-01-11 08-02-11Defect Validation - Merges ~ all 6.2 HF1 -6.2HF6 = 150 defects QA -Aryaans 3 12 4 15/day/person
Test Case Development QA 10 60 6~1000 TCs
CHR CFT QA ,QA Aryaans 2 8 4IR1 16-02-11 17-02-11 01-03-11
Regression Testing ~Tier3 (1000 testcases)-need to skip incase of bandwidth issue QA -Aryaans 3 10.5 3.5 100 tc/day/personTest Case Development QA6.3 CHR Testing [Estimated Cases ~ 1000] QA 5 25 5 100TC/day/person 1000Merge Defect Validation all 6.2 HF1 -6.2HF5 defects QA 2 6 3 15 defects /day /person
IR2 01-03-11 02-03-11 08-03-11Regression Testing ~6000 testcases (Tier1,Tier2 and Tier3 ;these are non automated cases of the modules related to the defects tagged for 6.3 on dhruva) 5 65 13 7000Defect Validation - Defect Validation - QA Initiator Closure ~ 50 + - CHR Defects ~100 QA - Aryaans + 1 QA 1 4 4 15/day/person 200
IR3 10-03-11 11-03-11 16-03-11Defect Validation - Merges ~75 QA Aryaans 0.5 1.5 3Regression Testing(Unexecuted) ~ 100 testcases QA Aryaans 0.5 1.75 3.5 50/day/personInitiator Closure Defect Validation (CHR + Regression ) ~75 QA Aryaans 1.5 4.5 3
IR4 18-03-11 21-03-11 23-03-11Only rejected defects and automation run critical fixes QA Aryaans 1 1 1
Acceptance Scenario and Unautomated sanity Testing QA Aryaans 1 2 2Release Packaging QA 2 2 1
TOTAL 203 pds
4 QA Aryaans - 5 cal days -(2000 testcases)10 Resources - 80 tc/day/person to fill in the
bandwidth for execution of 4000 testcases for 5 cal days
So, 60mm of DCUT needed 20-25mm (10mm for testing + 10 developers for supporting all defects from testing) over a period of 6-8 weeks to make a release!This also, meant a requirements had to be frozen 5-6 months before release date.
We still had
regression leaks!
10/04/2023
10
Execution Today
Team is delivering continuously...Changes to scope can be taken anytime and delivered in 3-4 weeksTesting is part of the Development processEveryone tests! Development automates UTC; Testing automates ST
10/04/2023
11
Tests Represent Expectations
10/04/2023
12
Fix bugs asap... keep the code clean
10/04/2023
13
Reduce test documentation overhead
Lightweight Documentation: Instead of writing verbose, comprehensive test documentation, Agile testers: Use reusable checklists to suggest tests Focus on the essence of the test rather than the
incidental details Use lightweight documentation styles/tools Capturing test ideas in charters for Exploratory Testing Leverage documents for multiple purpose
Leverage One Test Artifact for Manual and Automated Tests Today, we invest in extensive, heavyweight step-by-
step manual test scripts in Word or a test management tool
Instead, capture expectations in a format supported by automated test frameworks like FIT/Fitnesse. The test could be executed manually More importantly that same test artifact becomes an
automated test when the programmers write a fixture to connect the test to the software under test.
10/04/2023
14
Tested is part of “DONE”
10/04/2023
15
Test Driven (not Testing Last)
10/04/2023
16 4 key practices
10/04/2023
17
Automated Unit/Integration tests
10/04/2023
18
Test Driven Development
10/04/2023
19
Automated System-Level Regression Tests
10/04/2023
20
Acceptance Test Driven Development
10/04/2023
21
In summary...
10/04/2023
The testing pyramid...
UI(5%)Services
(15%)Unit Tests(80%)
UI
Services
Unit Tests
22
Ideal State In most environments
Manual
COST
ROI
10/04/2023
23
But let us understand this in more detail
10/04/2023
24
Impact of Agile Requirements Agile testing must be iterative Agile testers cannot rely on having
complete specifications Agile testers must be flexible
The techniques exist to make this possible...
10/04/2023
25
Testing in the Agile world...
10/04/2023
26
Let us discuss these test cycle more... Development Team Testing:
Agile teams will take a whole team approach Testers are embedded in the development team, working side by side
to build the system Focus of their testing efforts are often on confirmatory testing Developer regression testing or better Test-Driven Development (TDD).
Parallel independent testing. Continuous independent testing parallel to construction iterations
throughout the lifecycle. Goal: find defects that got past the development team
Perform higher forms of testing such as system integration testing, security testing, usability testing
Need significant testing skills, complex tools, and often complex pre-production testing environments
10-15:1 ratio between people on the 2 teams In larger organizations, one team can support several development
teams
Release Testing Additional testing at the end of the lifecycle
10/04/2023
27
TestAutomation
10/04/2023
28
Where can you apply automation?
10/04/2023
29
TDD
Test-First-Development
Developer TDD Technical doc - JIT Seen more with pair
programming “Test Immediately”
after approach What happens when
we extend this to the next level...
10/04/2023
30
ATDD
TDD at the requirement level Acceptance TC is a
expectation of the customer
Write a single acceptance test; make code changes to pass it
Requirement spec (JIT) If you do ATDD, you don’t
need to TDD necessarily Also, called BDD or user-
story driven development
10/04/2023
31
Some industry trends...
10/04/2023
32
Some industry trends...
10/04/2023
33
Implications for Test Practioners Become generalizing specialists Be flexible. Be prepared to work closely with
developers. Once again, be flexible. Focus on value-added activities and again... Be flexible
10/04/2023
34
Finally... Why Agile Testing works?
10/04/2023
35
References
http://www.ambysoft.com/essays/agileTesting.html
http://testobsessed.com/wp-content/uploads/2011/04/AgileTestingOverview.pdf