Agile testing for large projects

Post on 25-May-2015

381 views 1 download

description

real examples for agile testing on large software development projects.

Transcript of Agile testing for large projects

Agile Testing for Large ProjectsA practical Exmaple

Liang Gao

以色列空军信息管理系统 Mission Critical 整个项目全部采用 XP开发

概况

以色列空军信息管理系统 负责以色列空军日常运作与信息安全 得到党和国家领导人的多方关注

Mission Critical 整个项目全部采用 XP开发

概况

No “Deliver to QA“ No “Meeting the QA criteria for delivery” No ”Bug Priority” Short release Fully test in every two weeks Developer perform all regression at every cycle All Bugs fixed in each cycle “Planning Game” practice XP’s “Whole team” and “Site-together” practice

Conforming To XP

Detailed documentation required Use professional testers for full acceptance

test (User test) TDD (test driven development)

1st line of code is a test case Test automation at the every step of the

development Unit test Real user simulation

Variation To XP

Everyone tests Developer Business analysis Customer

Product size = test size Untested work = no work

Test Design and Execution

Eliminate dedicate tester bottleneck Increase developer test awareness more

corner case thinking better quality code coding for testability in nature

Everyone tests

Overall development progress = testing progress

Test size is more correlated with complexity than line of code

Strong signal to the whole team: only features after a fully regression at each iteration care counted as delivered product size.

Product size = test size

In all channels under all conditions In each iteration review, untested work = failure After 2 releases

90% of developer think acceptance and system test is important

33% of developer are very interested or interested in taking a lead role in acceptance test

60% of developers are interested in leading system test

Untested work = no work

Ease testing bottleneck

Code less, Test more

Isolation claims Testers should be separated from developer Only test on specifications, not something

“unofficially told” by developer Testers need not to be affected by developer

words Interaction

Shall we do more interaction between developers and testers?

Interaction or Isolation

Isolated testers only found minor defects on this project (developers did more testing already) 2 minor bugs in 2 weeks

Interaction or Isolation - finding

Integrate testing and coding Testing and coding time are usually equal Example : 5 hours specification, 10 hours coding,

10 hours testing

Active Planning

Regression as global effort – requires separate planning Run on each iteration’s last day Workload divided among each team members

Active Planning

Allocate bug-fix time globallyActive Planning

Team centered approach Fix Defects ASAP

Defects Management

Anyone in team can open Anyone in team can close Anyone in team can assign Sit-together reduce junk and duplicate defects

Team centered approach

Average time to fix a defect is about 1 hour Remain constant even project grows with

complexity No need to prioritize bugs!

Fix Defects ASAP

Fix Defects ASAP

Agile Practice Cost of Curve

Average Bug Fix Time Per-iteration

平均 Bug寿命

A successful project Full regression and testing at each iteration All bugs are fixed

Summary