SlideShare une entreprise Scribd logo
1  sur  25
Software Testing with Agile
       Requirements Practices
                           Dr Syed Akhter Hossain
                                  Fall 2012



Copyright 2003-2005, Rally Software Development Corp
Agenda
•Context for Agile Testing
•Technical Challenges
•Organizational Challenges
•Keys for Success


  Copyright 2003-2005, Rally Software Development Corp
Popular Agile Methods
Dynamic System Development                             XP (Kent Beck)
Method (Dane Faulkner)
Adaptive Software Development                          Lean Software Development
(Jim Highsmith)                                        (Mary Poppendieck)


Crystal (Alistair Cockburn)                            Feature Driven Development (Jeff
                                                       DeLuca)


Scrum (Ken Schwaber)                                   Agile Rational Unified Process
                                                       (RUP)




Copyright 2003-2005, Rally Software Development Corp
Excerpts from the Agile Manifesto
•   Our highest priority is to satisfy the customer through early and continuous
    delivery of valuable software.
•   Welcome changing requirements, even late in development. Agile processes
    harness change for the customer's competitive advantage.
•   Working software is the primary measure of progress.
•   Deliver working software frequently, from a couple of weeks to a couple of
    months, with a preference to the shorter timescale.
•   Business people and developers must work together daily throughout the
    project.
•   Build projects around motivated individuals. Give them the environment
    and support they need, and trust them to get the job done.




       Copyright 2003-2005, Rally Software Development Corp
                                                        DSAH@Fall 2012         4
A Generalized Agile Release Process




                                                    Release
  Backlog           Iteration 1           Iteration 2          Iteration 3 Iteration …       Backlog

• Feature 1       •Do Feature 1         •Do Feature 3b        •Do Feature 4b •Do Feature 4c • Feature 8
                  •Do Feature 2         •Do Feature 4a        •Do Feature 5 •Do Feature 6 • Feature 9
• Feature 2       •Do Feature 3a                                             •Do Feature 7 • Feature 10
• Feature 3
•….                                                                                        • ….
• Feature 9

       Copyright 2003-2005, Rally Software Development Corp
                                                        DSAH@Fall 2012                                5
Agile Iteration Cadence
                                                    Requirements
                                                    Are Refined


                                               Dev Feature       Dev Feature




                                                            Accept




                                                                                       Accept
                                                 Priority 1         Priority 4
                                               Auto. Tests       Auto. Tests
                          Planning & Design
                          Detailed Iteration


                                                Feature 1          Feature 4




                                                                                                  Demo & Retro
Initial Elaboration                                                 Dev Feature
                                                 Dev Feature
  Requirements


                                                                     Accept




                                                                                         Accept
                                                   Priority 2          Priority 5
    With Tests
                                                 Auto. Tests        Auto. Tests
                                                  Feature 2          Feature 5
                                                          Dev Feature

                                                                              Accept
                                                            Priority 3
                                                          Auto. Tests
                                                           Feature 3
 Iteration N-1                                           Iteration N                                             Iteration N+1

       Copyright 2003-2005, Rally Software Development Corp
                                                        DSAH@Fall 2012                                                      6
What’s Different about Testing in Agile?

• Just-In Time Requirements Elaboration
   – No SRS-level waterfall documents to drive testing plan
   – Requirements and Test Cases developed in parallel or test
     first strategy
• More Frequent Iterations, More Frequent Releases
   –   Testing needs to happen Early and Often
   –   Frequent to continuous regression testing
   –   High need to automate nearly everything
   –   Everyone needs to Test
• Two Levels of Testing
   – Iteration Vs. Release testing patterns
   Copyright 2003-2005, Rally Software Development Corp
                                                    DSAH@Fall 2012   7
Technical Challenges
•Requirements are changing fast. How does test keep up?

•Test early and often. How exactly do we move testing forward?

•Need to move off manual testing and more into automation. How does this
happen?

•Different kinds of testing need to happen at different times. How do these
get managed?




  Copyright 2003-2005, Rally Software Development Corp
Requirements are Changing

       Code                            Code                     Code
     & Deliver                       & Deliver                & Deliver
                           s
                       date
                     Up
                                                                            Pass
UC/SR                                                          Fail TCs   & Accept
                   Up
                     da
                       te
                         s
  Generate                            Update                       Run
    TCs                                TCs                         TCs




 Copyright 2003-2005, Rally Software Development Corp
                                                  DSAH@Fall 2012                     9
Requirements Changing is a Good Thing?

• Probably the hardest agile principle for the
  team to embrace.
  – Need to elaborate the feature ahead of time
  – There is minimal time to have the team review
    before the start.
  – Sometimes you have to rewrite
• Bottom-line: everyone collaborates to make
  the feature as useful for the customer as
  possible.

  Copyright 2003-2005, Rally Software Development Corp
                                                   DSAH@Fall 2012   10
Requirements to Test Cases
• Use Case Scenario Tests are perfect Acceptance Tests
• Use Case A
   – Scenario 1                                  Test Case 1
   – Scenario 2                                  Test Case 2

• Declarative Requirements that further refine the Use
  Case may be better suited to going directly to
  automation
   – Have one Test Case be the container for all of the
     automation results.
   – All automated tests have to pass before the Test Case
     passes.

   Copyright 2003-2005, Rally Software Development Corp
                                                    DSAH@Fall 2012   11
Need to Test early and often
• Need to test early in the Iteration – do not
  want mini-waterfalls

• Need to test on check-in – Don’t break the
  build

• Need to test nightly – Don’t wait for a
  Regression Iteration
  Copyright 2003-2005, Rally Software Development Corp
                                                   DSAH@Fall 2012   12
Mike Cohn’s Testing Pyramid
                                                              •Small number
                    GUI
                                                              •Automate many
                 Acceptance
                   Tests


                                                                        •Find the right ones
                 FitNesse



                 Unit Tests                                                •Largest numbers
                                                                           •Foster Test Driven Design




Start Stop Look
Start Stop ?


      Copyright 2003-2005, Rally Software Development Corp
                                                       DSAH@Fall 2012                                   13
Break the Manual Testing
                       Paradigm
                                                                         •Easy to Create
                       Manual GUI
                       Acceptance
                                                                         •Very familiar – what we always do
                         Tests                                           •Typically tedious
                                                                         •How do we know coverage?

                                                                        •Need Automation specialists
                         Automated                                      •Automation good for performance
                         GUI Tests                                      •Seems like we always rewrite
                            Unit                                        •Sometimes fragile
                            Tests
                                                              •What is Dev testing?
                                                              •How do we know what these are?
                                                              •How do we know when they fail?

Start Stop Look
Start Stop ?


      Copyright 2003-2005, Rally Software Development Corp
                                                       DSAH@Fall 2012                                 14
Manual Testing Conundrum

• “You can never have too many manual acceptance
  tests”
   – Manual tests are cute little bunnies, before you know it
     you have hundreds or thousands in your regression suite
   – You inadvertently dig a hole you can never get out of
   – Whole team had to help run regression suite


• Defect count typically is high
   – Most defects were found as manual tests were elaborated
   – Regression tests typically didn’t find many defects
   – Commonly found defects – things we didn’t think of
   Copyright 2003-2005, Rally Software Development Corp
                                                    DSAH@Fall 2012   15
Better, But Not Perfect Testing Architecture

                   Manual GUI
                   Acceptance                                          •Still too many here
                     Tests


                   Automated
                   GUI Tests
                   & FitNesse                                •Add FitNesse


                  Unit Tests                                      •Increase Coverage
                                                                  •Increase Capability




Start Stop Look


     Copyright 2003-2005, Rally Software Development Corp
                                                      DSAH@Fall 2012                          16
Testing Types and Scheduling
Acceptance –             •Minimize Manual                  •During the Iteration
GUI?                     •Generate off of Use
                         Cases to get scenario
                         tests.
Acceptance               •Combination of Unit              •Build Verification and Run
-Functional              tests, FitNesse                   Nightly

Load &                   •Profiling and                    •Do it periodically
Performance              Simulation Automation             •Don’t wait till the end of the
                                                           Release cycle
Regression               •Acceptance and                   •Run Nightly
                         Functional tests from
                         previous Iterations
Exploratory              •Manual Group Explore             •Before Releasing
                         •Roles and Personas
    Copyright 2003-2005, Rally Software Development Corp
Keys to Overcome the Technical Challenges

• Continuous Builds

• Nightly Regression testing

• Make Unit Testing a priority

• From found defects – create automated tests
  that go into Regression

  Copyright 2003-2005, Rally Software Development Corp
                                                   DSAH@Fall 2012   18
Organizational Challenges
    •Dev as Testers and Testers as Dev – how does that happen?

 •Resistance to Change – how do we get the team to welcome and
            embrace changes and not feel threatened?

•Testers are an integral part of the team- do we need to re-organize
                        to make this happen?




Copyright 2003-2005, Rally Software Development Corp
I’m a Developer, Not a Tester
• Pretty typical to hear push back from developers that they
   – Don’t have time to do all of this testing
   – Number of features delivered will go down
   – Don’t really want to do all this testing

• Testers can help
   – Provide guidance on how to break software, art of creative
     destruction
   – Pair testing with developers works well

• Have developers help out with manual regression testing.
   – “Can’t I write a test for this instead of running it manually?”



   Copyright 2003-2005, Rally Software Development Corp
                                                    DSAH@Fall 2012     20
I’m a Tester Not a Developer
• Pretty typical to hear from testers
   – That they don’t feel comfortable or knowledgeable
     about coding
   – That they maybe won’t be needed anymore


• Developers can help
   – Developers can create the fixtures (code running the
     test) needed to make FitNesse testing work
   – To make it easier to auto test the code at the GUI
     level
   Copyright 2003-2005, Rally Software Development Corp
                                                    DSAH@Fall 2012   21
Resisting Change
• Resistance is common
  – It is easier to do what is familiar, than risk something
    new
  – Time-challenges may keep you doing the old way
  – Fear of failing keeps you in the status quo

• Get the whole team involved in trying to change
  – Team needs to figure what works best
  – Don’t feel like you have to do everything all at once
  – Keep learning and adapting
  Copyright 2003-2005, Rally Software Development Corp
                                                   DSAH@Fall 2012   22
Testers on the Team
• Your organization may have testing as a separate
  group – look for ways to integrate them into the
  team
  – Creating feature or component teams comprised of
    all disciplines is one way

• Co-location is a great way to hear and share
  information

• Daily stand-ups with the whole team keeps the
  information current
  Copyright 2003-2005, Rally Software Development Corp
                                                   DSAH@Fall 2012   23
Keys to Overcome the Organizational Challenges

• Have Dev help run manual Regression tests

• Pair Dev and Test on Unit and FitNesse Testing

• Co-location of all the team

• Daily Standups

• Do Retrospectives
   Copyright 2003-2005, Rally Software Development Corp
                                                    DSAH@Fall 2012   24
Summary
• Agile Pulls Testing Forward
   – You need to change your tools and approaches to
     move it forward
   – You might need to change the model/structure of
     your team


• With Agile, you will create faster Release cycles,
  shorter Iterations, more satisfied customers, and
  team members that enjoy what they are doing

   Copyright 2003-2005, Rally Software Development Corp
                                                    DSAH@Fall 2012   25

Contenu connexe

Tendances

Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Kaizenko
 
Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeIndicThreads
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentJoseph Beale
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019Peter Gfader
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing MethodologyGaya1985
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Kari Kakkonen
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projectssriks7
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQASymphony
 
Optimising Quality Assurance in an Agile World
Optimising Quality Assurance in an Agile WorldOptimising Quality Assurance in an Agile World
Optimising Quality Assurance in an Agile WorldOriginal Software
 
Agile testing practice
Agile testing practiceAgile testing practice
Agile testing practiceMary Jiang
 
Optimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesOptimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesStanton Champion
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategytharindakasun
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should knowRichard Cheng
 

Tendances (20)

Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Testing Best Practices
Testing Best PracticesTesting Best Practices
Testing Best Practices
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
 
Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil Karade
 
Introducing QA Into an Agile Environment
Introducing QA Into an Agile EnvironmentIntroducing QA Into an Agile Environment
Introducing QA Into an Agile Environment
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
You Can't Be Agile If Your Testing Practices Suck - Vilnius October 2019
 
Scrum Testing Methodology
Scrum Testing MethodologyScrum Testing Methodology
Scrum Testing Methodology
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle
 
AgileTesting_Ver1.0
AgileTesting_Ver1.0AgileTesting_Ver1.0
AgileTesting_Ver1.0
 
Testing in Agile Projects
Testing in Agile ProjectsTesting in Agile Projects
Testing in Agile Projects
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
 
Optimising Quality Assurance in an Agile World
Optimising Quality Assurance in an Agile WorldOptimising Quality Assurance in an Agile World
Optimising Quality Assurance in an Agile World
 
Agile testing practice
Agile testing practiceAgile testing practice
Agile testing practice
 
Optimizing Your Agile Testing Processes
Optimizing Your Agile Testing ProcessesOptimizing Your Agile Testing Processes
Optimizing Your Agile Testing Processes
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategy
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 

Similaire à Software Testing with Agile Requirements Practices

Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an IntroductionSanjeev Sharma
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureWee Witthawaskul
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveWee Witthawaskul
 
How to bake in quality in agile scrum projects
How to bake in quality in agile scrum projectsHow to bake in quality in agile scrum projects
How to bake in quality in agile scrum projectsSantanu Bhattacharya
 
CMMI High Maturity Best Practices HMBP 2010: Demystifying High Maturity Imple...
CMMI High Maturity Best Practices HMBP 2010: Demystifying High Maturity Imple...CMMI High Maturity Best Practices HMBP 2010: Demystifying High Maturity Imple...
CMMI High Maturity Best Practices HMBP 2010: Demystifying High Maturity Imple...QAI
 
Agile Fundamental Skill Set
Agile Fundamental Skill SetAgile Fundamental Skill Set
Agile Fundamental Skill SetTsuyoshi Ushio
 
Scaling Kanban in the Enterprise with GreenHopper
Scaling Kanban in the Enterprise with GreenHopperScaling Kanban in the Enterprise with GreenHopper
Scaling Kanban in the Enterprise with GreenHopperDavid Jellison
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To AgileTony Deng
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriverMikalai Alimenkou
 
Mobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesMobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesSanjeev Sharma
 
Top 7 Myths of Agile Testing - Busted!
Top 7 Myths of Agile Testing - Busted!Top 7 Myths of Agile Testing - Busted!
Top 7 Myths of Agile Testing - Busted!Aricent
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approachMichael Kopp
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Imaginet
 
Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Imaginet
 
How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012Prathan Dansakulcharoenkit
 
Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Imaginet
 
Intro Of Agile
Intro Of AgileIntro Of Agile
Intro Of AgileSam Hwang
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedSandy Mamoli
 

Similaire à Software Testing with Agile Requirements Practices (20)

Chef for DevOps - an Introduction
Chef for DevOps - an IntroductionChef for DevOps - an Introduction
Chef for DevOps - an Introduction
 
Agile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai CultureAgile Software Development Process Practice in Thai Culture
Agile Software Development Process Practice in Thai Culture
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
How to bake in quality in agile scrum projects
How to bake in quality in agile scrum projectsHow to bake in quality in agile scrum projects
How to bake in quality in agile scrum projects
 
CMMI High Maturity Best Practices HMBP 2010: Demystifying High Maturity Imple...
CMMI High Maturity Best Practices HMBP 2010: Demystifying High Maturity Imple...CMMI High Maturity Best Practices HMBP 2010: Demystifying High Maturity Imple...
CMMI High Maturity Best Practices HMBP 2010: Demystifying High Maturity Imple...
 
Agile Fundamental Skill Set
Agile Fundamental Skill SetAgile Fundamental Skill Set
Agile Fundamental Skill Set
 
Red7 Automating UAT Web Testing
Red7 Automating UAT Web TestingRed7 Automating UAT Web Testing
Red7 Automating UAT Web Testing
 
Scaling Kanban in the Enterprise with GreenHopper
Scaling Kanban in the Enterprise with GreenHopperScaling Kanban in the Enterprise with GreenHopper
Scaling Kanban in the Enterprise with GreenHopper
 
Introduction To Agile
Introduction To AgileIntroduction To Agile
Introduction To Agile
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 
Mobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and ChellengesMobile DevOps - Trends and Chellenges
Mobile DevOps - Trends and Chellenges
 
Top 7 Myths of Agile Testing - Busted!
Top 7 Myths of Agile Testing - Busted!Top 7 Myths of Agile Testing - Busted!
Top 7 Myths of Agile Testing - Busted!
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approach
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012
 
Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012Quality Coding: What’s New with Visual Studio 2012
Quality Coding: What’s New with Visual Studio 2012
 
How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012
 
Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012Quality Coding with Visual Studio 2012
Quality Coding with Visual Studio 2012
 
Intro Of Agile
Intro Of AgileIntro Of Agile
Intro Of Agile
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts Explained
 
Agile at AT&T
Agile at AT&TAgile at AT&T
Agile at AT&T
 

Software Testing with Agile Requirements Practices

  • 1. Software Testing with Agile Requirements Practices Dr Syed Akhter Hossain Fall 2012 Copyright 2003-2005, Rally Software Development Corp
  • 2. Agenda •Context for Agile Testing •Technical Challenges •Organizational Challenges •Keys for Success Copyright 2003-2005, Rally Software Development Corp
  • 3. Popular Agile Methods Dynamic System Development XP (Kent Beck) Method (Dane Faulkner) Adaptive Software Development Lean Software Development (Jim Highsmith) (Mary Poppendieck) Crystal (Alistair Cockburn) Feature Driven Development (Jeff DeLuca) Scrum (Ken Schwaber) Agile Rational Unified Process (RUP) Copyright 2003-2005, Rally Software Development Corp
  • 4. Excerpts from the Agile Manifesto • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. • Working software is the primary measure of progress. • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. • Business people and developers must work together daily throughout the project. • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 4
  • 5. A Generalized Agile Release Process Release Backlog Iteration 1 Iteration 2 Iteration 3 Iteration … Backlog • Feature 1 •Do Feature 1 •Do Feature 3b •Do Feature 4b •Do Feature 4c • Feature 8 •Do Feature 2 •Do Feature 4a •Do Feature 5 •Do Feature 6 • Feature 9 • Feature 2 •Do Feature 3a •Do Feature 7 • Feature 10 • Feature 3 •…. • …. • Feature 9 Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 5
  • 6. Agile Iteration Cadence Requirements Are Refined Dev Feature Dev Feature Accept Accept Priority 1 Priority 4 Auto. Tests Auto. Tests Planning & Design Detailed Iteration Feature 1 Feature 4 Demo & Retro Initial Elaboration Dev Feature Dev Feature Requirements Accept Accept Priority 2 Priority 5 With Tests Auto. Tests Auto. Tests Feature 2 Feature 5 Dev Feature Accept Priority 3 Auto. Tests Feature 3 Iteration N-1 Iteration N Iteration N+1 Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 6
  • 7. What’s Different about Testing in Agile? • Just-In Time Requirements Elaboration – No SRS-level waterfall documents to drive testing plan – Requirements and Test Cases developed in parallel or test first strategy • More Frequent Iterations, More Frequent Releases – Testing needs to happen Early and Often – Frequent to continuous regression testing – High need to automate nearly everything – Everyone needs to Test • Two Levels of Testing – Iteration Vs. Release testing patterns Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 7
  • 8. Technical Challenges •Requirements are changing fast. How does test keep up? •Test early and often. How exactly do we move testing forward? •Need to move off manual testing and more into automation. How does this happen? •Different kinds of testing need to happen at different times. How do these get managed? Copyright 2003-2005, Rally Software Development Corp
  • 9. Requirements are Changing Code Code Code & Deliver & Deliver & Deliver s date Up Pass UC/SR Fail TCs & Accept Up da te s Generate Update Run TCs TCs TCs Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 9
  • 10. Requirements Changing is a Good Thing? • Probably the hardest agile principle for the team to embrace. – Need to elaborate the feature ahead of time – There is minimal time to have the team review before the start. – Sometimes you have to rewrite • Bottom-line: everyone collaborates to make the feature as useful for the customer as possible. Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 10
  • 11. Requirements to Test Cases • Use Case Scenario Tests are perfect Acceptance Tests • Use Case A – Scenario 1 Test Case 1 – Scenario 2 Test Case 2 • Declarative Requirements that further refine the Use Case may be better suited to going directly to automation – Have one Test Case be the container for all of the automation results. – All automated tests have to pass before the Test Case passes. Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 11
  • 12. Need to Test early and often • Need to test early in the Iteration – do not want mini-waterfalls • Need to test on check-in – Don’t break the build • Need to test nightly – Don’t wait for a Regression Iteration Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 12
  • 13. Mike Cohn’s Testing Pyramid •Small number GUI •Automate many Acceptance Tests •Find the right ones FitNesse Unit Tests •Largest numbers •Foster Test Driven Design Start Stop Look Start Stop ? Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 13
  • 14. Break the Manual Testing Paradigm •Easy to Create Manual GUI Acceptance •Very familiar – what we always do Tests •Typically tedious •How do we know coverage? •Need Automation specialists Automated •Automation good for performance GUI Tests •Seems like we always rewrite Unit •Sometimes fragile Tests •What is Dev testing? •How do we know what these are? •How do we know when they fail? Start Stop Look Start Stop ? Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 14
  • 15. Manual Testing Conundrum • “You can never have too many manual acceptance tests” – Manual tests are cute little bunnies, before you know it you have hundreds or thousands in your regression suite – You inadvertently dig a hole you can never get out of – Whole team had to help run regression suite • Defect count typically is high – Most defects were found as manual tests were elaborated – Regression tests typically didn’t find many defects – Commonly found defects – things we didn’t think of Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 15
  • 16. Better, But Not Perfect Testing Architecture Manual GUI Acceptance •Still too many here Tests Automated GUI Tests & FitNesse •Add FitNesse Unit Tests •Increase Coverage •Increase Capability Start Stop Look Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 16
  • 17. Testing Types and Scheduling Acceptance – •Minimize Manual •During the Iteration GUI? •Generate off of Use Cases to get scenario tests. Acceptance •Combination of Unit •Build Verification and Run -Functional tests, FitNesse Nightly Load & •Profiling and •Do it periodically Performance Simulation Automation •Don’t wait till the end of the Release cycle Regression •Acceptance and •Run Nightly Functional tests from previous Iterations Exploratory •Manual Group Explore •Before Releasing •Roles and Personas Copyright 2003-2005, Rally Software Development Corp
  • 18. Keys to Overcome the Technical Challenges • Continuous Builds • Nightly Regression testing • Make Unit Testing a priority • From found defects – create automated tests that go into Regression Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 18
  • 19. Organizational Challenges •Dev as Testers and Testers as Dev – how does that happen? •Resistance to Change – how do we get the team to welcome and embrace changes and not feel threatened? •Testers are an integral part of the team- do we need to re-organize to make this happen? Copyright 2003-2005, Rally Software Development Corp
  • 20. I’m a Developer, Not a Tester • Pretty typical to hear push back from developers that they – Don’t have time to do all of this testing – Number of features delivered will go down – Don’t really want to do all this testing • Testers can help – Provide guidance on how to break software, art of creative destruction – Pair testing with developers works well • Have developers help out with manual regression testing. – “Can’t I write a test for this instead of running it manually?” Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 20
  • 21. I’m a Tester Not a Developer • Pretty typical to hear from testers – That they don’t feel comfortable or knowledgeable about coding – That they maybe won’t be needed anymore • Developers can help – Developers can create the fixtures (code running the test) needed to make FitNesse testing work – To make it easier to auto test the code at the GUI level Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 21
  • 22. Resisting Change • Resistance is common – It is easier to do what is familiar, than risk something new – Time-challenges may keep you doing the old way – Fear of failing keeps you in the status quo • Get the whole team involved in trying to change – Team needs to figure what works best – Don’t feel like you have to do everything all at once – Keep learning and adapting Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 22
  • 23. Testers on the Team • Your organization may have testing as a separate group – look for ways to integrate them into the team – Creating feature or component teams comprised of all disciplines is one way • Co-location is a great way to hear and share information • Daily stand-ups with the whole team keeps the information current Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 23
  • 24. Keys to Overcome the Organizational Challenges • Have Dev help run manual Regression tests • Pair Dev and Test on Unit and FitNesse Testing • Co-location of all the team • Daily Standups • Do Retrospectives Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 24
  • 25. Summary • Agile Pulls Testing Forward – You need to change your tools and approaches to move it forward – You might need to change the model/structure of your team • With Agile, you will create faster Release cycles, shorter Iterations, more satisfied customers, and team members that enjoy what they are doing Copyright 2003-2005, Rally Software Development Corp DSAH@Fall 2012 25

Notes de l'éditeur

  1. Testing Architecture to Avoid at all costs
  2. Evil rabbits Good News: The whole team became highly motivated to do it differently, and to find a better way