SlideShare una empresa de Scribd logo
1 de 21
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.”

Más contenido relacionado

Similar a 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 FestDenim 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'08kingsfleet
 
Smart Client Development
Smart Client DevelopmentSmart Client Development
Smart Client DevelopmentTamir Khason
 
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 EngineeringEasypeasy
 
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 MethodologyEthan Jewett
 
Scripting Recipes for Testers
Scripting Recipes for TestersScripting Recipes for Testers
Scripting Recipes for TestersAdam 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 opsAgile 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 SoftwareChris Weldon
 
Testing with cucumber testing framework
Testing with cucumber testing frameworkTesting with cucumber testing framework
Testing with cucumber testing frameworkAIMDek Technologies
 

Similar a 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
 

Último

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Último (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

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.”