Download Evolving Agile Testing - Inspire Quality Services

41 downloads 233 Views 2MB Size Report
Strategic advice and hands-on Coaching/mentoring in areas such as agile, ... ScrumMaster, Succeeding with Agile/Scrum, Agile project ... Agile Test Strategy.
Evolving Agile Testing Fran O’Hara, Inspire Quality Services

@esconfs #esconfs1

We provide Agile, Quality and Process Improvement Services such as 

Consulting/Coaching: –



Training public/inhouse: – – – –



Strategic advice and hands-on Coaching/mentoring in areas such as agile, testing, process improvement, etc.

Lean/Agile: Certified/Advanced ScrumMaster, Succeeding with Agile/Scrum, Agile project management, Agile Testing, Product Owner training, Lean/Kanban, etc. Testing (ISTQB Foundation and Advanced Test Manager/Analyst, Risk-based testing, Test design techniques, Testing for developers, TMap®, Peer Reviews, UAT, etc.) Requirements/Business analysis Software project management

Assessments – –

Agile practices Industry standards and models such as CMMI®, TPI®, TMMi®, etc.

2

Agenda    

Setting the scene Requirements and Testing Agile Test Strategy Tester role

3

The Major Agile/Lean Methods • Scrum (1995) – PM Oriented – – – – –

Timeboxing Prioritized backlog Daily standup meetings Demo after each iteration Correct the process through lessons learned XP (1999) – Engineering Oriented • (A)TDD, refactoring, pair programming, continuous integration, simplicity, whole team, planning game, …

Kanban(2010) – Continuous Improvement Visualize Reduce WIP Manage Flow Make process Policies Explicit Nurture effective feedback loops Improve Collaboratively (using scientific method)

4

Some Underlying Shifts…

5

How agile changes things • Whole Team Approach - collaboration • Coding and testing are integrated rather than distinct phases • Early and frequent feedback • TDD/ATDD practices • Test-infected developers, better automation strategies, better designed tests Always working software

6

Agenda    

Setting the scene Requirements and Testing Agile Test Strategy Tester role

7

User stories - CCC INVEST Card As a I need so that

As a customer I search for users so that I can view their details Value: Med Risk: Low

Estimate: 3 pts

     

Independent Negotiable Valuable Estimable Small Testable

Confirmation •I can find users •I can use any search criteria I need •Once found I can view details •…. BDD: In order to As a I want

Conversation

8

Purpose of confirmation/acceptance criteria define the boundaries for a user story/feature help the product owner answer what she needs in order for this feature to provide value (typically these are the minimum functional requirements) help the team gain a shared understanding of the story/feature help developers and testers to derive tests help developers know when to stop adding more functionality to a story

9

Level of detail in confirmation/acceptance criteria Try to keep relatively high level Detail goes into • Memory or internal team documentation (notes) – can include wireframes and screen mockups, validation rules, etc. • Automated acceptance tests (ideally defined to be understood by all)

Note: examples make excellent acceptance criteria (see Specification by example by Gojko Adzic) 10

Agenda    

Setting the scene Requirements and Testing Agile Test Strategy Tester role

11

Agile Testing Quadrants

12

The Automation Pyramid Manual Tests e.g. exploratory

Automate at feature/workflow level Based on Mike Cohn

GUI layer e.g. Selenium

API/Service layer

Automate at story level

Acceptance Tests e.g. Fitnesse, Cucumber

Unit/Component layer Developer Tests e.g. JUnit

Automate at design level 13

Maintaining Context

GRANULARITY

PRIORITY

14

Sprints and Testing Strategy Sprint 1 Dev + Test*

Additional testing

Sprint 2 Dev + Test*

Additional testing

Sprint 3 Dev + Test*



Additional Testing

*Sprint test = Automated Unit & Acceptance, Manual Exploratory Within a Sprint may need to perform additional testing as part of a defined but adaptive testing strategy e.g.: – Feature/’epic’ or workflow level testing – Combination/feature interaction testing – Business cycle & end-to-end scenario testing – exercising multiple stories, end of month processing, etc. – Performance testing – Usability testing – Security testing – System integration testing  Note: Ideally any testing needed should be included within the Sprint rather than being deferred….otherwise are we defining one ‘Done’ for Sprints and another for Release…? Evolve to fully Working Software!!

15

Agenda    

Setting the scene Requirements and Testing Agile Test Strategy Tester role

16

Role of tester • Involved continuously from start…e.g. – Facilitate communication between the technical & business stakeholders – Support early validation of requirements – Help the customer/business stakeholders define acceptance criteria – Support creation of automated acceptance tests • Or define for developers to script

– Expand scope of ‘acceptance’ tests • see agile testing strategy

– Advise the team about overall risks and trends – Perform manual/exploratory tests

• Needs ‘technical awareness’ 17

Role of developer in relation to testing • Perform code reviews • Use static analysis tools • Perform effective unit testing – Automated ideally using TDD achieving structural coverage

• Perform component/component integration testing – Again ideally automated, API/Service level

• Support testers in Acceptance/System testing – Frameworks for automated API/Service level testing – GUI based automation 18

From: Lisa Crispin, 2011

19

Evolving from sequential to iterative/incremental Sprint 1

A

Sprint 2

Code

Code & Bug Fix

Code Test

Sprint 1

B

Code

Sprint 2 Code & Bug Fix

Code

Code & Bug Fix

Test Sprint 1

C

Test Sprint 2

Code & Bug Fix

Code & Bug Fix

Test

Test 20

Key Opportunities to Innovate & Renovate

Backlog grooming 21

Q&A Fran O’Hara InspireQS www.inspireqs.ie [email protected]

22