SlideShare a Scribd company logo
Agile Software Development
    with Intrinsic Quality
    Theory, Practices and Tools
Typical Segregated Process
           Development-Testing
               At least 1 month

Development    Testing        Development   Testing



  Bug              Bug             Bug         Bug
  introduced       detected        fixed       verified




                     Agile?
“Pull” Process
                                Vision
           Operations                       Stakeholders,
           Engineer                         Customers & Users
                                Value



           Code                                    Features




Software                                                  Business
Engineer                                                  Analyst
                Scenarios
                   and                    User
               Acceptance                Stories
                 Criterias

                             Quality
                             Engineer
But how?
• Skills
    – User Stories writing and Scenarios language
    – Scenarios automation
    – Software development
• Practices
    – AATDD – Automated Acceptance Test Driven-Development
    – BDD & TDD – Behaviour & Test Driven-Development
• Tools
    –   RFT
    –   Selenium
    –   Watir
    –   Jemmy
    –   Cucumber
    –   Twist
    –   Junit
    –   Java
    –   Ruby
    –   ...
Test all the ... time?

Old-school                       Agile

                    Writing              Writing
                    Automation           Automation
                    Execution            Execution
                    Analysis             Analysis




    Where does the quality engineer
    spend his/her time?
Goal: eliminate all manual
      testing execution
 Manual testing is a very expensive tax
paid at each software development cycle
Traditional x Agile Testing
Traditional          Agile
• Manual             • Automated
• Demotivating       • Fun
• Slow               • Fast
• Flawed             • Sistematic
• Low competency     • High competency
• Low value          • High value
• Reactive           • Proactive
• Defensive          • Guiding
• Segregated         • Integrated
The next level

                              Intrinsic Quality
                                (Automated)




                                                Developer
                 Test Automation
                                               Test Engineer
                 Scenario Language
                                              Business Analyst
Quality by
Inspection
 (Manual)
5 reasons to love agile testing
1. There’s always time for testing, because
   testing is done first
2. No more manual testing
3. Test results appear several times a day
4. There is a true “team” environment
5. The tester can fix bugs too
User stories and
     Scenario Language
http://dannorth.net/whats-in-a-story
User Stories
• In order to ...

• As a ...

• I want to ...
User Stories
• In order to ... VALUE

• As a ... ROLE

• I want to ... FEATURE
User Stories
• In order to best decide what to do in an
  emergency situation

• As a resources manager

• I want to know which resources of a
  determined type are available for use
Scenario Language
• Given ...
  – And ...


• When ...
  – And ...


• Then ...
  – And ...
Scenario Language
• Given ... CONTEXT / PRE-CONDITIONS
  – And ...


• When ... EVENT / INPUT
  – And ...


• Then ... EXPECTATION / OUTPUT
  – And ...
Scenario Language
• Given I am monitoring an on-going emergency
  situation at the factory

• When I enter the Query page
   – And I click on “Resources” in the navigation tree
   – And search for “Booms”

• Then I should see a list of records of type “Booms”
   – And I should see the available quantity for each record
   – And I should see the distance of each record from its
     location to the factory
   – And I should see the expiration date for each record
   – And I should see a link “Request” for each record
Scenario Automation
• Given I am monitoring an on-going emergency                   Executable
  situation at the factory                                      Code


• When I enter the Query page                                   Executable
    – And I click on “Resources” in the navigation tree         Code
    – And search for “Booms”

• Then I should see a list of records of type “Booms”
    – And I should see the available quantity for each record
    – And I should see the distance of each record from its            Executable
      location to the factory                                          Code
    – And I should see the expiration date for each record
    – And I should see a link “Request” for each record
Automação de Cenários
    com Cucumber
Scenario Automation
                 with Cucumber
When /I click on “(.*)” in the navigation tree/ do |type|
   tree = browser.current_page.navigation_tree
   tree.click(type)
end

Then /I should see a list of records of type “(.*)”/ do |type|
   page = browser.current_page
   assert_true(page.contains_text?(“Query Results”))
   assert_true(page.contains_text?(“ found”))
   assert_true(page.contains_text?(type))
end
Scenario Automation
                with Cucumber-Java
public class TreeSteps {

    @When(“I click on “(.*)” in the navigation tree”)
    public void clickOnType(String type) {
      NavTree tree = new NavTree(browser().getCurrentPage())
      tree.click(type)
    }

}
THE END
             Remember this:
“Manual regression testing is a completely
  unfeasible and unacceptable practice.”
”Use automated acceptance tests to guide
  your software product development.”

More Related Content

Similar to Agile Software Development with Intrinsic Quality

Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech FestStatic Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Denim Group
 
Secure Programming With Static Analysis
Secure Programming With Static AnalysisSecure Programming With Static Analysis
Secure Programming With Static AnalysisConSanFrancisco123
 
How the JDeveloper team test JDeveloper at UKOUG'08
How the JDeveloper team test JDeveloper at UKOUG'08How the JDeveloper team test JDeveloper at UKOUG'08
How the JDeveloper team test JDeveloper at UKOUG'08
kingsfleet
 
Qtp - Introduction to synchronization
Qtp -  Introduction to synchronizationQtp -  Introduction to synchronization
Qtp - Introduction to synchronization
Vibrant Technologies & Computers
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client Development
Tamir Khason
 
Test
TestTest
Test
Eddie Kao
 
PHX Session #1: Development Best Practices And How Microsoft Helps
PHX Session #1: Development  Best  Practices And  How  Microsoft  HelpsPHX Session #1: Development  Best  Practices And  How  Microsoft  Helps
PHX Session #1: Development Best Practices And How Microsoft HelpsSteve Lange
 
Usability Engineering
Usability EngineeringUsability Engineering
Usability Engineering
Easypeasy
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code Analysis
Obika Gellineau
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testingguestc8adce
 
Does your functional automation really add value?
Does your functional automation really add value?Does your functional automation really add value?
Does your functional automation really add value?
Anand Bagmar
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern Methodology
Ethan Jewett
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for Testers
Adam Goucher
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
Agile Montréal
 
Presentations Unusual Java Bugs And Detecting Them Using Foss Tools
Presentations Unusual Java Bugs And Detecting Them Using Foss ToolsPresentations Unusual Java Bugs And Detecting Them Using Foss Tools
Presentations Unusual Java Bugs And Detecting Them Using Foss ToolsGanesh Samarthyam
 
Sqp 090508084934 Phpapp02
Sqp 090508084934 Phpapp02Sqp 090508084934 Phpapp02
Sqp 090508084934 Phpapp02sivavis
 
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
LogeekNightUkraine
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Chris Weldon
 
Testing with cucumber testing framework
Testing with cucumber testing frameworkTesting with cucumber testing framework
Testing with cucumber testing framework
AIMDek Technologies
 

Similar to Agile Software Development with Intrinsic Quality (20)

Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech FestStatic Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
 
Secure Programming With Static Analysis
Secure Programming With Static AnalysisSecure Programming With Static Analysis
Secure Programming With Static Analysis
 
How the JDeveloper team test JDeveloper at UKOUG'08
How the JDeveloper team test JDeveloper at UKOUG'08How the JDeveloper team test JDeveloper at UKOUG'08
How the JDeveloper team test JDeveloper at UKOUG'08
 
Qtp - Introduction to synchronization
Qtp -  Introduction to synchronizationQtp -  Introduction to synchronization
Qtp - Introduction to synchronization
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client Development
 
Test
TestTest
Test
 
PHX Session #1: Development Best Practices And How Microsoft Helps
PHX Session #1: Development  Best  Practices And  How  Microsoft  HelpsPHX Session #1: Development  Best  Practices And  How  Microsoft  Helps
PHX Session #1: Development Best Practices And How Microsoft Helps
 
Usability Engineering
Usability EngineeringUsability Engineering
Usability Engineering
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code Analysis
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
 
Does your functional automation really add value?
Does your functional automation really add value?Does your functional automation really add value?
Does your functional automation really add value?
 
Tec314f
Tec314fTec314f
Tec314f
 
Testing Sap: Modern Methodology
Testing Sap: Modern MethodologyTesting Sap: Modern Methodology
Testing Sap: Modern Methodology
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for Testers
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Presentations Unusual Java Bugs And Detecting Them Using Foss Tools
Presentations Unusual Java Bugs And Detecting Them Using Foss ToolsPresentations Unusual Java Bugs And Detecting Them Using Foss Tools
Presentations Unusual Java Bugs And Detecting Them Using Foss Tools
 
Sqp 090508084934 Phpapp02
Sqp 090508084934 Phpapp02Sqp 090508084934 Phpapp02
Sqp 090508084934 Phpapp02
 
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
Kostiantyn Yelisavenko "Mastering Macro Benchmarking in .NET"
 
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver SoftwareBeyond TDD: Enabling Your Team to Continuously Deliver Software
Beyond TDD: Enabling Your Team to Continuously Deliver Software
 
Testing with cucumber testing framework
Testing with cucumber testing frameworkTesting with cucumber testing framework
Testing with cucumber testing framework
 

Recently uploaded

SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 

Recently uploaded (20)

SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 

Agile Software Development with Intrinsic Quality

  • 1. Agile Software Development with Intrinsic Quality Theory, Practices and Tools
  • 2. Typical Segregated Process Development-Testing At least 1 month Development Testing Development Testing Bug Bug Bug Bug introduced detected fixed verified Agile?
  • 3. “Pull” Process Vision Operations Stakeholders, Engineer Customers & Users Value Code Features Software Business Engineer Analyst Scenarios and User Acceptance Stories Criterias Quality Engineer
  • 4. But how? • Skills – User Stories writing and Scenarios language – Scenarios automation – Software development • Practices – AATDD – Automated Acceptance Test Driven-Development – BDD & TDD – Behaviour & Test Driven-Development • Tools – RFT – Selenium – Watir – Jemmy – Cucumber – Twist – Junit – Java – Ruby – ...
  • 5. Test all the ... time? Old-school Agile Writing Writing Automation Automation Execution Execution Analysis Analysis Where does the quality engineer spend his/her time?
  • 6. Goal: eliminate all manual testing execution Manual testing is a very expensive tax paid at each software development cycle
  • 7. Traditional x Agile Testing Traditional Agile • Manual • Automated • Demotivating • Fun • Slow • Fast • Flawed • Sistematic • Low competency • High competency • Low value • High value • Reactive • Proactive • Defensive • Guiding • Segregated • Integrated
  • 8. The next level Intrinsic Quality (Automated) Developer Test Automation Test Engineer Scenario Language Business Analyst Quality by Inspection (Manual)
  • 9. 5 reasons to love agile testing 1. There’s always time for testing, because testing is done first 2. No more manual testing 3. Test results appear several times a day 4. There is a true “team” environment 5. The tester can fix bugs too
  • 10. User stories and Scenario Language http://dannorth.net/whats-in-a-story
  • 11. User Stories • In order to ... • As a ... • I want to ...
  • 12. User Stories • In order to ... VALUE • As a ... ROLE • I want to ... FEATURE
  • 13. User Stories • In order to best decide what to do in an emergency situation • As a resources manager • I want to know which resources of a determined type are available for use
  • 14. Scenario Language • Given ... – And ... • When ... – And ... • Then ... – And ...
  • 15. Scenario Language • Given ... CONTEXT / PRE-CONDITIONS – And ... • When ... EVENT / INPUT – And ... • Then ... EXPECTATION / OUTPUT – And ...
  • 16. Scenario Language • Given I am monitoring an on-going emergency situation at the factory • When I enter the Query page – And I click on “Resources” in the navigation tree – And search for “Booms” • Then I should see a list of records of type “Booms” – And I should see the available quantity for each record – And I should see the distance of each record from its location to the factory – And I should see the expiration date for each record – And I should see a link “Request” for each record
  • 17. Scenario Automation • Given I am monitoring an on-going emergency Executable situation at the factory Code • When I enter the Query page Executable – And I click on “Resources” in the navigation tree Code – And search for “Booms” • Then I should see a list of records of type “Booms” – And I should see the available quantity for each record – And I should see the distance of each record from its Executable location to the factory Code – And I should see the expiration date for each record – And I should see a link “Request” for each record
  • 18. Automação de Cenários com Cucumber
  • 19. Scenario Automation with Cucumber When /I click on “(.*)” in the navigation tree/ do |type| tree = browser.current_page.navigation_tree tree.click(type) end Then /I should see a list of records of type “(.*)”/ do |type| page = browser.current_page assert_true(page.contains_text?(“Query Results”)) assert_true(page.contains_text?(“ found”)) assert_true(page.contains_text?(type)) end
  • 20. Scenario Automation with Cucumber-Java public class TreeSteps { @When(“I click on “(.*)” in the navigation tree”) public void clickOnType(String type) { NavTree tree = new NavTree(browser().getCurrentPage()) tree.click(type) } }
  • 21. THE END Remember this: “Manual regression testing is a completely unfeasible and unacceptable practice.” ”Use automated acceptance tests to guide your software product development.”