SlideShare a Scribd company logo
Software Testing &
Quality Assurance
Why using Specflow (Gherkin) and Selenium ?
Benjamin Baumann
@Zentiltoutou
October 21st 2016
How much costs a bug?
• 1962 NASA - Mariner 1
Omission of a hyphen in instructions. Auto destruct. $18M
• 1996 Ariane 5
Integer Overflow on old legacy code that is not needed. No flight
simulator to spare money. $370M for satellites alone
Coder punchline #1
How much costs a bug?
• 2009 Toyota
Lag in the anti-lock-brake system. Recall 9M cars. $3G estimated
• 2012 Knight Capital Group
Code deployed to all but one server. This server sent out 4M+ wrong
stock orders in one hour. $440M
Software testing and quality assurance
But we’re no Spacecraft or trading firm!
• 2015 Eurosport Player V6
Video lags, fps drop, overheating PC, angry clients.
Due to incompatibility between technology and requirements.
Detected by beta testing but gone live before the test results
Ok. Let’s test! White-box? Black-box?
• White-box testing
Tests the internal structure or workings of a program :
• Unit tests
• Functional testing
• Integration testing
• Regression testing
• Load & Stress testing
• Sanity & Smoke testing
• Black-box testing
Software is a black box. Tester knows nothing about how it works.
• Acceptance testing
• Beta testing
Unit tests are idiots.
Unit tests are idiots.
Unit tests are idiots but legion!
• Think about code coverage
• Assess code quality, not software’s
• Think about edge cases, error handling
Unit tests are idiots, legion and hard to
maintain
• Each code change/writing begin with test change/writing
• « I’m a developer, these tests are idiots! Why do I have to write
them? »
• « The tests failed, such a pain. I’ll just comment them out »
Break #1 : That’s not me. All internet is saying it!
That’s not me. All internet is saying it!
That’s not me. All internet is saying it!
That’s not me. All internet is saying it!
Still, I want to do unit testing
• Please, do unit testing only if :
• You have a decent number of developers in your team
• You have time to do it and to maintain it
• You can run them and validate them automatically (through CI)
• You run a business critical project
• You have detailled technical specs
• Coding unit test is still coding, treat your tests like your code
• Don’t write the code AND the tests, make someone else write the tests.
• Golden rule : « Each unit test case should be very limited in scope »
Ok I have a ton of unit tests. Am I OK?
Ok I have a ton of unit tests. Am I OK?
Focus on functional,regression and
acceptance tests
• Testing software features above code methods
• Less detailed, less to do, less to maintain
• Focus on testing the requirements/specs
• Safeguard for developers
Ok let’s test a feature !
• Describe the feature : Who? What? Why?
• « In order to watch the player
As a Eurosport Player user
I want to be able to connect»
• Help describing the need
• Feature-centric
• Technology agnostic
• Need for testing scenarios
Ok let’s write a scenario !
Given I go to the Eurosport Player home page
And I open the connection modal
And I enter my credentials
When I submit the form
Then I must be logged in
White-box? Black-box?
Ok let’s write a scenario!
Given I go to the Eurosport Player home page
And I open the connection modal
And I enter my credentials
When I submit the form
Then I must be logged in
White-box! Describing a feature should be blackboxed.
Ok let’s write a better scenario!
Given I go to the Eurosport Player
When I login
Then I must be able to watch Eurosport Player
No tech. No design stuff. Just the feature.
Feature does not change when code is refactored.
You should rewrite the code behind, but not the test scenario
Break #2: Understanding others
Break #2: Understanding others
• « Hey, this is not the behaviour I asked for !», « But that’s what you
told me in your mail… », « You did not understand, that’s not what I
wanted »
• « Domain, Network, AD, I mix up all these, it’s gibberish to me »
• Solutions
• Learn the other language so that you understand them
• Everyone learns a new language so that we understand each other
(AWS)
• Don’t go into details, just do high level
• Speak like you’d speak to the average man in the street
What about Gherkin?
• We’ve already used Gherkin
• Gherkin is the language that Specflow understands. It is a Business
Readable, Domain Specific Language that lets you describe software’s
behaviour without detailing how that behaviour is implemented.
• Gherkin serves two purposes — documentation and automated tests.
The third is a bonus feature — when it yells in red it’s talking to you,
telling you what code you should write.
Documentation by Gherkin
• List features
• List testing scenarios
• Readable by EVERYONE
• Hard to write, easy to understand
• A heaven for maintenance
• http://qa.sti.eurosport.intra/Home/SpecflowList?path=d%3A%5Csites
%5CQA%5CProjects%5CEurosport%20Player%20PROD%5CScenarios&
projectName=Eurosport%20Player%20PROD
Automated tests with Specflow
• Each scenario line is linked to a code method
• Pass scenario data to the method
• Scenario Context (browser, language, environment…)
• Runnable in classic test runners (NUnit, MsTest …)
• Explicit errors
• When failed, need to go deeper with unit tests or by hand
And what about Selenium?
• Selenium WebDriver is a library that can drive a web browser
• Method on the webdriver results on « real user » action
• Let’ code!
Merci!

More Related Content

PDF
Quality Assurance Guidelines
PPTX
Software Testing or Quality Assurance
PDF
Software Testing Basic Concepts
PPT
Basic software-testing-concepts
PPTX
Intro to Manual Testing
PPT
Automated Testing vs Manual Testing
PPTX
Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...
PPT
Testing concepts ppt
Quality Assurance Guidelines
Software Testing or Quality Assurance
Software Testing Basic Concepts
Basic software-testing-concepts
Intro to Manual Testing
Automated Testing vs Manual Testing
Software Testing - Part 1 (Techniques, Types, Levels, Methods, STLC, Bug Life...
Testing concepts ppt

What's hot (19)

PPT
Basics of Software Testing
PPTX
Manual testing
PDF
Software Testing As a Career Path
PPT
Manual testing ppt
PPTX
Alpha beta and acceptance testing
PPTX
Software testing
PDF
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
PPTX
PPTX
Software Testing and Debugging
PPT
SW Testing Fundamentals
PDF
Software Testing without Requirements: Survival Guide
PDF
Testing automation in agile environment
PPTX
Unit tests benefits
PPTX
Testing Best Practices
PPTX
Abc of testing
DOCX
Manual Testing Online Training
PDF
Seminar on Software Testing
PPT
TESTING LIFE CYCLE PPT
DOCX
General technical interview questions
Basics of Software Testing
Manual testing
Software Testing As a Career Path
Manual testing ppt
Alpha beta and acceptance testing
Software testing
Career in Software Testing | Skills Required for Software Test Engineer | Edu...
Software Testing and Debugging
SW Testing Fundamentals
Software Testing without Requirements: Survival Guide
Testing automation in agile environment
Unit tests benefits
Testing Best Practices
Abc of testing
Manual Testing Online Training
Seminar on Software Testing
TESTING LIFE CYCLE PPT
General technical interview questions
Ad

Similar to Software testing and quality assurance (20)

PPTX
Test Driven Development on Android (Kotlin Kenya)
PPTX
Reliable mobile test automation
PDF
eXtreme Programming
PDF
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
KEY
Driving application development through behavior driven development
PPTX
An Introduction To Software Development - Test Driven Development, Part 1
PDF
Perl-Critic
PPTX
A Brief Introduction to Test-Driven Development
PPTX
Build software like a bag of marbles, not a castle of LEGO®
PDF
Console Development in 15 minutes
PDF
Winning strategies in Test Automation
PDF
How To Use Selenium Successfully
PDF
An Introduction To Software Development - Final Review
PPTX
How I Learned to Stop Worrying and Love Legacy Code.....
PPTX
Build software like a bag of marbles, not a castle of LEGO®
PPTX
You cant be agile if your code sucks
PDF
Becoming a better programmer - unit testing
PDF
Quality Assurance 1: Why Quality Matters
PDF
Bug Hunting Safari
PPTX
TDD - Seriously, try it! (updated '22)
Test Driven Development on Android (Kotlin Kenya)
Reliable mobile test automation
eXtreme Programming
Shift Remote: Mobile - Efficiently Building Native Frameworks for Multiple Pl...
Driving application development through behavior driven development
An Introduction To Software Development - Test Driven Development, Part 1
Perl-Critic
A Brief Introduction to Test-Driven Development
Build software like a bag of marbles, not a castle of LEGO®
Console Development in 15 minutes
Winning strategies in Test Automation
How To Use Selenium Successfully
An Introduction To Software Development - Final Review
How I Learned to Stop Worrying and Love Legacy Code.....
Build software like a bag of marbles, not a castle of LEGO®
You cant be agile if your code sucks
Becoming a better programmer - unit testing
Quality Assurance 1: Why Quality Matters
Bug Hunting Safari
TDD - Seriously, try it! (updated '22)
Ad

Recently uploaded (20)

PPTX
ai tools demonstartion for schools and inter college
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Transform Your Business with a Software ERP System
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Nekopoi APK 2025 free lastest update
PPTX
Online Work Permit System for Fast Permit Processing
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
AI in Product Development-omnex systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
medical staffing services at VALiNTRY
PPT
Introduction Database Management System for Course Database
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
L1 - Introduction to python Backend.pptx
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
ai tools demonstartion for schools and inter college
2025 Textile ERP Trends: SAP, Odoo & Oracle
Which alternative to Crystal Reports is best for small or large businesses.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx
Transform Your Business with a Software ERP System
PTS Company Brochure 2025 (1).pdf.......
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Understanding Forklifts - TECH EHS Solution
Nekopoi APK 2025 free lastest update
Online Work Permit System for Fast Permit Processing
How Creative Agencies Leverage Project Management Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
AI in Product Development-omnex systems
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
medical staffing services at VALiNTRY
Introduction Database Management System for Course Database
Operating system designcfffgfgggggggvggggggggg
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
L1 - Introduction to python Backend.pptx
How to Migrate SBCGlobal Email to Yahoo Easily

Software testing and quality assurance

  • 1. Software Testing & Quality Assurance Why using Specflow (Gherkin) and Selenium ? Benjamin Baumann @Zentiltoutou October 21st 2016
  • 2. How much costs a bug? • 1962 NASA - Mariner 1 Omission of a hyphen in instructions. Auto destruct. $18M • 1996 Ariane 5 Integer Overflow on old legacy code that is not needed. No flight simulator to spare money. $370M for satellites alone
  • 4. How much costs a bug? • 2009 Toyota Lag in the anti-lock-brake system. Recall 9M cars. $3G estimated • 2012 Knight Capital Group Code deployed to all but one server. This server sent out 4M+ wrong stock orders in one hour. $440M
  • 6. But we’re no Spacecraft or trading firm! • 2015 Eurosport Player V6 Video lags, fps drop, overheating PC, angry clients. Due to incompatibility between technology and requirements. Detected by beta testing but gone live before the test results
  • 7. Ok. Let’s test! White-box? Black-box? • White-box testing Tests the internal structure or workings of a program : • Unit tests • Functional testing • Integration testing • Regression testing • Load & Stress testing • Sanity & Smoke testing • Black-box testing Software is a black box. Tester knows nothing about how it works. • Acceptance testing • Beta testing
  • 8. Unit tests are idiots.
  • 9. Unit tests are idiots.
  • 10. Unit tests are idiots but legion! • Think about code coverage • Assess code quality, not software’s • Think about edge cases, error handling
  • 11. Unit tests are idiots, legion and hard to maintain • Each code change/writing begin with test change/writing • « I’m a developer, these tests are idiots! Why do I have to write them? » • « The tests failed, such a pain. I’ll just comment them out »
  • 12. Break #1 : That’s not me. All internet is saying it!
  • 13. That’s not me. All internet is saying it!
  • 14. That’s not me. All internet is saying it!
  • 15. That’s not me. All internet is saying it!
  • 16. Still, I want to do unit testing • Please, do unit testing only if : • You have a decent number of developers in your team • You have time to do it and to maintain it • You can run them and validate them automatically (through CI) • You run a business critical project • You have detailled technical specs • Coding unit test is still coding, treat your tests like your code • Don’t write the code AND the tests, make someone else write the tests. • Golden rule : « Each unit test case should be very limited in scope »
  • 17. Ok I have a ton of unit tests. Am I OK?
  • 18. Ok I have a ton of unit tests. Am I OK?
  • 19. Focus on functional,regression and acceptance tests • Testing software features above code methods • Less detailed, less to do, less to maintain • Focus on testing the requirements/specs • Safeguard for developers
  • 20. Ok let’s test a feature ! • Describe the feature : Who? What? Why? • « In order to watch the player As a Eurosport Player user I want to be able to connect» • Help describing the need • Feature-centric • Technology agnostic • Need for testing scenarios
  • 21. Ok let’s write a scenario ! Given I go to the Eurosport Player home page And I open the connection modal And I enter my credentials When I submit the form Then I must be logged in White-box? Black-box?
  • 22. Ok let’s write a scenario! Given I go to the Eurosport Player home page And I open the connection modal And I enter my credentials When I submit the form Then I must be logged in White-box! Describing a feature should be blackboxed.
  • 23. Ok let’s write a better scenario! Given I go to the Eurosport Player When I login Then I must be able to watch Eurosport Player No tech. No design stuff. Just the feature. Feature does not change when code is refactored. You should rewrite the code behind, but not the test scenario
  • 25. Break #2: Understanding others • « Hey, this is not the behaviour I asked for !», « But that’s what you told me in your mail… », « You did not understand, that’s not what I wanted » • « Domain, Network, AD, I mix up all these, it’s gibberish to me » • Solutions • Learn the other language so that you understand them • Everyone learns a new language so that we understand each other (AWS) • Don’t go into details, just do high level • Speak like you’d speak to the average man in the street
  • 26. What about Gherkin? • We’ve already used Gherkin • Gherkin is the language that Specflow understands. It is a Business Readable, Domain Specific Language that lets you describe software’s behaviour without detailing how that behaviour is implemented. • Gherkin serves two purposes — documentation and automated tests. The third is a bonus feature — when it yells in red it’s talking to you, telling you what code you should write.
  • 27. Documentation by Gherkin • List features • List testing scenarios • Readable by EVERYONE • Hard to write, easy to understand • A heaven for maintenance • http://qa.sti.eurosport.intra/Home/SpecflowList?path=d%3A%5Csites %5CQA%5CProjects%5CEurosport%20Player%20PROD%5CScenarios& projectName=Eurosport%20Player%20PROD
  • 28. Automated tests with Specflow • Each scenario line is linked to a code method • Pass scenario data to the method • Scenario Context (browser, language, environment…) • Runnable in classic test runners (NUnit, MsTest …) • Explicit errors • When failed, need to go deeper with unit tests or by hand
  • 29. And what about Selenium? • Selenium WebDriver is a library that can drive a web browser • Method on the webdriver results on « real user » action • Let’ code!