SlideShare a Scribd company logo
1 of 20
TOOLS FOR SOFTWARE TESTING
CS415 Advanced Software Engineering
A Presentation by Group 5
Mohammed Moishin - S11119760
Darren Chand - S11122084
Mohammed Jamsid - S11120422
Shaneel Sukul - S11108872
INTRODUCTION
CS415 Software Engineering
1
• Unit testing involves individually testing unit of code separately to make sure that it works on its
own, independent of the other units.
• Test Driven Development (TDD) is an evolutionary approach to development which combines
test-first development where you write a test before you write just enough production code to
fulfill that test and refactoring.
• Agile development requires solutions and requirements that evolve through the collaborative
effort of self-organizing teams with their end users.
• Agile testing follows the principle of agile development.
DISCUSSION FLOW
CS415 Advanced Software Engineering
2
2. Background
3. Criteria used to select the testing tool
4.How to Use
5. Examples and Observations
6. Summary
1. Brief history
BRIEF HISTORY
CS415 Advanced Software Engineering
3
• Software testing began in 1950’s.
• 1960’s – 1970 correctness proof method was developed.
• Next method was developed in late 1970’s which tried to find errors in the system that
was not yet discovered.
• In 1980’s defect prevention was included in the process of software testing.
• In 1990’s early test design was developed.
• In 2000’s Business Technology Optimization (BTO) was developed.
BACKGROUND
CS415 Advanced Software Engineering
4
CS415 Advanced Software Engineering
5
WHY WE NEED SUCH TOOLS
• To point out the defects and errors that were made during the development phases.
• It makes sure of the Customer’s reliability and their satisfaction in the application.
• For an effective performance of software application or product.
• To ensure that the application should not result into any failures because it can be very
expensive late stages of development.
• Improves accuracy.
CS415 Advanced Software Engineering
6
• There were many tools available for our purpose.
• We had to select a tool that fitted our criterion best.
CS415 Advanced Software Engineering
7
OUR SELECTION CRITERIA
1. The tool should be affordable/free to use.
2. The tool should be easy to use.
3. Experiment with various software automation tools.
4. The tool should allow users to perform meaningful load and performance tests to
accurately measure system performance.
5. The tool should support testing with a variety of user interfaces and create simple to
manage, east-to-modify tests.
CS415 Advanced Software Engineering
8
Software Testing
Tool
PHPUnit Codeception Atoum Behat
Brief Description It is a testing framework for
writing Unit Tests for PHP
apps. Unit tests take small
portions of code called
units and test them one by
one.
Multifeatured testing
framework for PHP.
Codeception enables to
write Unit Tests as well as
Functional and Acceptance
tests
Is an intuitive and modern PHP
testing framework that allows
unit tests.
Behaviour-driven PHpP testing
framework. Behat uses the
StoryBDD subtype of behaviour
driven development
Pros • It is basic and basic is
often simpler to start.
(for first timers)
• Best known tool for
Unit Testing.
• It is mature and very
popular.(good
documentation, lots of
tutorials and threads on
it)
• It is more than basic,
features available for
different types of testing.
• Provides support for
different other testing
framework.
• Its test cases are written
in PHP.
• Atoum is feature rich
tool.
• Is very extensible
• Integrates well with
many web servers.
• Community support is
phenomenal.
• Test cases are human
friendly.
• Behat is feature rich tool.
• Test cases and
maintenance of tests in
Behat is easier.
Cons • Not better for API
testing or acceptance
testing because of
higher level different
than Unit testing.
• Is very limited.
• Does not have much
documentation and
resources compared to
PHPUnit.
• Not much simpler and
easier to configure than
PHPUnit.
• Doesn’t have proper
abstraction for most
areas of operation.
• Not recommended for
small projects.
• Higher memory usage.
• API testing needs more
tools to integrate with.
• Due to more layers
involved
CS415 Advanced Software Engineering
9
Criterion PHPUnit Codeception Atoum Behat Max Points
Cost 9 9 8 7 10
Ease-of-use 10 9 9 9 10
Integration
with Lumen
9 9 7 8 10
Collaboration 8 9 7 8 10
Details on
changes
9 8 9 9 10
Total Point 45 44 40 41 50
CS415 Advanced Software Engineering
10
The PHP Testing Framework
• Created by Sebastian Bergmann and its development is hosted on Github
• Is a unit testing framework for the PHP language.
• It is an instance of the xUnit architecture for unit testing frameworks that originated with Sunit and became
popular with Junit.
• Is used for our backend.
CS415 Advanced Software Engineering
11
Software Testing
Tool
Brief Description Jasmine is a Behaviour
Driven Development
testing framework for
JavaScript. It does not
rely on browsers, DOM,
or any JavaScript
framework
Appium is an open source
test automation
framework for use with
native, hybrid, and mobile
web apps. It drives iOS
and Android apps using
the WebDriver protocol
Jest provides you with
multiple layers on top of
Jasmine.
Selenium automates browsers.
That's it! Primarily, it is for
automating web applications
for testing purposes.
Pros • Can be used for TDD
• Open source
• Great community
• Easy to setup
• Simple
• No dependencies, not
even DOM
• Webdriverio support
• Open source
• Support for various
framework
• Open source
• Parallel test running
• Bundled with JSDOM to
enable DOM testing
• Testing react native
apps.
• Automates browsers
• Remote control
• Easy set up
• Functional testing
• Easy to scale
• Recommended for large
projects
Cons • Cant run against the
‘real’ DOM.
• No reliance on its real
application or DOM.
• Doesn’t support image
comparison
• Too many unexpected
errors
• Longer time to
configure
• Less tooling and library
support
• Difficult to use across
board for larger projects
• Just facilitates internet
based applications
• Challenging to check
image based software
• Doesn’t supply any built-in
IDE
Intergration • Karma • Reac.js
• Karma
• No integrations yet • Selendroid
• Buddy
• Nemo.js
12
CS415 Advanced Software Engineering
13
Criterion Jasmine Appium Jest Selenium Max Points
Cost 9 8 8 7 10
Ease-of-use 9 9 8 7 10
Test-driven-
development
8 8 5 9 10
Customer
Usage
7 3 6 10 10
Git based 8 5 9 7 10
Total Points 41 32 36 40 50
CHOSEN TESTING TOOLS
CS415 Advanced Software Engineering
14
Jasmine Framework
• The developers at Pivotal Labs for Jasmine previously developed a similar unit testing framework called
JsUnit before active development of Jasmine.
• It’s a Behavior Driven Development Framework for testing JavaScript code.
• It does not depend on any other framework.
• It does not require DOM and has a clean, obvious syntax so that you can easily write tests.
• Will be used for our frontend.
HOW TO USE
CS415 Advanced Software Engineering
15
Jasmine Framework
Jasmine is a framework for writing code that tests your code. It does that primarily through the
following three functions: “describe”, “it” and “expect”:
• describe() defines a suite of tests (or “specs”)
• it() defines a test or “spec”, and it lives inside a suite. This is what defines the expected behavior
of the code you are testing.
• expect() defines the expected result of a test and lives inside of it().
CS415 Advanced Software Engineering
16
PHPUnit Testing
Defining & Running Tests
Testing JSON APIs
• Create test case.
• Run your tests.
• Lumen provides API’s.
• Test to make a post request to /user.
EXAMPLE AND RELEVANCE TO CS415
CS415 Advanced Software Engineering
17
SUMMARY
CS415 Advanced Software Engineering
18
• The importance of automated software tools.
• Why the chosen testing tools were the right choice for our group.
• Next step from here.
“
”
CS415 Advanced Software Engineering
19

More Related Content

What's hot

Test Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalTest Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh Dahal
QA or the Highway
 
How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy
Impetus Technologies
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation Strategy
Martin Ruddy
 

What's hot (20)

Test Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalTest Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh Dahal
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Test automation process
Test automation processTest automation process
Test automation process
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
Test Automation Framework Designs
Test Automation Framework DesignsTest Automation Framework Designs
Test Automation Framework Designs
 
Selenium ppt
Selenium pptSelenium ppt
Selenium ppt
 
selenium with python training
selenium with python trainingselenium with python training
selenium with python training
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy How to Design a Successful Test Automation Strategy
How to Design a Successful Test Automation Strategy
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Selenium
SeleniumSelenium
Selenium
 
Scriptless Automation Testing: A Unique Framework To Accelerate Delivery
Scriptless Automation Testing: A Unique Framework To Accelerate DeliveryScriptless Automation Testing: A Unique Framework To Accelerate Delivery
Scriptless Automation Testing: A Unique Framework To Accelerate Delivery
 
End to end testing - strategies
End to end testing - strategiesEnd to end testing - strategies
End to end testing - strategies
 
Test Automation Strategy
Test Automation StrategyTest Automation Strategy
Test Automation Strategy
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
Test Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew EakinTest Strategy-The real silver bullet in testing by Matthew Eakin
Test Strategy-The real silver bullet in testing by Matthew Eakin
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 
Module-1_Getting-Started_with_selenium_and_Java_basics.pdf
Module-1_Getting-Started_with_selenium_and_Java_basics.pdfModule-1_Getting-Started_with_selenium_and_Java_basics.pdf
Module-1_Getting-Started_with_selenium_and_Java_basics.pdf
 
New trends in testing automation
New trends in testing automationNew trends in testing automation
New trends in testing automation
 

Similar to Tools for Software Testing

Similar to Tools for Software Testing (20)

4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-54&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
 
Selenium
SeleniumSelenium
Selenium
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Learn Selenium - Online Guide
Learn Selenium - Online GuideLearn Selenium - Online Guide
Learn Selenium - Online Guide
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Accelerating tests with Cypress for a leaderboard platform
Accelerating tests with Cypress for a leaderboard platformAccelerating tests with Cypress for a leaderboard platform
Accelerating tests with Cypress for a leaderboard platform
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Choosing right-automation-tool
Choosing right-automation-toolChoosing right-automation-tool
Choosing right-automation-tool
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
When & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile ApplicationsWhen & How to Successfully use Test Automation for Mobile Applications
When & How to Successfully use Test Automation for Mobile Applications
 
Lecture #6. automation testing (andrey oleynik)
Lecture #6. automation testing (andrey oleynik)Lecture #6. automation testing (andrey oleynik)
Lecture #6. automation testing (andrey oleynik)
 
Jenkins Test Automation with codeBeamer ALM
Jenkins Test Automation with codeBeamer ALMJenkins Test Automation with codeBeamer ALM
Jenkins Test Automation with codeBeamer ALM
 
Red7 Automating UAT Web Testing
Red7 Automating UAT Web TestingRed7 Automating UAT Web Testing
Red7 Automating UAT Web Testing
 
Software testing
Software testingSoftware testing
Software testing
 
Automated Testing Using Selenium
Automated Testing Using SeleniumAutomated Testing Using Selenium
Automated Testing Using Selenium
 
Unit Testing in JavaScript
Unit Testing in JavaScriptUnit Testing in JavaScript
Unit Testing in JavaScript
 
Selenium training in chennai
Selenium training in chennaiSelenium training in chennai
Selenium training in chennai
 
Lesson_06_Software_and_Automation_Testing_Frameworks.pdf
Lesson_06_Software_and_Automation_Testing_Frameworks.pdfLesson_06_Software_and_Automation_Testing_Frameworks.pdf
Lesson_06_Software_and_Automation_Testing_Frameworks.pdf
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 

Tools for Software Testing

  • 1. TOOLS FOR SOFTWARE TESTING CS415 Advanced Software Engineering A Presentation by Group 5 Mohammed Moishin - S11119760 Darren Chand - S11122084 Mohammed Jamsid - S11120422 Shaneel Sukul - S11108872
  • 2. INTRODUCTION CS415 Software Engineering 1 • Unit testing involves individually testing unit of code separately to make sure that it works on its own, independent of the other units. • Test Driven Development (TDD) is an evolutionary approach to development which combines test-first development where you write a test before you write just enough production code to fulfill that test and refactoring. • Agile development requires solutions and requirements that evolve through the collaborative effort of self-organizing teams with their end users. • Agile testing follows the principle of agile development.
  • 3. DISCUSSION FLOW CS415 Advanced Software Engineering 2 2. Background 3. Criteria used to select the testing tool 4.How to Use 5. Examples and Observations 6. Summary 1. Brief history
  • 4. BRIEF HISTORY CS415 Advanced Software Engineering 3 • Software testing began in 1950’s. • 1960’s – 1970 correctness proof method was developed. • Next method was developed in late 1970’s which tried to find errors in the system that was not yet discovered. • In 1980’s defect prevention was included in the process of software testing. • In 1990’s early test design was developed. • In 2000’s Business Technology Optimization (BTO) was developed.
  • 6. CS415 Advanced Software Engineering 5 WHY WE NEED SUCH TOOLS • To point out the defects and errors that were made during the development phases. • It makes sure of the Customer’s reliability and their satisfaction in the application. • For an effective performance of software application or product. • To ensure that the application should not result into any failures because it can be very expensive late stages of development. • Improves accuracy.
  • 7. CS415 Advanced Software Engineering 6 • There were many tools available for our purpose. • We had to select a tool that fitted our criterion best.
  • 8. CS415 Advanced Software Engineering 7 OUR SELECTION CRITERIA 1. The tool should be affordable/free to use. 2. The tool should be easy to use. 3. Experiment with various software automation tools. 4. The tool should allow users to perform meaningful load and performance tests to accurately measure system performance. 5. The tool should support testing with a variety of user interfaces and create simple to manage, east-to-modify tests.
  • 9. CS415 Advanced Software Engineering 8 Software Testing Tool PHPUnit Codeception Atoum Behat Brief Description It is a testing framework for writing Unit Tests for PHP apps. Unit tests take small portions of code called units and test them one by one. Multifeatured testing framework for PHP. Codeception enables to write Unit Tests as well as Functional and Acceptance tests Is an intuitive and modern PHP testing framework that allows unit tests. Behaviour-driven PHpP testing framework. Behat uses the StoryBDD subtype of behaviour driven development Pros • It is basic and basic is often simpler to start. (for first timers) • Best known tool for Unit Testing. • It is mature and very popular.(good documentation, lots of tutorials and threads on it) • It is more than basic, features available for different types of testing. • Provides support for different other testing framework. • Its test cases are written in PHP. • Atoum is feature rich tool. • Is very extensible • Integrates well with many web servers. • Community support is phenomenal. • Test cases are human friendly. • Behat is feature rich tool. • Test cases and maintenance of tests in Behat is easier. Cons • Not better for API testing or acceptance testing because of higher level different than Unit testing. • Is very limited. • Does not have much documentation and resources compared to PHPUnit. • Not much simpler and easier to configure than PHPUnit. • Doesn’t have proper abstraction for most areas of operation. • Not recommended for small projects. • Higher memory usage. • API testing needs more tools to integrate with. • Due to more layers involved
  • 10. CS415 Advanced Software Engineering 9 Criterion PHPUnit Codeception Atoum Behat Max Points Cost 9 9 8 7 10 Ease-of-use 10 9 9 9 10 Integration with Lumen 9 9 7 8 10 Collaboration 8 9 7 8 10 Details on changes 9 8 9 9 10 Total Point 45 44 40 41 50
  • 11. CS415 Advanced Software Engineering 10 The PHP Testing Framework • Created by Sebastian Bergmann and its development is hosted on Github • Is a unit testing framework for the PHP language. • It is an instance of the xUnit architecture for unit testing frameworks that originated with Sunit and became popular with Junit. • Is used for our backend.
  • 12. CS415 Advanced Software Engineering 11 Software Testing Tool Brief Description Jasmine is a Behaviour Driven Development testing framework for JavaScript. It does not rely on browsers, DOM, or any JavaScript framework Appium is an open source test automation framework for use with native, hybrid, and mobile web apps. It drives iOS and Android apps using the WebDriver protocol Jest provides you with multiple layers on top of Jasmine. Selenium automates browsers. That's it! Primarily, it is for automating web applications for testing purposes. Pros • Can be used for TDD • Open source • Great community • Easy to setup • Simple • No dependencies, not even DOM • Webdriverio support • Open source • Support for various framework • Open source • Parallel test running • Bundled with JSDOM to enable DOM testing • Testing react native apps. • Automates browsers • Remote control • Easy set up • Functional testing • Easy to scale • Recommended for large projects Cons • Cant run against the ‘real’ DOM. • No reliance on its real application or DOM. • Doesn’t support image comparison • Too many unexpected errors • Longer time to configure • Less tooling and library support • Difficult to use across board for larger projects • Just facilitates internet based applications • Challenging to check image based software • Doesn’t supply any built-in IDE Intergration • Karma • Reac.js • Karma • No integrations yet • Selendroid • Buddy • Nemo.js
  • 13. 12
  • 14. CS415 Advanced Software Engineering 13 Criterion Jasmine Appium Jest Selenium Max Points Cost 9 8 8 7 10 Ease-of-use 9 9 8 7 10 Test-driven- development 8 8 5 9 10 Customer Usage 7 3 6 10 10 Git based 8 5 9 7 10 Total Points 41 32 36 40 50
  • 15. CHOSEN TESTING TOOLS CS415 Advanced Software Engineering 14 Jasmine Framework • The developers at Pivotal Labs for Jasmine previously developed a similar unit testing framework called JsUnit before active development of Jasmine. • It’s a Behavior Driven Development Framework for testing JavaScript code. • It does not depend on any other framework. • It does not require DOM and has a clean, obvious syntax so that you can easily write tests. • Will be used for our frontend.
  • 16. HOW TO USE CS415 Advanced Software Engineering 15 Jasmine Framework Jasmine is a framework for writing code that tests your code. It does that primarily through the following three functions: “describe”, “it” and “expect”: • describe() defines a suite of tests (or “specs”) • it() defines a test or “spec”, and it lives inside a suite. This is what defines the expected behavior of the code you are testing. • expect() defines the expected result of a test and lives inside of it().
  • 17. CS415 Advanced Software Engineering 16 PHPUnit Testing Defining & Running Tests Testing JSON APIs • Create test case. • Run your tests. • Lumen provides API’s. • Test to make a post request to /user.
  • 18. EXAMPLE AND RELEVANCE TO CS415 CS415 Advanced Software Engineering 17
  • 19. SUMMARY CS415 Advanced Software Engineering 18 • The importance of automated software tools. • Why the chosen testing tools were the right choice for our group. • Next step from here.