SlideShare a Scribd company logo
1 of 10
Software Testing Best Practices



          2007년 7월 2일
목차

1. Groups of Best Practices ………………………………………………………………………………………………                        3


2. The Basic Practices ………………………………………………………………………………………………………                          4


3. Foundational Practices …………………………………………………………………………………………………                         6


4. Incremental Practices ……………………………………………………………………………………………………                         8


5. 연락처 …………………………………………………………………………………………………………………………… 11




Copyright© 2007 Metrics Solutions.   Work Smarter, Not Harder.   www.metricsolution.co.kr   2
Groups of Best Practices


                                     1.   Functional Specifications                    5.   Multi-platform Testing

                The Basic            2.   Reviews and Inspections                      6.   Internal Betas
                Practices            3.   Formal Entry and Exit Criteria               7.   Automated Test Execution

                                     4.   Functional Test – Variations                 8.   ‘Nightly’ Builds


                                     1.   User Scenarios                               4.   Multi-release ODC/Butterfly Profiles
              Foundational           2.   Usability Testing                            5.   Requirements for Test Planning
                Practices
                                     3.   In-process ODC Feedback Loops                6.   Automated Test Generation


                                     1.   Teaming Testers with Developers              7.   Statistical Testing
                                     2.   Code Coverage                                8.   Semiformal Methods

                                     3.   Automated Environment Generator              9.   Check-in Tests for Code
               Incremental
                Practices            4.   Testing to Help Ship on Demand               10. Minimizing Regression Test Cases
                                     5.   State Task Diagram                           11. Instrumented Versions for MTTF
                                     6.   Memory Resource Failure                      12. Bug Bounties
                                          Simulation



Copyright© 2007 Metrics Solutions.                         Work Smarter, Not Harder.                              www.metricsolution.co.kr   3
The Basic Practices
   Functional Specifications
      • A key part of many development processes.
      • External view of an object or a procedure indicating the options by which a service could be invoked.
      • Testers use functional specifications to write down test cases from a black box testing perspective.
      • Test generation activity could happen in parallel with the development of the code.


   Reviews and Inspections
      • One of the most efficient methods of debugging code.
      • Software inspection can easily provide a ten times gain in the process of debugging software.


   Formal Entry and Exit Criteria
      • Every process step, be it inspection, functional test, or software design, has a precise entry and
         precise exit criteria.
      • The practices allow much more careful management of the software development process.


   Functional Test – Variations
      • A variation refers to a specific combination of input conditions to yield a specific output condition.
      • Writing down functional tests involves writing different variations to cover as much of the state space
         as one deems necessary for a program.

Copyright© 2007 Metrics Solutions.               Work Smarter, Not Harder.                      www.metricsolution.co.kr   4
The Basic Practices

   Multi-platform Testing
      • Many products today are designed to run on different platforms which creates the additional burden to
         both design and test the product.


   Internal Betas
      • The idea of a Beta is to release a product to a limited number of customers and get feedback to fix
         problems before a larger shipment.


   Automated Test Execution
      • The goal of automated test execution is that we minimize the amount of manual work involved in test
         execution and gain higher coverage with a larger number of test cases.


   ‘Nightly’ Builds
      • The concept captures frequent builds from changes that are being promoted into the change control system.
      • If a major regression occurs because of errors recently generated, they are captured quickly.
      • Regression tests can be run in the background.
      • The newer releases of software are available to developers and testers sooner.



Copyright© 2007 Metrics Solutions.               Work Smarter, Not Harder.                   www.metricsolution.co.kr   5
Foundational
   User Scenarios
      • As we integrate multiple software products and create end user applications that invoke one or a
         multiplicity of products, the task of testing the end user features gets complicated.
      • It tests the product in the ways that most likely reflect customer usage, imitating what Software
         Reliability Engineering has for long advocated under the concept of Operational Profile.
      • One reduces the complexity of writing test cases by moving to testing scenarios than features of an
         application.
      • This best practice should capture methods of recording user scenarios methods when specific failure
         scenarios occurs.


   Usability Testing
      • Usability becomes the final arbiter of quality.
      • Usability testing needs to not only assess how usable a product is but also provide feedback on methods
         to improve the user experience and thereby gain a positive quality image.


   In-process ODC Feedback Loops
      • Orthogonal Defect Classification (ODC) is a measurement method that uses the defect stream to provide
         precise measurability into the product and the process.
      • One of the uses of ODC has been the ability to close feedback loops in a software development process.


Copyright© 2007 Metrics Solutions.               Work Smarter, Not Harder.                       www.metricsolution.co.kr   6
Foundational
   Multi-release ODC/Butterfly Profiles
      • A key feature of the ODC measurement is the ability at multiple releases of a product and develop a
         profile of customer usage and its impact on warranty costs and overall development efficiencies.
      • The technology of multi-release ODC/Butterfly analysis allows a product manager to make strategic
         development decisions so as to optimize development costs, time to market, and quality issues by
         recognizing customer trends, usage patterns, and product performance.


   Requirements for Test Planning
      • Requirements management and its translation to produce test plans is an important step.


   Automated Test Generation
      • Almost 30% of the testing can be the writing of test cases. This is a completely manual exercise and a
         prime candidate for savings through automation.




Copyright© 2007 Metrics Solutions.               Work Smarter, Not Harder.                    www.metricsolution.co.kr   7
Incremental
   Teaming Testers with Developers
      • The close coupling of testers with developers improves both the test cases and the code that is developed.


   Code Coverage
      • The concept of code coverage is based on a structural notion of the code.
      • Code coverage implies a numerical metric that measures the elements of the code that have been exercised
         as a consequence of testing. There are a host of metrics: statements, branches, and data that are implied
         by the term code coverage.


   Automated Environment Generator
      • A fairly time-consuming task is the setting up a test environments to execute test cases.
      • Tools that can automatically set up environment, run the test cases, record the results, and then
         automatically reconfigure to a new environment, have high value.


   Testing to Help Ship on Demand
      • It changes the role of testing to one of providing excellent regression ability and working in late
         changes that still do not break the product or the ship schedule.




Copyright© 2007 Metrics Solutions.               Work Smarter, Not Harder.                    www.metricsolution.co.kr   8
Incremental
   State Task Diagram
      • This practice captures the functional operation of an application or a module in the form of a state
         transition diagram.
      • The advantages of doing so allows one to create test cases automatically or create coverage metrics that
         are closer to the functional decomposition of application.
      • The difficulties have usually been in extracting the functional view of a product which may not exist in
         any computable or documented form and producing the state transition diagram.


   Memory Resource Failure Simulation
      • This practice addresses a particular software bug, namely the loss of memory because of poor heap
         management or the lack of garbage collection.


   Statistical Testing
      • The central idea is to use software testing as a means to assess the reliability of software as opposed
         to a debugging mechanism.


   Semiformal Methods
      • A verification of a program as opposed to testing and debugging.
      • The verification methods are varied, some of which are theorem provers, while some of them simulation
         against which assertions can be validated.

Copyright© 2007 Metrics Solutions.               Work Smarter, Not Harder.                   www.metricsolution.co.kr   9
Incremental
   Check-in Tests for Code
      • The idea of check-in test is to couple an automated test program (usually a regression test) with the
        change control system.
      • This allows for an automated test run on recently changed code so that the chances of the code breaking
        the build are minimized.


   Minimizing Regression Test Cases
      • In organizations that have a legacy of development and of products that have matured over many releases,
        it is not uncommon to find regression test buckets that are huge.
      • At the same time, it is often unclear as to which of these test cases are duplicative providing little
        additional value.
      • One of the methods looks at the code coverage produced, and distill test cases to a minimal set.


   Instrumented Versions for MTTF
      • If the product is instrumented so that failures are recorded and returned to the vendor, they would yield
        an excellent source to measure the mean time between failure of the software.


   Bug Bounties
      • Bug bounties refers to our initiatives that charge the organization with a focus on detecting software
        bugs. At times providing rewards too.
      • The experience states that such effort tend to identify a larger than usual number of bugs.

Copyright© 2007 Metrics Solutions.              Work Smarter, Not Harder.                   www.metricsolution.co.kr   10

More Related Content

What's hot

qawithmicrosofttestmanagerandlabmanagement
qawithmicrosofttestmanagerandlabmanagementqawithmicrosofttestmanagerandlabmanagement
qawithmicrosofttestmanagerandlabmanagementsunil singh
 
Test case-point-analysis (whitepaper)
Test case-point-analysis (whitepaper)Test case-point-analysis (whitepaper)
Test case-point-analysis (whitepaper)KMS Technology
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementationyogi syafrialdi
 
Vericenter Summary
Vericenter SummaryVericenter Summary
Vericenter Summarydeyoepw
 
Acceptance test driven development
Acceptance test driven developmentAcceptance test driven development
Acceptance test driven developmentEditor Jacotech
 
Test Case Prioritization Techniques
Test Case Prioritization TechniquesTest Case Prioritization Techniques
Test Case Prioritization TechniquesKanoah
 
Fundamentals of Testing 2
Fundamentals of Testing 2Fundamentals of Testing 2
Fundamentals of Testing 2Hoang Nguyen
 
Mieke Gevers - Performance Testing in 5 Steps - A Guideline to a Successful L...
Mieke Gevers - Performance Testing in 5 Steps - A Guideline to a Successful L...Mieke Gevers - Performance Testing in 5 Steps - A Guideline to a Successful L...
Mieke Gevers - Performance Testing in 5 Steps - A Guideline to a Successful L...TEST Huddle
 
Star west 2011 manoj narayanan presentation 1.0
Star west 2011 manoj narayanan presentation 1.0Star west 2011 manoj narayanan presentation 1.0
Star west 2011 manoj narayanan presentation 1.0manoj7698
 
JagSinghupdated
JagSinghupdatedJagSinghupdated
JagSinghupdatedjag singh
 
Ast 2012 - Practices for Test Automation in Scrum Projects
Ast 2012 - Practices for Test Automation in Scrum ProjectsAst 2012 - Practices for Test Automation in Scrum Projects
Ast 2012 - Practices for Test Automation in Scrum ProjectsEliane Collins
 
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTTEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTijfcstjournal
 
QA Interview Questions With Answers
QA Interview Questions With AnswersQA Interview Questions With Answers
QA Interview Questions With AnswersH2Kinfosys
 
52892006 manual-testing-real-time
52892006 manual-testing-real-time52892006 manual-testing-real-time
52892006 manual-testing-real-timeSunil Pandey
 
Agile testing guide_2021
Agile testing guide_2021Agile testing guide_2021
Agile testing guide_2021QMetry
 
Matthias Ratert - Automated Test Case Prioritization - EuroSTAR 2012
Matthias Ratert - Automated Test Case Prioritization - EuroSTAR 2012Matthias Ratert - Automated Test Case Prioritization - EuroSTAR 2012
Matthias Ratert - Automated Test Case Prioritization - EuroSTAR 2012TEST Huddle
 

What's hot (19)

qawithmicrosofttestmanagerandlabmanagement
qawithmicrosofttestmanagerandlabmanagementqawithmicrosofttestmanagerandlabmanagement
qawithmicrosofttestmanagerandlabmanagement
 
Performance Engineering Basics
Performance Engineering BasicsPerformance Engineering Basics
Performance Engineering Basics
 
Test case-point-analysis (whitepaper)
Test case-point-analysis (whitepaper)Test case-point-analysis (whitepaper)
Test case-point-analysis (whitepaper)
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 
Vericenter Summary
Vericenter SummaryVericenter Summary
Vericenter Summary
 
Acceptance test driven development
Acceptance test driven developmentAcceptance test driven development
Acceptance test driven development
 
Test Case Prioritization Techniques
Test Case Prioritization TechniquesTest Case Prioritization Techniques
Test Case Prioritization Techniques
 
Fundamentals of Testing 2
Fundamentals of Testing 2Fundamentals of Testing 2
Fundamentals of Testing 2
 
Mieke Gevers - Performance Testing in 5 Steps - A Guideline to a Successful L...
Mieke Gevers - Performance Testing in 5 Steps - A Guideline to a Successful L...Mieke Gevers - Performance Testing in 5 Steps - A Guideline to a Successful L...
Mieke Gevers - Performance Testing in 5 Steps - A Guideline to a Successful L...
 
Cloud Testing Research
Cloud Testing ResearchCloud Testing Research
Cloud Testing Research
 
Star west 2011 manoj narayanan presentation 1.0
Star west 2011 manoj narayanan presentation 1.0Star west 2011 manoj narayanan presentation 1.0
Star west 2011 manoj narayanan presentation 1.0
 
JagSinghupdated
JagSinghupdatedJagSinghupdated
JagSinghupdated
 
Ast 2012 - Practices for Test Automation in Scrum Projects
Ast 2012 - Practices for Test Automation in Scrum ProjectsAst 2012 - Practices for Test Automation in Scrum Projects
Ast 2012 - Practices for Test Automation in Scrum Projects
 
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TESTTEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
TEST CASE PRIORITIZATION FOR OPTIMIZING A REGRESSION TEST
 
QA Interview Questions With Answers
QA Interview Questions With AnswersQA Interview Questions With Answers
QA Interview Questions With Answers
 
Testing Experience Magazine Vol.14 June 2011
Testing Experience Magazine Vol.14 June 2011Testing Experience Magazine Vol.14 June 2011
Testing Experience Magazine Vol.14 June 2011
 
52892006 manual-testing-real-time
52892006 manual-testing-real-time52892006 manual-testing-real-time
52892006 manual-testing-real-time
 
Agile testing guide_2021
Agile testing guide_2021Agile testing guide_2021
Agile testing guide_2021
 
Matthias Ratert - Automated Test Case Prioritization - EuroSTAR 2012
Matthias Ratert - Automated Test Case Prioritization - EuroSTAR 2012Matthias Ratert - Automated Test Case Prioritization - EuroSTAR 2012
Matthias Ratert - Automated Test Case Prioritization - EuroSTAR 2012
 

Viewers also liked

Field based assessment
Field based assessmentField based assessment
Field based assessmentpac15059
 
Travelling becomes social
Travelling becomes socialTravelling becomes social
Travelling becomes socialMarco Wegleiter
 
Ardyss Showcase Tips
Ardyss Showcase TipsArdyss Showcase Tips
Ardyss Showcase TipsUche Ejike
 
Proposition de loi sur le télétravail
Proposition de loi sur le télétravailProposition de loi sur le télétravail
Proposition de loi sur le télétravailNicole Turbé-Suetens
 
La web y sus buscadores
La web y sus buscadoresLa web y sus buscadores
La web y sus buscadoresbrenda Ordenes
 
Libraries Ethiopia
Libraries EthiopiaLibraries Ethiopia
Libraries Ethiopiarayd77
 
Facebook strategie per le aziende
Facebook strategie per le aziendeFacebook strategie per le aziende
Facebook strategie per le aziendeMarco Zambon
 

Viewers also liked (8)

Field based assessment
Field based assessmentField based assessment
Field based assessment
 
Travelling becomes social
Travelling becomes socialTravelling becomes social
Travelling becomes social
 
Ardyss Showcase Tips
Ardyss Showcase TipsArdyss Showcase Tips
Ardyss Showcase Tips
 
Test
TestTest
Test
 
Proposition de loi sur le télétravail
Proposition de loi sur le télétravailProposition de loi sur le télétravail
Proposition de loi sur le télétravail
 
La web y sus buscadores
La web y sus buscadoresLa web y sus buscadores
La web y sus buscadores
 
Libraries Ethiopia
Libraries EthiopiaLibraries Ethiopia
Libraries Ethiopia
 
Facebook strategie per le aziende
Facebook strategie per le aziendeFacebook strategie per le aziende
Facebook strategie per le aziende
 

Similar to Презентация

Webinar Presentation: Best Practices in QA Testing - Leveraging Open Source T...
Webinar Presentation: Best Practices in QA Testing - Leveraging Open Source T...Webinar Presentation: Best Practices in QA Testing - Leveraging Open Source T...
Webinar Presentation: Best Practices in QA Testing - Leveraging Open Source T...Emtec Inc.
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycleDiUS
 
Sucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QASucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QASucheta Kale
 
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...Curiosity Software Ireland
 
#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation Framework#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation FrameworkAgile Testing Alliance
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional TestingMatthew Allen
 
Choosing right-automation-tool
Choosing right-automation-toolChoosing right-automation-tool
Choosing right-automation-toolBabuDevanandam
 
Vishal_Final_Evaluation_PPT
Vishal_Final_Evaluation_PPTVishal_Final_Evaluation_PPT
Vishal_Final_Evaluation_PPTVishal Sharma
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional TestingAbhay Kumar
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsQuontra Solutions
 
Zen Test Labs Mobile Application Testing
Zen Test Labs Mobile Application TestingZen Test Labs Mobile Application Testing
Zen Test Labs Mobile Application TestingZen Test Labs
 
Bugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfBugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfNitisak Mooltreesri
 
Automation Tool Overview
Automation Tool OverviewAutomation Tool Overview
Automation Tool OverviewANKUR-BA
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools OverviewSachin-QA
 
Chandan_3.7 Years of Experience_Oracle
Chandan_3.7 Years of Experience_OracleChandan_3.7 Years of Experience_Oracle
Chandan_3.7 Years of Experience_OracleChandan Jai
 
Amalgamation of BDD, parallel execution and mobile automation
Amalgamation of BDD, parallel execution and mobile automationAmalgamation of BDD, parallel execution and mobile automation
Amalgamation of BDD, parallel execution and mobile automationAgile Testing Alliance
 
Top 5 automation testing tools to gear up website development
Top 5 automation testing tools to gear up website developmentTop 5 automation testing tools to gear up website development
Top 5 automation testing tools to gear up website developmentBJIT Ltd
 
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-Breaking the Boundaries of Regress...
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...TEST Huddle
 

Similar to Презентация (20)

Webinar Presentation: Best Practices in QA Testing - Leveraging Open Source T...
Webinar Presentation: Best Practices in QA Testing - Leveraging Open Source T...Webinar Presentation: Best Practices in QA Testing - Leveraging Open Source T...
Webinar Presentation: Best Practices in QA Testing - Leveraging Open Source T...
 
How to build confidence in your release cycle
How to build confidence in your release cycleHow to build confidence in your release cycle
How to build confidence in your release cycle
 
Sucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QASucheta_kale_4.8years_QA
Sucheta_kale_4.8years_QA
 
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
Curiosity and Xray present - In sprint testing: Aligning tests and teams to r...
 
#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation Framework#ATAGTR2020 Presentation - Universal Test Automation Framework
#ATAGTR2020 Presentation - Universal Test Automation Framework
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional Testing
 
Choosing right-automation-tool
Choosing right-automation-toolChoosing right-automation-tool
Choosing right-automation-tool
 
Vishal_Final_Evaluation_PPT
Vishal_Final_Evaluation_PPTVishal_Final_Evaluation_PPT
Vishal_Final_Evaluation_PPT
 
A Complete Guide to Functional Testing
A Complete Guide to Functional TestingA Complete Guide to Functional Testing
A Complete Guide to Functional Testing
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
 
Zen Test Labs Mobile Application Testing
Zen Test Labs Mobile Application TestingZen Test Labs Mobile Application Testing
Zen Test Labs Mobile Application Testing
 
Jyoti Gupta _IBM india pvt ltd.docx
Jyoti Gupta _IBM india pvt ltd.docxJyoti Gupta _IBM india pvt ltd.docx
Jyoti Gupta _IBM india pvt ltd.docx
 
Bugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perfBugday bkk-2014 nitisak-auto_perf
Bugday bkk-2014 nitisak-auto_perf
 
Automation Tool Overview
Automation Tool OverviewAutomation Tool Overview
Automation Tool Overview
 
Automation Tools Overview
Automation Tools OverviewAutomation Tools Overview
Automation Tools Overview
 
Chandan_3.7 Years of Experience_Oracle
Chandan_3.7 Years of Experience_OracleChandan_3.7 Years of Experience_Oracle
Chandan_3.7 Years of Experience_Oracle
 
7 steps to Software test automation success
7 steps to Software test automation success7 steps to Software test automation success
7 steps to Software test automation success
 
Amalgamation of BDD, parallel execution and mobile automation
Amalgamation of BDD, parallel execution and mobile automationAmalgamation of BDD, parallel execution and mobile automation
Amalgamation of BDD, parallel execution and mobile automation
 
Top 5 automation testing tools to gear up website development
Top 5 automation testing tools to gear up website developmentTop 5 automation testing tools to gear up website development
Top 5 automation testing tools to gear up website development
 
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-Breaking the Boundaries of Regress...
John Fodeh - Adventures in Test Automation-Breaking the Boundaries of Regress...
 

Презентация

  • 1. Software Testing Best Practices 2007년 7월 2일
  • 2. 목차 1. Groups of Best Practices ……………………………………………………………………………………………… 3 2. The Basic Practices ……………………………………………………………………………………………………… 4 3. Foundational Practices ………………………………………………………………………………………………… 6 4. Incremental Practices …………………………………………………………………………………………………… 8 5. 연락처 …………………………………………………………………………………………………………………………… 11 Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 2
  • 3. Groups of Best Practices 1. Functional Specifications 5. Multi-platform Testing The Basic 2. Reviews and Inspections 6. Internal Betas Practices 3. Formal Entry and Exit Criteria 7. Automated Test Execution 4. Functional Test – Variations 8. ‘Nightly’ Builds 1. User Scenarios 4. Multi-release ODC/Butterfly Profiles Foundational 2. Usability Testing 5. Requirements for Test Planning Practices 3. In-process ODC Feedback Loops 6. Automated Test Generation 1. Teaming Testers with Developers 7. Statistical Testing 2. Code Coverage 8. Semiformal Methods 3. Automated Environment Generator 9. Check-in Tests for Code Incremental Practices 4. Testing to Help Ship on Demand 10. Minimizing Regression Test Cases 5. State Task Diagram 11. Instrumented Versions for MTTF 6. Memory Resource Failure 12. Bug Bounties Simulation Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 3
  • 4. The Basic Practices Functional Specifications • A key part of many development processes. • External view of an object or a procedure indicating the options by which a service could be invoked. • Testers use functional specifications to write down test cases from a black box testing perspective. • Test generation activity could happen in parallel with the development of the code. Reviews and Inspections • One of the most efficient methods of debugging code. • Software inspection can easily provide a ten times gain in the process of debugging software. Formal Entry and Exit Criteria • Every process step, be it inspection, functional test, or software design, has a precise entry and precise exit criteria. • The practices allow much more careful management of the software development process. Functional Test – Variations • A variation refers to a specific combination of input conditions to yield a specific output condition. • Writing down functional tests involves writing different variations to cover as much of the state space as one deems necessary for a program. Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 4
  • 5. The Basic Practices Multi-platform Testing • Many products today are designed to run on different platforms which creates the additional burden to both design and test the product. Internal Betas • The idea of a Beta is to release a product to a limited number of customers and get feedback to fix problems before a larger shipment. Automated Test Execution • The goal of automated test execution is that we minimize the amount of manual work involved in test execution and gain higher coverage with a larger number of test cases. ‘Nightly’ Builds • The concept captures frequent builds from changes that are being promoted into the change control system. • If a major regression occurs because of errors recently generated, they are captured quickly. • Regression tests can be run in the background. • The newer releases of software are available to developers and testers sooner. Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 5
  • 6. Foundational User Scenarios • As we integrate multiple software products and create end user applications that invoke one or a multiplicity of products, the task of testing the end user features gets complicated. • It tests the product in the ways that most likely reflect customer usage, imitating what Software Reliability Engineering has for long advocated under the concept of Operational Profile. • One reduces the complexity of writing test cases by moving to testing scenarios than features of an application. • This best practice should capture methods of recording user scenarios methods when specific failure scenarios occurs. Usability Testing • Usability becomes the final arbiter of quality. • Usability testing needs to not only assess how usable a product is but also provide feedback on methods to improve the user experience and thereby gain a positive quality image. In-process ODC Feedback Loops • Orthogonal Defect Classification (ODC) is a measurement method that uses the defect stream to provide precise measurability into the product and the process. • One of the uses of ODC has been the ability to close feedback loops in a software development process. Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 6
  • 7. Foundational Multi-release ODC/Butterfly Profiles • A key feature of the ODC measurement is the ability at multiple releases of a product and develop a profile of customer usage and its impact on warranty costs and overall development efficiencies. • The technology of multi-release ODC/Butterfly analysis allows a product manager to make strategic development decisions so as to optimize development costs, time to market, and quality issues by recognizing customer trends, usage patterns, and product performance. Requirements for Test Planning • Requirements management and its translation to produce test plans is an important step. Automated Test Generation • Almost 30% of the testing can be the writing of test cases. This is a completely manual exercise and a prime candidate for savings through automation. Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 7
  • 8. Incremental Teaming Testers with Developers • The close coupling of testers with developers improves both the test cases and the code that is developed. Code Coverage • The concept of code coverage is based on a structural notion of the code. • Code coverage implies a numerical metric that measures the elements of the code that have been exercised as a consequence of testing. There are a host of metrics: statements, branches, and data that are implied by the term code coverage. Automated Environment Generator • A fairly time-consuming task is the setting up a test environments to execute test cases. • Tools that can automatically set up environment, run the test cases, record the results, and then automatically reconfigure to a new environment, have high value. Testing to Help Ship on Demand • It changes the role of testing to one of providing excellent regression ability and working in late changes that still do not break the product or the ship schedule. Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 8
  • 9. Incremental State Task Diagram • This practice captures the functional operation of an application or a module in the form of a state transition diagram. • The advantages of doing so allows one to create test cases automatically or create coverage metrics that are closer to the functional decomposition of application. • The difficulties have usually been in extracting the functional view of a product which may not exist in any computable or documented form and producing the state transition diagram. Memory Resource Failure Simulation • This practice addresses a particular software bug, namely the loss of memory because of poor heap management or the lack of garbage collection. Statistical Testing • The central idea is to use software testing as a means to assess the reliability of software as opposed to a debugging mechanism. Semiformal Methods • A verification of a program as opposed to testing and debugging. • The verification methods are varied, some of which are theorem provers, while some of them simulation against which assertions can be validated. Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 9
  • 10. Incremental Check-in Tests for Code • The idea of check-in test is to couple an automated test program (usually a regression test) with the change control system. • This allows for an automated test run on recently changed code so that the chances of the code breaking the build are minimized. Minimizing Regression Test Cases • In organizations that have a legacy of development and of products that have matured over many releases, it is not uncommon to find regression test buckets that are huge. • At the same time, it is often unclear as to which of these test cases are duplicative providing little additional value. • One of the methods looks at the code coverage produced, and distill test cases to a minimal set. Instrumented Versions for MTTF • If the product is instrumented so that failures are recorded and returned to the vendor, they would yield an excellent source to measure the mean time between failure of the software. Bug Bounties • Bug bounties refers to our initiatives that charge the organization with a focus on detecting software bugs. At times providing rewards too. • The experience states that such effort tend to identify a larger than usual number of bugs. Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 10
  • 11. 연락처 감사합니다! 많은 문의를 부탁 드립니다 . 오 상헌 메트릭스 솔루션(Metrics Solutions) 서울시 강남구 대치4동 920-32번지, 202호 전화: 02-562-3749 FAX: 02-562-3749 휴대폰: 019-364-3749 E-Mail: shinhari@metricsolution.co.kr Web: http://www.metricsolution.co.kr Copyright© 2007 Metrics Solutions. Work Smarter, Not Harder. www.metricsolution.co.kr 11