SlideShare a Scribd company logo
Automate Test, Tools, advantages,
and disadvantages
Majid Hosseini
Scala Developer @ ModernPal
www.linkedin.com/in/majidin
Agenda
● Introduction to test and
automation
● Test Engineer & QA Role
● Introduction to some test
automation tools
● Contract Testing
A QA engineer walks into a bar, and orders a beer
Then he orders 0 beers.
Then he orders 999999999999 beers.
Then he orders an aardvark.
Then he orders nothing.
Then he orders -1 beers.
Then he orders NULL beers.
Then he orders asnwikfjsdf.
Then he orders a
"><script>give_me_your_credit_card()</script>.
Finally, the QA engineer leaves without paying, comes back,
and asks for the tab.
More and more test....
Unit Test
Integration Test
end to end Test
e-2-e Test
UI Test
Acceptance Test
WhiteBox Test
BlackBox Test
Contract Test
Performance Test
Manual Test
GUI Test
High-level Test
Smoke Test
Load Test
Stress Test
Component Test
User Acceptance Test
Layout Test
Beta Test
Installation Test
Compatibility Test
Alpha Test
Regression Test
Functional Test
Non-functional Test
Destructive Test
Accessibility Test
Security Test
Ad-hoc Test
Agile Test
API Test
Backward compatibility Test
Branch Test
Exploratory Test
Fuzz Test
GlassBox Test
Gorilla Test!
Golden path testing
Interface Test
Happy path testing
Internationalization Test
Penetration Test Sanity Test
Scalability Test
Stability Test
System Test
Soak Test
Volume Testing
Vulnerability Test
Recovery Test
Unit Test:
“A Stack” should "throw NoSuchElementException if an empty stack is
popped" in {
val emptyStack = new Stack[String]
assertThrows[NoSuchElementException] {
emptyStack.pop()
}
}
Integration Test:
"Steering repository " should "find steerings by their ID" in {
Await.result(repository.add(testSteering), Duration.Inf)
Await.result(repository.add(testSteeringDifferentId), Duration.Inf)
val steering = Await.result(repository.findByKey(testSteeringId), Duration.Inf)
assert(steering.isDefined)
assert(steering.get.id === testSteering.id)
}
Test Level
Unit Test
Integration Test
High Level Test
High level Test:
"POST /steering_points" should
"Return 400 Badrequest error if name is empty string" in {
val req = baseSteeringPoint ++ Json.obj("name" -> "")
val response = Await.result(steeringPointsUrl.post(req), 5 second)
val result = Json.parse(response.body).asOpt[ErrorDTO]
assert(response.status == 400)
assert(result.isDefined)
}
High Level Test
• Simulate real user scenarios
• Verify the entire flow of the application
• Increase test coverage
Anti Pattern: Ice-Cream
Unit Test
● Fast
● Reliable
● Isolation Failures
● Easy Maintain
Test Pyramid
Keep in mind that all testing should be done
on the lowest level possible since
every step up the pyramid
makes tests more complex
and error prone.
Test for CI and CD (Production Pipeline)
Uncertainty in Test (Martin Fowler)
●
●
●
●
●
QA and Test Roles in Companies
● Separated “QA & Tester” Role
● No individual “QA & Tester” Role but SRE, DevOps and GOOD Product &
Development teams...
● Test & QA Designer
○ Comprehensive knowledge about the product and business domain
● Test Executor/Manager
○ Good knowledge of product and business domain
○ High ability to plan and being creative
○ Strong ability in investigation
○ Strong ability in communication and reporting
● Test Engineer
○ Front-end TE
○ Backend TE
○ Mobile TE
○ Specific TE: Security, Performance , ..
● Site Reliability Engineering
1. Describe behavior in plain text (Test Scenarios)
2. Implement scenario steps in a language
3. Run the scenarios
few rules to get a good scenario
✓ Use a proper @Tag to group related scenarios & execute them together >>>
Jenkins works with @Tags.
✓ Use non-technical terms in your scenario.
✓ Use only 1 when in each scenario.
Gherkin - simple syntax:
@{Tags}
Given for preconditions/testdata
When for steps/actions
Then for expectations/checks
{Data input}
Cucumber
1. Describe behaviour (test scenario) in plain text (Gherkin)
@priceUpload
Scenario: I want to test if uploading a file works
Given a file with name “myfile.csv”
When I upload the file
Then email is received
And the status will change to “SUCCESSFUL” in “10” seconds
2. Write a step definition in a programming language
Frontend Testing (Web)
Selenium WebDriver
1. Identify an element e.g. “text field 1”
2. Perform some action e.g. type “hello!” and Submit
3. Verify
● What WebDriver is able to:
○ interactions on the page (e.g. fill, click, submit, isElementPresent)
○ interactions with web browser e.g. add parameters, refresh, navigate back
○ JavaScript execution
● What WebDriver is not designed for:
○ layout testing ("should be green/have a border/..." is possible, but not maintainable)
○ js console output
Mobile Test
Android iOS e2e
Espresso KIF
EarlGrey
Appium
Calabash
Crowd Testing
Example: www.test.io
Performance Testing
What are we looking for?
SLOs/SLAs
Example of KPIs:
• Response time
• Throughput
Several tools exist, depends on your needs:
1. JMeter
2. Gatling
3. Apache Benchmark
Contract Testing
The consumer defines what it expects from a specific request to a service
The provider and the consumer agree on this contract
The provider continuously verifies that the contract is fulfilled
Pact A Contract Testing Framework

More Related Content

PDF
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
PPTX
Intro to TDD and BDD
PDF
Unit testing - A&BP CC
PDF
Agile Testing
PDF
Test and Behaviour Driven Development (TDD/BDD)
PPTX
Angular Unit Testing
PDF
Integration testing - A&BP CC
PPTX
Automation test framework with cucumber – BDD
Behavior-Driven Development and Automation Testing Using Cucumber Framework W...
Intro to TDD and BDD
Unit testing - A&BP CC
Agile Testing
Test and Behaviour Driven Development (TDD/BDD)
Angular Unit Testing
Integration testing - A&BP CC
Automation test framework with cucumber – BDD

What's hot (20)

DOCX
Automation Frame works Instruction Sheet
PPTX
An easy way to automate complex UI
PPT
Behavior Driven Development (BDD) and Agile Testing
PDF
Protractor: Tips & Tricks
PPTX
Test Automation Framework with BDD and Cucumber
PPTX
Jbehave selenium
PPTX
Brace yourself from automation death trap
PDF
Hp quick test professional 10
PPTX
BDD from QA side
PPTX
Bdd – with cucumber and gherkin
PDF
Automated Testing in Angular Slides
PPTX
Introduction to Bdd and cucumber
PPTX
Introduction to SoapUI day 1
PPTX
Bdd and spec flow
PPTX
What Is Cucumber?
PPTX
Principles and patterns for test driven development
PPT
Intro to junit
PDF
Client-Side Performance Testing
PDF
Creating Maintainable Automated Acceptance Tests
PPTX
Level Up Your Salesforce Unit Testing
Automation Frame works Instruction Sheet
An easy way to automate complex UI
Behavior Driven Development (BDD) and Agile Testing
Protractor: Tips & Tricks
Test Automation Framework with BDD and Cucumber
Jbehave selenium
Brace yourself from automation death trap
Hp quick test professional 10
BDD from QA side
Bdd – with cucumber and gherkin
Automated Testing in Angular Slides
Introduction to Bdd and cucumber
Introduction to SoapUI day 1
Bdd and spec flow
What Is Cucumber?
Principles and patterns for test driven development
Intro to junit
Client-Side Performance Testing
Creating Maintainable Automated Acceptance Tests
Level Up Your Salesforce Unit Testing
Ad

Similar to Automate test, tools, advantages, and disadvantages (20)

PPTX
Real Testing Scenario Strategy - Bringing It All Together For Success
PDF
Automated acceptance test
DOCX
The Journey of Test Automation
PDF
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
PPTX
Real Testing Scenario Strategy Practical TestOps Presentation
PDF
Lecture #6. automation testing (andrey oleynik)
PPTX
Diving into the World of Test Automation The Approach and the Technologies
PPTX
Neev QA Offering
PDF
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
PPTX
Neev Independent Testing Services
PDF
Autonomous End-to-End Testing for Online Banking Applications Presented with ...
PDF
Selenium and JMeter Testing
PDF
Selenium and JMeter
PDF
Test automation - Building effective solutions
PPTX
Test team dynamics, Антон Мужайло
PDF
Shilpa Basu - CV
PDF
АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»
PDF
Top 10 Software Testing Tools to Know as a Tester.pdf
PDF
Top 10 Software Testing Tools to Know as a Tester.pdf
PDF
Testing Experience - Evolution of Test Automation Frameworks
Real Testing Scenario Strategy - Bringing It All Together For Success
Automated acceptance test
The Journey of Test Automation
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
Real Testing Scenario Strategy Practical TestOps Presentation
Lecture #6. automation testing (andrey oleynik)
Diving into the World of Test Automation The Approach and the Technologies
Neev QA Offering
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael Buening
Neev Independent Testing Services
Autonomous End-to-End Testing for Online Banking Applications Presented with ...
Selenium and JMeter Testing
Selenium and JMeter
Test automation - Building effective solutions
Test team dynamics, Антон Мужайло
Shilpa Basu - CV
АНТОН МУЖАЙЛО «Test Team Development and Management Techniques»
Top 10 Software Testing Tools to Know as a Tester.pdf
Top 10 Software Testing Tools to Know as a Tester.pdf
Testing Experience - Evolution of Test Automation Frameworks
Ad

Recently uploaded (20)

PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Online Work Permit System for Fast Permit Processing
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Complete React Javascript Course Syllabus.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
history of c programming in notes for students .pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Introduction to Artificial Intelligence
PPTX
ai tools demonstartion for schools and inter college
DOCX
The Five Best AI Cover Tools in 2025.docx
PDF
System and Network Administraation Chapter 3
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Materi-Enum-and-Record-Data-Type (1).pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Upgrade and Innovation Strategies for SAP ERP Customers
Online Work Permit System for Fast Permit Processing
Softaken Excel to vCard Converter Software.pdf
Complete React Javascript Course Syllabus.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
How to Migrate SBCGlobal Email to Yahoo Easily
history of c programming in notes for students .pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
Introduction to Artificial Intelligence
ai tools demonstartion for schools and inter college
The Five Best AI Cover Tools in 2025.docx
System and Network Administraation Chapter 3
ISO 45001 Occupational Health and Safety Management System
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Materi-Enum-and-Record-Data-Type (1).pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Design an Analysis of Algorithms I-SECS-1021-03
Odoo POS Development Services by CandidRoot Solutions
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...

Automate test, tools, advantages, and disadvantages

  • 1. Automate Test, Tools, advantages, and disadvantages Majid Hosseini Scala Developer @ ModernPal www.linkedin.com/in/majidin
  • 2. Agenda ● Introduction to test and automation ● Test Engineer & QA Role ● Introduction to some test automation tools ● Contract Testing A QA engineer walks into a bar, and orders a beer Then he orders 0 beers. Then he orders 999999999999 beers. Then he orders an aardvark. Then he orders nothing. Then he orders -1 beers. Then he orders NULL beers. Then he orders asnwikfjsdf. Then he orders a "><script>give_me_your_credit_card()</script>. Finally, the QA engineer leaves without paying, comes back, and asks for the tab.
  • 3. More and more test.... Unit Test Integration Test end to end Test e-2-e Test UI Test Acceptance Test WhiteBox Test BlackBox Test Contract Test Performance Test Manual Test GUI Test High-level Test Smoke Test Load Test Stress Test Component Test User Acceptance Test Layout Test Beta Test Installation Test Compatibility Test Alpha Test Regression Test Functional Test Non-functional Test Destructive Test Accessibility Test Security Test Ad-hoc Test Agile Test API Test Backward compatibility Test Branch Test Exploratory Test Fuzz Test GlassBox Test Gorilla Test! Golden path testing Interface Test Happy path testing Internationalization Test Penetration Test Sanity Test Scalability Test Stability Test System Test Soak Test Volume Testing Vulnerability Test Recovery Test
  • 4. Unit Test: “A Stack” should "throw NoSuchElementException if an empty stack is popped" in { val emptyStack = new Stack[String] assertThrows[NoSuchElementException] { emptyStack.pop() } } Integration Test: "Steering repository " should "find steerings by their ID" in { Await.result(repository.add(testSteering), Duration.Inf) Await.result(repository.add(testSteeringDifferentId), Duration.Inf) val steering = Await.result(repository.findByKey(testSteeringId), Duration.Inf) assert(steering.isDefined) assert(steering.get.id === testSteering.id) } Test Level Unit Test Integration Test High Level Test High level Test: "POST /steering_points" should "Return 400 Badrequest error if name is empty string" in { val req = baseSteeringPoint ++ Json.obj("name" -> "") val response = Await.result(steeringPointsUrl.post(req), 5 second) val result = Json.parse(response.body).asOpt[ErrorDTO] assert(response.status == 400) assert(result.isDefined) }
  • 5. High Level Test • Simulate real user scenarios • Verify the entire flow of the application • Increase test coverage
  • 7. Unit Test ● Fast ● Reliable ● Isolation Failures ● Easy Maintain
  • 8. Test Pyramid Keep in mind that all testing should be done on the lowest level possible since every step up the pyramid makes tests more complex and error prone.
  • 9. Test for CI and CD (Production Pipeline)
  • 10. Uncertainty in Test (Martin Fowler) ● ● ● ● ●
  • 11. QA and Test Roles in Companies ● Separated “QA & Tester” Role ● No individual “QA & Tester” Role but SRE, DevOps and GOOD Product & Development teams...
  • 12. ● Test & QA Designer ○ Comprehensive knowledge about the product and business domain ● Test Executor/Manager ○ Good knowledge of product and business domain ○ High ability to plan and being creative ○ Strong ability in investigation ○ Strong ability in communication and reporting ● Test Engineer ○ Front-end TE ○ Backend TE ○ Mobile TE ○ Specific TE: Security, Performance , .. ● Site Reliability Engineering
  • 13. 1. Describe behavior in plain text (Test Scenarios) 2. Implement scenario steps in a language 3. Run the scenarios
  • 14. few rules to get a good scenario ✓ Use a proper @Tag to group related scenarios & execute them together >>> Jenkins works with @Tags. ✓ Use non-technical terms in your scenario. ✓ Use only 1 when in each scenario. Gherkin - simple syntax: @{Tags} Given for preconditions/testdata When for steps/actions Then for expectations/checks {Data input}
  • 15. Cucumber 1. Describe behaviour (test scenario) in plain text (Gherkin) @priceUpload Scenario: I want to test if uploading a file works Given a file with name “myfile.csv” When I upload the file Then email is received And the status will change to “SUCCESSFUL” in “10” seconds 2. Write a step definition in a programming language
  • 16. Frontend Testing (Web) Selenium WebDriver 1. Identify an element e.g. “text field 1” 2. Perform some action e.g. type “hello!” and Submit 3. Verify ● What WebDriver is able to: ○ interactions on the page (e.g. fill, click, submit, isElementPresent) ○ interactions with web browser e.g. add parameters, refresh, navigate back ○ JavaScript execution ● What WebDriver is not designed for: ○ layout testing ("should be green/have a border/..." is possible, but not maintainable) ○ js console output
  • 17. Mobile Test Android iOS e2e Espresso KIF EarlGrey Appium Calabash
  • 19. Performance Testing What are we looking for? SLOs/SLAs Example of KPIs: • Response time • Throughput Several tools exist, depends on your needs: 1. JMeter 2. Gatling 3. Apache Benchmark
  • 20. Contract Testing The consumer defines what it expects from a specific request to a service The provider and the consumer agree on this contract The provider continuously verifies that the contract is fulfilled
  • 21. Pact A Contract Testing Framework