Enviar pesquisa
Carregar
Quality in PHP projects metrics and testing
•
1 gostou
•
576 visualizações
Título melhorado com IA
G
guestf62d67
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 41
Baixar agora
Baixar para ler offline
Recomendados
SAP Test automation - fully automatic test of complex business processes incl...
SAP Test automation - fully automatic test of complex business processes incl...
Tobias Trapp
Backward thinking design qa system for quality goals
Backward thinking design qa system for quality goals
gaoliang641
Whitepaper QF-Test: GUI Testing to the edge.
Whitepaper QF-Test: GUI Testing to the edge.
Claudia Baur
Introduction to Software Test Automation
Introduction to Software Test Automation
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
SAP Testing with SolMan and SAP Quality Center
SAP Testing with SolMan and SAP Quality Center
Laxmi2121
Manual testing1
Manual testing1
Raghu Sirka
Understand release engineering
Understand release engineering
gaoliang641
Programming skills for test automation
Programming skills for test automation
Romania Testing
Recomendados
SAP Test automation - fully automatic test of complex business processes incl...
SAP Test automation - fully automatic test of complex business processes incl...
Tobias Trapp
Backward thinking design qa system for quality goals
Backward thinking design qa system for quality goals
gaoliang641
Whitepaper QF-Test: GUI Testing to the edge.
Whitepaper QF-Test: GUI Testing to the edge.
Claudia Baur
Introduction to Software Test Automation
Introduction to Software Test Automation
Amr Ali (ISTQB CTAL Full, CSM, ITIL Foundation)
SAP Testing with SolMan and SAP Quality Center
SAP Testing with SolMan and SAP Quality Center
Laxmi2121
Manual testing1
Manual testing1
Raghu Sirka
Understand release engineering
Understand release engineering
gaoliang641
Programming skills for test automation
Programming skills for test automation
Romania Testing
Enhancing Software Quality
Enhancing Software Quality
Anand Prabhala
A more successful model for multi-shore testing
A more successful model for multi-shore testing
Perficient, Inc.
New trends in testing automation
New trends in testing automation
Eran Kinsbrunner
TMA Software Testing Competency
TMA Software Testing Competency
TMA Solutions
Introduction to Test Automation - Technology and Tools
Introduction to Test Automation - Technology and Tools
KMS Technology
Karate API Testing-Complete Guidance by Testrig
Karate API Testing-Complete Guidance by Testrig
PritiFGaikwad
Enabling Business Users for SAP Testing
Enabling Business Users for SAP Testing
Original Software
Testing concept definition
Testing concept definition
Vivek V
Testing Sap: Modern Methodology
Testing Sap: Modern Methodology
Ethan Jewett
Best Practices for Testing in salesforce.com
Best Practices for Testing in salesforce.com
Blezard CRM Consulting Ltd
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
Naresh Jain
Complete testing@uma
Complete testing@uma
Uma Sapireddy
SAP Testing
SAP Testing
Josh Case
Continuous Testing for CTOs (Webinar Slides)
Continuous Testing for CTOs (Webinar Slides)
Rainforest QA
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next Level
Bob Binder
Automated testing overview
Automated testing overview
Alex Pop
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
QASymphony
OMSOFTWARE NEW Service
OMSOFTWARE NEW Service
OM SOFTWARE PVT LTD
Introducing Continuous Delivery in the Enterprise
Introducing Continuous Delivery in the Enterprise
XebiaLabs
QA Interview Questions With Answers
QA Interview Questions With Answers
H2Kinfosys
Declarative analysis of noisy information networks
Declarative analysis of noisy information networks
University of New South Wales
Millionaire Nutrition
Millionaire Nutrition
mrrobbo
Mais conteúdo relacionado
Mais procurados
Enhancing Software Quality
Enhancing Software Quality
Anand Prabhala
A more successful model for multi-shore testing
A more successful model for multi-shore testing
Perficient, Inc.
New trends in testing automation
New trends in testing automation
Eran Kinsbrunner
TMA Software Testing Competency
TMA Software Testing Competency
TMA Solutions
Introduction to Test Automation - Technology and Tools
Introduction to Test Automation - Technology and Tools
KMS Technology
Karate API Testing-Complete Guidance by Testrig
Karate API Testing-Complete Guidance by Testrig
PritiFGaikwad
Enabling Business Users for SAP Testing
Enabling Business Users for SAP Testing
Original Software
Testing concept definition
Testing concept definition
Vivek V
Testing Sap: Modern Methodology
Testing Sap: Modern Methodology
Ethan Jewett
Best Practices for Testing in salesforce.com
Best Practices for Testing in salesforce.com
Blezard CRM Consulting Ltd
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
Naresh Jain
Complete testing@uma
Complete testing@uma
Uma Sapireddy
SAP Testing
SAP Testing
Josh Case
Continuous Testing for CTOs (Webinar Slides)
Continuous Testing for CTOs (Webinar Slides)
Rainforest QA
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next Level
Bob Binder
Automated testing overview
Automated testing overview
Alex Pop
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
QASymphony
OMSOFTWARE NEW Service
OMSOFTWARE NEW Service
OM SOFTWARE PVT LTD
Introducing Continuous Delivery in the Enterprise
Introducing Continuous Delivery in the Enterprise
XebiaLabs
QA Interview Questions With Answers
QA Interview Questions With Answers
H2Kinfosys
Mais procurados
(20)
Enhancing Software Quality
Enhancing Software Quality
A more successful model for multi-shore testing
A more successful model for multi-shore testing
New trends in testing automation
New trends in testing automation
TMA Software Testing Competency
TMA Software Testing Competency
Introduction to Test Automation - Technology and Tools
Introduction to Test Automation - Technology and Tools
Karate API Testing-Complete Guidance by Testrig
Karate API Testing-Complete Guidance by Testrig
Enabling Business Users for SAP Testing
Enabling Business Users for SAP Testing
Testing concept definition
Testing concept definition
Testing Sap: Modern Methodology
Testing Sap: Modern Methodology
Best Practices for Testing in salesforce.com
Best Practices for Testing in salesforce.com
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
Complete testing@uma
Complete testing@uma
SAP Testing
SAP Testing
Continuous Testing for CTOs (Webinar Slides)
Continuous Testing for CTOs (Webinar Slides)
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next Level
Automated testing overview
Automated testing overview
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
OMSOFTWARE NEW Service
OMSOFTWARE NEW Service
Introducing Continuous Delivery in the Enterprise
Introducing Continuous Delivery in the Enterprise
QA Interview Questions With Answers
QA Interview Questions With Answers
Destaque
Declarative analysis of noisy information networks
Declarative analysis of noisy information networks
University of New South Wales
Millionaire Nutrition
Millionaire Nutrition
mrrobbo
Cloud and azure and rock and roll
Cloud and azure and rock and roll
David Giard
Calling Dr Watson To Radiology - RSNA Presentation
Calling Dr Watson To Radiology - RSNA Presentation
Nick van Terheyden
Racalmuto: Centro Commerciale Naturale Borgo Chiaramontano
Racalmuto: Centro Commerciale Naturale Borgo Chiaramontano
Eugenio Agnello
Share Point Customization Delivered
Share Point Customization Delivered
David Giard
Tbfs uc commercial presentation
Tbfs uc commercial presentation
raj638
Ordenagailu Zatiak
Ordenagailu Zatiak
guestfa71958e
Standing out from the crowd: You, Your Brand, and Your WordPress Theme
Standing out from the crowd: You, Your Brand, and Your WordPress Theme
hollyhagen
Journalism in the post 9-11 decade
Journalism in the post 9-11 decade
DigiProf
Pm Innovations Llc Presentation 2009.15
Pm Innovations Llc Presentation 2009.15
mtoddsingh
aboutme
aboutme
s3m1llon
Stochastic optimization and risk management for an efficient planning of buil...
Stochastic optimization and risk management for an efficient planning of buil...
Emilio L. Cano
Cloud discussion
Cloud discussion
David Giard
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
David Giard
Le Fonti energetiche alternative nell'Edilizia Abitativa
Le Fonti energetiche alternative nell'Edilizia Abitativa
Eugenio Agnello
Autobiography Anthony[1]
Autobiography Anthony[1]
aj_matatag
GrouperEye
GrouperEye
williamstj
Gang announcements 2011 01
Gang announcements 2011 01
David Giard
Orientazioa2003
Orientazioa2003
pagoaga
Destaque
(20)
Declarative analysis of noisy information networks
Declarative analysis of noisy information networks
Millionaire Nutrition
Millionaire Nutrition
Cloud and azure and rock and roll
Cloud and azure and rock and roll
Calling Dr Watson To Radiology - RSNA Presentation
Calling Dr Watson To Radiology - RSNA Presentation
Racalmuto: Centro Commerciale Naturale Borgo Chiaramontano
Racalmuto: Centro Commerciale Naturale Borgo Chiaramontano
Share Point Customization Delivered
Share Point Customization Delivered
Tbfs uc commercial presentation
Tbfs uc commercial presentation
Ordenagailu Zatiak
Ordenagailu Zatiak
Standing out from the crowd: You, Your Brand, and Your WordPress Theme
Standing out from the crowd: You, Your Brand, and Your WordPress Theme
Journalism in the post 9-11 decade
Journalism in the post 9-11 decade
Pm Innovations Llc Presentation 2009.15
Pm Innovations Llc Presentation 2009.15
aboutme
aboutme
Stochastic optimization and risk management for an efficient planning of buil...
Stochastic optimization and risk management for an efficient planning of buil...
Cloud discussion
Cloud discussion
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
How I Learned to Stop Worrying and Love jQuery (Jan 2013)
Le Fonti energetiche alternative nell'Edilizia Abitativa
Le Fonti energetiche alternative nell'Edilizia Abitativa
Autobiography Anthony[1]
Autobiography Anthony[1]
GrouperEye
GrouperEye
Gang announcements 2011 01
Gang announcements 2011 01
Orientazioa2003
Orientazioa2003
Semelhante a Quality in PHP projects metrics and testing
Migration Concepts For Enterprise PHP Applications
Migration Concepts For Enterprise PHP Applications
Mayflower GmbH
QA metrics in Agile (GUIDE)
QA metrics in Agile (GUIDE)
Vladimir Primakov (Volodymyr Prymakov)
Gaming Testing
Gaming Testing
ProtoTech Solutions
First Steps to DevOps
First Steps to DevOps
Inductive Automation
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
TEST Huddle
John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013
TEST Huddle
TETRA
TETRA
Intetics
How to build confidence in your release cycle
How to build confidence in your release cycle
DiUS
[India Merge World Tour] Coverity
[India Merge World Tour] Coverity
Perforce
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
RapidValue
Establishing Release Quality Levels and Release Acceptance Tests
Establishing Release Quality Levels and Release Acceptance Tests
Conteneo Inc.
Il paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery Automation
HP Enterprise Italia
Resume
Resume
Amaravarman Jayakumar
QualityGate for IT Managers
QualityGate for IT Managers
Dr. Tibor Bakota
Sucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QA
Sucheta Kale
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-mule
ikram_ahamed
Automated Testing - How to Guarantee Correct FME Output Every Time
Automated Testing - How to Guarantee Correct FME Output Every Time
Safe Software
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
TEST Huddle
QTP Automation Testing Tutorial 1
QTP Automation Testing Tutorial 1
Akash Tyagi
Vandana B
Vandana B
Vandana Bolar
Semelhante a Quality in PHP projects metrics and testing
(20)
Migration Concepts For Enterprise PHP Applications
Migration Concepts For Enterprise PHP Applications
QA metrics in Agile (GUIDE)
QA metrics in Agile (GUIDE)
Gaming Testing
Gaming Testing
First Steps to DevOps
First Steps to DevOps
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013
TETRA
TETRA
How to build confidence in your release cycle
How to build confidence in your release cycle
[India Merge World Tour] Coverity
[India Merge World Tour] Coverity
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Live Webinar- Making Test Automation 10x Faster for Continuous Delivery- By R...
Establishing Release Quality Levels and Release Acceptance Tests
Establishing Release Quality Levels and Release Acceptance Tests
Il paradigma DevOps e Continuous Delivery Automation
Il paradigma DevOps e Continuous Delivery Automation
Resume
Resume
QualityGate for IT Managers
QualityGate for IT Managers
Sucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QA
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-mule
Automated Testing - How to Guarantee Correct FME Output Every Time
Automated Testing - How to Guarantee Correct FME Output Every Time
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
QTP Automation Testing Tutorial 1
QTP Automation Testing Tutorial 1
Vandana B
Vandana B
Último
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
UK Journal
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
Último
(20)
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Quality in PHP projects metrics and testing
1.
Quality in PHP
projects beyond Unittests International PHP Conference 2008 October 30th 2008 | Thorsten Rinne
2.
Introduction ❙ Thorsten Rinne ❙
31 years old ❙ Senior Developer and Team Lead at Mayflower GmbH ❙ Reporting applications ❙ Rating applications ❙ PHP consulting for QA and migration problems ❙ PHP software development since 1999 ❙ Founder and main developer of open source FAQ management software phpMyFAQ since 2001 ❙ Zend Certified Engineer (PHP 5) Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 2
3.
Introduction ❙ Warm up ❙
Quality Criterias ❙ Quality Metrics ❙ Testing ❙ PHP Source Code Quality ❙ Questions and answers Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 3
4.
Who are you? ❙
What's your profession? ❙ Software company or agency? ❙ What's your team size? ❙ Who develops using Unittests? ❙ Who uses QA supporting tools? ❙ What's your test coverage? ❙ Even for legacy code? :-) Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 4
5.
Quality Criterias
Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 5
6.
Quality criterias: Understandability ❙ Availability
of documentation ❙ Good documentation quality ❙ Complexity of software ❙ Code commenting and formatting ❙ Understandable naming Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 6
7.
Quality criterias: Completeness ❙ Everything
is already there ❙ Your application is fully implemented ❙ No mockups or temporary solutions left ❙ External interfaces are usable ❙ All needed data is available Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 7
8.
Quality criterias: Conciseness ❙ No
unneeded, overlong documentation ❙ Especially auto-generated documentation ❙ No unused libraries ❙ No dead code ❙ No duplicate code ❙ No code inside loops that could be outside Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 8
9.
Quality criterias: Portability ❙ Easy
to configure in new environments ❙ Few OS and webserver dependencies ❙ Few, documented version dependencies ❙ Language version ❙ Database version ❙ External libraries ❙ Able to survice environment updates Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 9
10.
Quality criterias: Consistency ❙ Predictability
❙ Directory paths and filenames ❙ Class and method names ❙ Variable and constant names ❙ Documentation style and language ❙ Coding style Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 10
11.
Quality criterias: Maintainability ❙ Easy
to install and easy to upgrade ❙ Tests and debug logs to help to locate bugs ❙ Few dependencies hiding the bug ❙ No complex dependencies or effects on the platform ❙ Easy to understand and navigate source code Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 11
12.
Quality criterias: Testability ❙ Known
acceptence criteria ❙ Adequate separation of concerns ❙ Easy to use interfaces for tests ❙ No limiting dependencies Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 12
13.
Quality criterias: Reliability ❙ The
criteria formerly known as „robustness“ ❙ Fault tolerance ❙ Graceful degradation ❙ Exception handling exists ❙ Is method input checked? Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 13
14.
Quality criterias: Usability ❙ Learnability:
Easyness of first time usage ❙ Efficiency: Overall speed of usage per task ❙ Memorabilty: Time to re-establish usage knowledge after absence ❙ Errors: Frequency of usage errors ❙ Satisfaction: Fun to use the software Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 14
15.
Quality Metrics
Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 15
16.
Quality Metrics: Defect Density
Metrics ❙ Code-based metric ❙ Defects per KSSI (1000 shipped source instructions) for product quality ❙ Defects per KCSI (1000 changed source instructions) for development quality ❙ (Hard to measure) ❙ Statistic needed ❙ easier for products Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 16
17.
Quality Metrics: Customer Problem
Metrics ❙ PUM: Problems per user month ❙ Defects per month / number of installations ❙ Maintainance metric: Number of bugs closed / number of bugs arrived ❙ The customer does not care how big or how complicated the software is :-) Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 17
18.
Quality Metrics: Customer Satisfaction
Metrics ❙ You only get them by survey ❙ for ❙ Functionality ❙ Usability ❙ Reliability ❙ Performance ❙ Maintainability ❙ Service ❙ Levels: Very Satisfied, Satisfied, Neutral, Dissatisfied, Very Dissatisfied Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 18
19.
Quality Metrics: When are
bugs detected? ❙ Number of pre-release bugs found while testing ❙ Number of post-release bugs ❙ found by customer ❙ found by testing Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 19
20.
Quality Metrics: How are
defects fixed? ❙ Average Time to fix a bug ❙ Average Time for bugfix release ❙ that‘s the time relevant for the customer ❙ Average engineering hours / fixed defect Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 20
21.
Quality Metrics: Defect Impact ❙
was the defect visible to the user? ❙ has a monetary transaction been touched? ❙ has sensitive data been touched? ❙ are there security implications? ❙ has there been a marketing/image effect ❙ did data / user work get lost? Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 21
22.
Quality Metrics: Testing Efficiency ❙
Found bugs before release / found bugs post release ❙ Found bugs by qa team / found bugs by customer ❙ Number of bugs found by QA Team / time Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 22
23.
„We do PHPUnit!“
!== Testing Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 23
24.
Unit Testing ❙ For
PHP: PHPUnit or SimpleTest ❙ Focussing on testing a single unit of work ❙ solves depencies using mock objects ❙ should not depend on database ❙ perfect and easy to automate ❙ Reason for all refactoring Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 24
25.
Acceptence Testing ❙ originally
user acceptance testing ❙ one of the final testing stages ❙ change to automated black box testing in agile environments ❙ used to test user stories ❙ often contractual requirement Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 25
26.
SOA / Service
Testing ❙ in multi-tier environments every service can have several consumers ❙ black box test for the service api ❙ can easily be automated ❙ a lot of tools for SOAP Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 26
27.
Integration Testing ❙ tests
the application with all parts ❙ needed for multi-tier applications ❙ tests the interaction paths ❙ intersection with load testing: user simulation Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 27
28.
Load Testing ❙ Simulates
high load situations ❙ to detect the current platform abilities ❙ to detect resource bottlenecks (Database, CPU, Network) ❙ to detect concurreny bottlenecks (locking jams, caching effects) ❙ Scalability testing: scale up or scale out? Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 28
29.
Usability Testing ❙ How
does the user work with the application? ❙ Efficiency: time to fulfill a basic task ❙ Accuracy: how many mistakes happened? ❙ Recall: does the user recall the usage after a period of time? ❙ Emotional response: does the user feel lucky, confident or stressed about the task? Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 29
30.
Regression Testing ❙ originally:
if you find a bug, fix it and write a test ❙ PHP itself does it ❙ now often written by the test team to assure the expected default behavior ❙ modern: automated test generation Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 30
31.
Security Testing ❙ Blackbox:
Penetration Test done by external auditor just before release ❙ Graybox: using tools like fuzzers and scanners before release or while development ❙ Whitebox: internal or external source code audit, static code analysis while development Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 31
32.
A lot more
... ❙ Compability testing for maintainability ❙ Volume testing for bigger amounts of data ❙ Stress testing for degrade and failover processes ❙ Installation testing for maintenance ❙ Recovery testing to check recovery behavior Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 32
33.
PHP Source Code
Quality Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 33
34.
Documentation ❙ We have
different forms of documentation: ❙ Inline documentation ❙ API documentation ❙ Developer documentation ❙ Security documentation ❙ Administration documentation ❙ End-user documentation Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 34
35.
Coding Style /
Formatting ❙ Coding style is defined in the developer documentation ❙ All developers have to write their code formatted in the given coding style ❙ Can be checked by CodeSniffer tools ❙ Coding style should be based on your main used libraries ❙ If you build your application on top of the Zend Framework, use the ZF coding style ❙ With IDEs like Eclipse you can format old code autpmatically Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 35
36.
Naming Conventions ❙ Naming
conventions are very important ❙ NonamespacesbeforePHP5.3 ❙ Easier for __autoload() ❙ Examples ❙ Class names: ❙ class HTML_Template_ITX2 ❙ Directory: include/PEAR2/HTML/Template/ITX2.php ❙ Function names in camel caps: ❙ public function blockExists($blockname) Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 36
37.
Code Complexity ❙ Complexity
costs time and money if you don‘t need it ❙ KISS principle: Keep it simple and stupid ❙ Complexity checks by CodeSniffer metrics ❙ Important for good code coverage and unittests ❙ Examples ❙ Too high number of linearly independent paths through a program's source code ❙ Too long class and method names ❙ Too many properties ❙ Too many parameters ❙ Too many methods inside a class Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 37
38.
Anti Patterns ❙ An
antipattern is a design pattern that appears obvious but is ineffective or far from optimal in practice ❙ Examples ❙ Unnecessary abstraction ❙ God objects ❙ Spaghetti code ❙ Too short or too long variable names Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 38
39.
Anti Pattern Examples ❙
if(<EXPR>) {<empty>} ❙ if(<EXPR>) {<EXPR>} else {<empty>} ❙ try(<EXPR>) {<empty>} ❙ try(<EXPR>) {<EXPR>} catch(Exception $e) {<empty>} ❙ define('SOME_NAME', $var) ❙ include[_once]|require[_once]|readfile| virtual|file_get_contents|fopen|file| mysql_query($_GET|$_POST|$_REQUEST) Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 39
40.
Questions?
Quality in PHP projects beyond Unittests © MAYFLOWER GmbH 2008 40
41.
Thank you very
much! Thorsten Rinne Mayflower GmbH Mannhardtstr. 6 80538 München +49 (89) 24 20 54 - 31 thorsten.rinne@mayflower.de
Baixar agora