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

Introduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewIntroduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewDisha Srivastava
 
Jira as a Tool for Test Management
Jira as a Tool for Test ManagementJira as a Tool for Test Management
Jira as a Tool for Test ManagementMaija Laksa
 
Appiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみるAppiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみるNozomi Ito
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationElias Nogueira
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using SeleniumNaresh Chintalcheru
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance TestingAtul Pant
 
Test Automation Using Python | Edureka
Test Automation Using Python | EdurekaTest Automation Using Python | Edureka
Test Automation Using Python | EdurekaEdureka!
 
Testing types functional and nonfunctional - Kati Holasz
Testing types   functional and nonfunctional - Kati HolaszTesting types   functional and nonfunctional - Kati Holasz
Testing types functional and nonfunctional - Kati HolaszHolasz Kati
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-AutomationMindfire Solutions
 
Types of test tools
Types of test toolsTypes of test tools
Types of test toolsVaibhav Dash
 
Karate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testingKarate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testingRoman Liubun
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With AppiumKnoldus Inc.
 
Selenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesSelenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesVijay Rangaiah
 
API Test Automation Using Karate (Anil Kumar Moka)
API Test Automation Using Karate (Anil Kumar Moka)API Test Automation Using Karate (Anil Kumar Moka)
API Test Automation Using Karate (Anil Kumar Moka)Peter Thomas
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDDDror Helper
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testinggaoliang641
 

What's hot (20)

Introduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiewIntroduction to Automation Testing and Selenium overiew
Introduction to Automation Testing and Selenium overiew
 
Jira as a Tool for Test Management
Jira as a Tool for Test ManagementJira as a Tool for Test Management
Jira as a Tool for Test Management
 
Appiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみるAppiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみる
 
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java ApplicationTrust Your Pipeline - Automatically Testing and End-to-End Java Application
Trust Your Pipeline - Automatically Testing and End-to-End Java Application
 
Automation Testing using Selenium
Automation Testing using SeleniumAutomation Testing using Selenium
Automation Testing using Selenium
 
Jmeter Performance Testing
Jmeter Performance TestingJmeter Performance Testing
Jmeter Performance Testing
 
Test Automation Using Python | Edureka
Test Automation Using Python | EdurekaTest Automation Using Python | Edureka
Test Automation Using Python | Edureka
 
Testing types functional and nonfunctional - Kati Holasz
Testing types   functional and nonfunctional - Kati HolaszTesting types   functional and nonfunctional - Kati Holasz
Testing types functional and nonfunctional - Kati Holasz
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Types of test tools
Types of test toolsTypes of test tools
Types of test tools
 
Karate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testingKarate - powerful and simple framework for REST API automation testing
Karate - powerful and simple framework for REST API automation testing
 
Introduction to selenium
Introduction to seleniumIntroduction to selenium
Introduction to selenium
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Cypress Testing.pptx
Cypress Testing.pptxCypress Testing.pptx
Cypress Testing.pptx
 
Selenium Presentation at Engineering Colleges
Selenium Presentation at Engineering CollegesSelenium Presentation at Engineering Colleges
Selenium Presentation at Engineering Colleges
 
QSpiders - Automation using Selenium
QSpiders - Automation using SeleniumQSpiders - Automation using Selenium
QSpiders - Automation using Selenium
 
API Test Automation Using Karate (Anil Kumar Moka)
API Test Automation Using Karate (Anil Kumar Moka)API Test Automation Using Karate (Anil Kumar Moka)
API Test Automation Using Karate (Anil Kumar Moka)
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
 

Similar to TOOLS FOR TESTING SOFTWARE

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-5hemasubbu08
 
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 AutomationSauce Labs
 
Learn Selenium - Online Guide
Learn Selenium - Online GuideLearn Selenium - Online Guide
Learn Selenium - Online Guidebigspire
 
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 platformKnoldus Inc.
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own wordsSUBHENDU KARMAKAR
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA or the Highway
 
Choosing right-automation-tool
Choosing right-automation-toolChoosing right-automation-tool
Choosing right-automation-toolBabuDevanandam
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle ManagementAmazon Web Services
 
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 ApplicationsTechnologyAssociationOregon
 
Lecture #6. automation testing (andrey oleynik)
Lecture #6. automation testing (andrey oleynik)Lecture #6. automation testing (andrey oleynik)
Lecture #6. automation testing (andrey oleynik)Andrey Oleynik
 
Jenkins Test Automation with codeBeamer ALM
Jenkins Test Automation with codeBeamer ALMJenkins Test Automation with codeBeamer ALM
Jenkins Test Automation with codeBeamer ALMIntland Software GmbH
 
Automated Testing Using Selenium
Automated Testing Using SeleniumAutomated Testing Using Selenium
Automated Testing Using SeleniumTechWell
 
Unit Testing in JavaScript
Unit Testing in JavaScriptUnit Testing in JavaScript
Unit Testing in JavaScriptRob Scaduto
 

Similar to TOOLS FOR TESTING SOFTWARE (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
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
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
 

Recently uploaded

Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
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 ApplicationsAlberto González Trastoy
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
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...ICS
 

Recently uploaded (20)

Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
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
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
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...
 

TOOLS FOR TESTING SOFTWARE

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