Testing and EVO: Evolutionary Project...

25
Testing and EVO: Evolutionary Project Management Peter Dolog dolog [at] cs [dot] aau [dot] dk 5.2.47 Information Systems March 6, 2008

Transcript of Testing and EVO: Evolutionary Project...

Page 1: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

Testing and EVO: Evolutionary Project Management

Peter Dologdolog [at] cs [dot] aau [dot] dk5.2.47Information SystemsMarch 6, 2008

Page 2: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

2Peter Dolog, SOE, Testing and EVO

Goal

Agile Testing PrinciplesTutorial on Design and XP reflections (d401a, s601d)EVO

Page 3: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

3Peter Dolog, SOE, Testing and EVO

What you should learn

To apply test driven practices and to motivate themTo reflect on XP and design practicesTo apply EVO

Page 4: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

4Peter Dolog, SOE, Testing and EVO

Goal

Agile Testing Principles• Testing overview• Unit testing environment• Large agile testing case• Case results• Easy accept

Tutorial on Design and XP reflections (d401a, s601d)EVO

Page 5: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

5Peter Dolog, SOE, Testing and EVO

Software Testing

Modelling the software environmentSelecting test scenariosRunning and evaluating the test scenariosMeasuring testing progress

Page 6: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

6Peter Dolog, SOE, Testing and EVO

What Testing Shows

errorsrequirements conformance

performance

an indicationof quality

Page 7: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

7Peter Dolog, SOE, Testing and EVO

Equivalence Partitioning

userqueries

mousepicks

outputformats

prompts

FKinput

data

Page 8: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

8Peter Dolog, SOE, Testing and EVO

Unit Testing Environment

Test cases

interface

local data structures

boundary conditions

independent paths

error handling paths

driver

module

stub stub

RESULTS

Page 9: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

9Peter Dolog, SOE, Testing and EVO

Top Down Integration

A

FB G

C

D E

top module is tested withstubs

stubs are replaced one ata time, “depth or breadth first”

as new modules are integrated,some subset of tests is re-run

Page 10: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

10Peter Dolog, SOE, Testing and EVO

Debugging: Symptoms & Causessymptom and cause may be

geographically separated

symptom may disappear when another problem is fixed

cause may be due to a combination of non-errors

cause may be due to a system or compiler error

cause may be due to assump–tions that everyone believes

symptom may be intermittent

causesymptom

Page 11: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

11Peter Dolog, SOE, Testing and EVO

Who Tests the Software?

developer independent tester

Understands the system but, will test "gently"and, is driven by "delivery"

Must learn about the system,but, will attempt to break itand, is driven by quality

Page 12: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

12Peter Dolog, SOE, Testing and EVO

Agile Testing Case

Enterprise Information SystemXP Conformant

• Short Releases, System tested every two weeks, planninggame, sitting together, customer collaboration, stand upmeetings, continuos integration

XP Divergent• Semi-formal specification for each feature (pair

specification, ownership, and standards), QA team for acceptance testing (not customer tests), automatedacceptance tests rather than unit tests

Page 13: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

13Peter Dolog, SOE, Testing and EVO

Acceptance Testing with EasyAccept

Story Test-Driven Driven DevelopmentTest Driven Development by ExampleClient Verifiable Artifacts

Page 14: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

14Peter Dolog, SOE, Testing and EVO

Benefits

Precise and effective communication between client and developer

Executable artefacts for testsReadable by clientsQuality agreementsAll parties know the state of the art of the features

Page 15: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

15Peter Dolog, SOE, Testing and EVO

Product Size per Iteration

(c)IEEE; Source: Talby et. al. 2007

Page 16: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

16Peter Dolog, SOE, Testing and EVO

Testing and Defect Repair

(c)IEEE; Source: Talby et. al. 2007

Page 17: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

17Peter Dolog, SOE, Testing and EVO

Average Net Time to Fix a Defect

(c)IEEE; Source: Talby et. al. 2007

Page 18: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

18Peter Dolog, SOE, Testing and EVO

A Defect Average Longevity

(c)IEEE; Source: Talby et. al. 2007

Page 19: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

19Peter Dolog, SOE, Testing and EVO

http://easyaccept.org/

Page 20: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

20Peter Dolog, SOE, Testing and EVO

Commands

• expect – used to express an expected result of a command.Example:expect 5/10/1972 getBirthDate name=John

• expectError – used in situations where a command shouldresult in an error. Example:expect "There is no such customer"getBirthDate name=Mary

• equalFiles – used to check if two files are equal; this isuseful for massive textual or non-textual testing. Example:equalFiles result.txt template.txt

• expectTable – used to do tabular input/output testing.Example:expectTable jewelName getJewelColorruby redemerald greensapphire blue

Page 21: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

21Peter Dolog, SOE, Testing and EVO

Process

Page 22: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

22Peter Dolog, SOE, Testing and EVO

Page 23: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

23Peter Dolog, SOE, Testing and EVO

http://easyaccept.org/

Page 24: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

24Peter Dolog, SOE, Testing and EVO

http://easyaccept.org/

Page 25: Testing and EVO: Evolutionary Project Managementpeople.cs.aau.dk/~dolog/courses/sweng2008/lecture6_1.pdf · Agile Testing Principles • Testing overview • Unit testing environment

25Peter Dolog, SOE, Testing and EVO

Goal

Agile Testing Principles• Testing overview• Unit testing environment• Large agile testing case• Case results• Easy accept

Tutorial on Design and XP reflections (d401a, s601d)EVO