SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
SOFTWARE TESTING CONCEPTS

With a focus on PHPUnit,
PHP_CodeCoverage, and
xDebug
INTRODUCTION
Aaron Bernstein – Aspiring Engineer
 One of the lead software engineers in the
Workspace Team at GoDaddy

 Been working with GoDaddy for about a year and a half.
 Specifically tasked on our FaxThruEmail product.

Micah Wood – Aspiring Software Engineer
 One of the software engineers in the Workspace
Team at GoDaddy
 Been working with GoDaddy for about four years.
 Specifically tasked on our FaxThruEmail product.

Farhan Zaman – Software Engineer in Test

 One of the automation engineers in the Workspace
Team at GoDaddy
 Been working with GoDaddy for about three and a half.
 Specifically tasked on our Email Infrastructure and AIR product.

Combined Experience Includes:

 Fifteen plus years of programming in a
multitude of languages…
 We’ve all been working towards fully covering
our applications with unit, functional,
integration, and browser testing over time.
WHO

You, should love testing!!
ROLES
Software Engineers
Throughout the development process, one should be
performing tests on code that they author.

Test Engineers
By the nature of the title, their primary function is to
test software.

Automation Engineers
Developing tools and procedures to test software
through automated methods.

Management
Ultimately responsible for the product integrity.
WHAT

Anything you code!!
LEVELS AND TYPES OF SOFTWARE TESTING
LEVELS

TYPES

• Unit

• A/B

• System

• Internationalization and
localization

• Acceptance

• Acceptance

• Installation

• Accessibility

• Functional/Non-Functional

• Alpha/Beta

• Regression

• Integration

• Compatibility

• Destructive
• Development

• Smoke and Sanity
• Software Performance
• Security
• Usability
TESTING METHODS
STATIC

DYNAMIC

Reviews, walkthroughs, or inspections are
referred to as static testing.

Executing programmed code with a given set
of test cases is referred to as dynamic testing.

Static testing can be omitted, and in practice
often is.

Dynamic testing takes place when the program
itself is used.
Dynamic testing may begin before the
program is 100% complete in order to test
particular sections of code and are applied to
discrete functions or modules.
Typical techniques for this are either
using stubs/drivers or execution from
a debugger environment.
WHEN

As much as feasibly possible!!
PARTS OF THE PROOFING PROCESS
VERIFICATION

VALIDATION

The process of determining whether the
products of a given phase of the
software development process fulfill the
requirements established during the
previous phase.

The process of evaluating software at
the end of software development to
ensure compliance with intended usage.
WHERE

But of course, where it fits!!
CONTINUOUS INTEGRATION AND/OR TRIGGERS
THROUGH CONTINUOUS INTEGRATION METHODS
• Repository
• Polling

• Package Management
• At build time

• Deployments
• At deployment time

• SCM Hooks
• Client-Side
• This section splits them into committing workflow hooks, e-mail
workflow scripts, and the rest of the client-side scripts.
• Server-Side
• These scripts run before and after pushes to the server.

* all of which can be quantified and automated.
WHY

Even the best programmers, can
and do, make mistakes!!
COST OF NOT TESTING OR LATE TESTING
Testing is the most time consuming and
expensive part of software development.
Not testing is even more expensive.

If we have too little testing effort early,
the cost of testing increases exponentially.
Planning for testing after development is
prohibitively expensive.

MAIN FUNCTIONS OF TESTING
• Improve quality
• Reduce cost
• Preserve customer satisfaction
HOW

Bunch of sugar and spice!!
(Magic and Fairy Dust)
CODE QUALITY AND THE C.R.A.P. INDEX
The C.R.A.P. (Change Risk Analysis and Predictions)
index is designed to analyze and predict the amount
of effort, pain, and time required to maintain an
existing body of code.
The other factor used in calculating the C.R.A.P
index, is the number of logic “paths” found within the
code.
 The more individual paths found, the harder the code is to
maintain and the higher the index will be.

Given a Java method m,
 C.R.A.P.(m) = comp(m)^2 * (1 – cov(m)/100)^3 + comp(m)

90% of everything is crap.
~Sturgeon’s Law (one of many variants)

…software metrics, in general, are just tools. No single metric
can tell the whole story; it’s just one more data point.
Metrics are meant to be used by developers, not the other way
around – the metric should work for you, you should not have
to work for the metric.
Metrics should never be an end unto themselves.
Metrics are meant to help you think, not to do the thinking for
you.
~Alberto Savoia
TOOLS

PHPUnit, PHP_CodeCoverage,
and xDebug
PHPUNIT
Testing with PHPUnit is not a totally different
activity from what you should already be
doing. It is just a different way of doing it.
The difference is between testing:
• Checking that your program behaves as
expected,
• Performing a battery of tests, runnable codefragments that automatically test the
correctness of parts (units) of the software.
These runnable code-fragments are called
unit tests.

Current Requirements
PHPUnit 3.7 requires PHP 5.3.3 (or later),
but PHP 5.5.1 (or later) is highly
recommended.
PHP_CodeCoverage, the library that is
used by PHPUnit to collect and process
code coverage information, depends on
Xdebug 2.0.5 (or later), but Xdebug 2.2.3
(or later) is highly recommended.
PHPUNIT TESTING

Demonstration
THANK YOU! QUESTIONS?
RESOURCES

CONTACT INFORMATION

Software Testing

Provide feel free to contact us at the following
addresses.

PHPUnit

xDebug
Clover PHP Plugin for Jenkins
Clover Documentation
Pardon My French, But This Code is C.R.A.P.
(1) (2)
How to Read and Improve the C.R.A.P. Index
of Your Code

m: abernstein@godaddy.com
gd_github: abernstein
twitter: @bernstein_aaron
m: fzaman@godaddy.com
gd_github: fzaman
twitter: @farhan_zaman

m: mwood@godaddy.com
gd_github: mwood

Mais conteúdo relacionado

Último

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Software Testing Concepts

  • 1. SOFTWARE TESTING CONCEPTS With a focus on PHPUnit, PHP_CodeCoverage, and xDebug
  • 2. INTRODUCTION Aaron Bernstein – Aspiring Engineer  One of the lead software engineers in the Workspace Team at GoDaddy  Been working with GoDaddy for about a year and a half.  Specifically tasked on our FaxThruEmail product. Micah Wood – Aspiring Software Engineer  One of the software engineers in the Workspace Team at GoDaddy  Been working with GoDaddy for about four years.  Specifically tasked on our FaxThruEmail product. Farhan Zaman – Software Engineer in Test  One of the automation engineers in the Workspace Team at GoDaddy  Been working with GoDaddy for about three and a half.  Specifically tasked on our Email Infrastructure and AIR product. Combined Experience Includes:  Fifteen plus years of programming in a multitude of languages…  We’ve all been working towards fully covering our applications with unit, functional, integration, and browser testing over time.
  • 4. ROLES Software Engineers Throughout the development process, one should be performing tests on code that they author. Test Engineers By the nature of the title, their primary function is to test software. Automation Engineers Developing tools and procedures to test software through automated methods. Management Ultimately responsible for the product integrity.
  • 6. LEVELS AND TYPES OF SOFTWARE TESTING LEVELS TYPES • Unit • A/B • System • Internationalization and localization • Acceptance • Acceptance • Installation • Accessibility • Functional/Non-Functional • Alpha/Beta • Regression • Integration • Compatibility • Destructive • Development • Smoke and Sanity • Software Performance • Security • Usability
  • 7. TESTING METHODS STATIC DYNAMIC Reviews, walkthroughs, or inspections are referred to as static testing. Executing programmed code with a given set of test cases is referred to as dynamic testing. Static testing can be omitted, and in practice often is. Dynamic testing takes place when the program itself is used. Dynamic testing may begin before the program is 100% complete in order to test particular sections of code and are applied to discrete functions or modules. Typical techniques for this are either using stubs/drivers or execution from a debugger environment.
  • 8. WHEN As much as feasibly possible!!
  • 9. PARTS OF THE PROOFING PROCESS VERIFICATION VALIDATION The process of determining whether the products of a given phase of the software development process fulfill the requirements established during the previous phase. The process of evaluating software at the end of software development to ensure compliance with intended usage.
  • 10. WHERE But of course, where it fits!!
  • 11. CONTINUOUS INTEGRATION AND/OR TRIGGERS THROUGH CONTINUOUS INTEGRATION METHODS • Repository • Polling • Package Management • At build time • Deployments • At deployment time • SCM Hooks • Client-Side • This section splits them into committing workflow hooks, e-mail workflow scripts, and the rest of the client-side scripts. • Server-Side • These scripts run before and after pushes to the server. * all of which can be quantified and automated.
  • 12. WHY Even the best programmers, can and do, make mistakes!!
  • 13. COST OF NOT TESTING OR LATE TESTING Testing is the most time consuming and expensive part of software development. Not testing is even more expensive. If we have too little testing effort early, the cost of testing increases exponentially. Planning for testing after development is prohibitively expensive. MAIN FUNCTIONS OF TESTING • Improve quality • Reduce cost • Preserve customer satisfaction
  • 14. HOW Bunch of sugar and spice!! (Magic and Fairy Dust)
  • 15. CODE QUALITY AND THE C.R.A.P. INDEX The C.R.A.P. (Change Risk Analysis and Predictions) index is designed to analyze and predict the amount of effort, pain, and time required to maintain an existing body of code. The other factor used in calculating the C.R.A.P index, is the number of logic “paths” found within the code.  The more individual paths found, the harder the code is to maintain and the higher the index will be. Given a Java method m,  C.R.A.P.(m) = comp(m)^2 * (1 – cov(m)/100)^3 + comp(m) 90% of everything is crap. ~Sturgeon’s Law (one of many variants) …software metrics, in general, are just tools. No single metric can tell the whole story; it’s just one more data point. Metrics are meant to be used by developers, not the other way around – the metric should work for you, you should not have to work for the metric. Metrics should never be an end unto themselves. Metrics are meant to help you think, not to do the thinking for you. ~Alberto Savoia
  • 17. PHPUNIT Testing with PHPUnit is not a totally different activity from what you should already be doing. It is just a different way of doing it. The difference is between testing: • Checking that your program behaves as expected, • Performing a battery of tests, runnable codefragments that automatically test the correctness of parts (units) of the software. These runnable code-fragments are called unit tests. Current Requirements PHPUnit 3.7 requires PHP 5.3.3 (or later), but PHP 5.5.1 (or later) is highly recommended. PHP_CodeCoverage, the library that is used by PHPUnit to collect and process code coverage information, depends on Xdebug 2.0.5 (or later), but Xdebug 2.2.3 (or later) is highly recommended.
  • 19. THANK YOU! QUESTIONS? RESOURCES CONTACT INFORMATION Software Testing Provide feel free to contact us at the following addresses. PHPUnit xDebug Clover PHP Plugin for Jenkins Clover Documentation Pardon My French, But This Code is C.R.A.P. (1) (2) How to Read and Improve the C.R.A.P. Index of Your Code m: abernstein@godaddy.com gd_github: abernstein twitter: @bernstein_aaron m: fzaman@godaddy.com gd_github: fzaman twitter: @farhan_zaman m: mwood@godaddy.com gd_github: mwood