Tests during dev process Design phase Review or other static test methods Coding phase Unit test Test phase Integration test, functional test, system test, QA, user acceptance test... Regression test, smoke test, stress test, performance test...
Disciplines (?) Test to keep quality from the beginning The earlier phase you test, the easier to ﬁnd bug The earlier you ﬁnd the bug, the lower cost to ﬁx More tests, less bugs (not linearly!)
Strategy As resources are always limited, test strategy should be built by ﬁxing or trying to ﬁxing the followings: test objective, test approach, total test time, test priorities, test schedule, test closure
Approach or Method White box Control ﬂow test, data ﬂow test Code coverage (c0, c1, c2) Black box test boundary value analysis, all pair testing, state transition graph or tables, decision table tests, speciﬁcation tests...
Agile Software Development http://en.wikipedia.org/wiki/Agile_software_development
Not a sliver bullet!!! No common solution Different projects need different agile solution Process is needed Rome was not build in one day Retrospective is needed Improve by ﬁnd and ﬁx problem agilely
Agile in my opinion We have many weapons XP, scrum, daily stand meeting, Kanban, velocity tracking, retrospective meeting... TDD, automation, continuous delivery, emergent design, lean software development... Find problems and solve them with above weapons agilely in every iteration
Agile VS other methods Not enemy relationships!!! ‘Standing on the shoulders of giants’ Always be improving agilely, comparing to other methods and agile method itself
Agile test Following V model in one agile iteration seems very difﬁcult But no step can be jumped and these tests must be done Problems become how to adopt these tests in one or several iterations
Solution No common or best solution!!! Only have better solutions
Solutions TDD would be a good choice Flexible and agile test strategy Info share in team (dev and test) Emergent design XP, especially at design phase Adjust test priorities for every iteration (scrum) Test automation, continuous delivery ...
In another word Agile test is test agilely ^_^