PRIORITY-BASED SOFTWARE DEVELOPMENT AND TESTING TECHNIQUE (PBSDT) By Boniface C. Nwugwo http://www.btctechnologies.com
2 OBJECTIVES • Show how to implement PBSDT  Who, Where and When to do PBSDT • Discuss some of the benefits of PBSDT http://www.btctechnologies.com BTC Technologies
3 THE BAD NEWS PROBLEMS WITH SOFTWARE DEVELOPMENT: Software Development Projects are frequently undertaken with only a vague indication of Customer requirements Communication between Customer and Software Developer is often poor Customer dissatisfaction with the “COMPLETED” system is encountered too frequently BTC Technologieshttp://www.btctechnologies.com
4 THE GOOD NEWS Each of the problems described before can be corrected The key is an engineering approach to the development of software, coupled with continuing improvement of techniques and tools Role Playing (this involves actual role plays) BTC Technologieshttp://www.btctechnologies.com
5 PBSDT PROCESS: Who, When and How (1 of 5) • PBSDT process is a very simple concept • Consists of 5 principal activities During Customer Needs gathering During SW Requirement Specifications During SW Development During SW Test Plan Development During SW Integration & System Testing • Each feature of the product is prioritized based on its relative importance BTC Technologieshttp://www.btctechnologies.com
6 PBSDT PROCESS: Who, When and How (2 of 5) • Relative importance of the product feature is defined based on degree of necessity • Degree of necessity is the level of importance of a requirement from the customer’s viewpoint http://www.btctechnologies.com BTC Technologies
7 PBSDT PROCESS: Definition of Degree of Necessity (3 of 5) DEGREE OF NECESSI TY MEANI NG Mandatory Implies that the software will not be acceptable unless these requirements are provided in an agreed manner Desirable Implies that these are requirements that would enhance the software product, but would not make it unacceptable if they were absent. Optional Implies a set of requirements that may or may not be worthwhile, which gives the designers the opportunity to propose something, which exceeds the SRS. BTC Technologieshttp://www.btctechnologies.com
8 PBSDT PROCESS: Definition of Priorities (4 of 5) PRI ORI TY MEANI NG High Implies that the software will not be acceptable unless these requirements are provided Medium Implies that these are requirements that would enhance the software product, but would not make it unacceptable if they are absent in alpha and beta releases, but must be in the final release to the customer Low Implies a set of requirements that may or may not be worthwhile, which gives the designers the opportunity to propose something which exceeds the SRS BTC Technologieshttp://www.btctechnologies.com
9 PBSDT PROCESS DIAGRAM (5 of 5) . Figure 1. The PBSDT Process Concept Implementation Team often times has little or no control Phase over this Voice of the Customer Requirements Definition Phase - Implementation Team has control over this. - We clarify our requirements and interpretation of Customer perceived need for each program feature Implementation Parallel Phase Development Of Code and Test Cases Test Phase Customer Needs Requirements Each customer requirement is Classified as either: • Mandatory • Desirable or • Optional Software Development • Code • Inspect code and re-work • Unit Test Note: High features are developed first, followed by Medium, then Low ones Test Plan Development • Test Case Design • Test Procedures Note: Test Cases and Test Procedures are developed for all program features without regard to priority Integration and System Testing • Priority-based testing beginning with High, then Medium and Low requirements are tested in that order Software Requirements Specification Each customer need is mapped into a software requirement specification. Mandatory "High" Desirable "Medium" Optional "Low" BTC Technologieshttp://www.btctechnologies.com
10 BENEFITS (1 of 10) • By setting priorities with respect to a deadline, the client understands which features are most likely to be implemented in time for the deadline. If the client disagrees with the priority, he/she has plenty of time to change it. Since the developers have not coded much yet at that point, the impact of a change in priority is minimal. BTC Technologieshttp://www.btctechnologies.com
11 BENEFITS (2 of 10) • Priorities act as a focus, helping the developers decide which functions to implement first. If the software developers think there isn't enough time to implement all the requirements, they now have the option of using the priorities as a guide to what to implement first. http://www.btctechnologies.com BTC Technologies
12 BENEFITS (3 of 10) • Maximize your "bang for the buck". As it happens so often, coding and integration take longer than expected. By the time System/Acceptance Testing starts, there isn't enough time left to thoroughly test the software. This is when priority-based testing makes the most of the time left. ”HIGH" tests are performed first, followed by ”MEDIUM", and “LOW” test cases. This approach means you'll lose some efficiency in setting up individual tests, but you gain the most value from the time you do spend in testing. BTC Technologieshttp://www.btctechnologies.com
13 BENEFITS (4 of 10) • The Pareto Principle applies to testing, as well as other software areas. An often quoted example is that "20% of the code is executed 80% of the time," and vice-versa. In testing, it's not uncommon to find that 20% of the tests are ”High". Another 20% have ”Medium" priority. That means that 60% of the tests don't really have to be tested until the next release. That is handy to know when you don't have enough time to do thorough testing. Just concentrate on the 40% of the tests that really matter. BTC Technologieshttp://www.btctechnologies.com
14 BENEFITS (5 of 10) • Since SQA tests by priority, when a test fails, the software developers have the longest possible time to investigate and correct errors with the greatest impact. BTC Technologieshttp://www.btctechnologies.com
15 BENEFITS (6 of 10) • Testing by priority automatically does partial regression testing. Trunk Main Branches Secondary Branches Leaves LOW HI GH BTC Technologieshttp://www.btctechnologies.com
16 BENEFITS (7 of 10) • At the end of each testing cycle, SQA produces a one-page test summary for the project manager as shown in Figure 2. Based on the results and the pre-agreed criteria for shipment, SQA can easily make shipment recommendations based on quantitative data. As the example shows, the tests that are yet to be tested are the functions for which the client is already willing to wait till the next release. Therefore, the project manager could ship the software with a fairly high confidence that the customer would readily accept the software. BTC Technologieshttp://www.btctechnologies.com
17 BENEFITS (8 of 10) PRI ORI TY PASSED FAI LED UNTESTED TOTAL 1 - High 31 0 0 31 2 - Medium 46 3 13 62 3 - Low 58 12 29 99 TOTALS: 135 15 42 192 Figure 2. Sample summary of test results http://www.btctechnologies.com BTC Technologies
18 BENEFITS (9 of 10) Test Summary Chart 0 10 20 30 40 50 60 PASSED FAILED UNTESTED High Medium Low BTC Technologieshttp://www.btctechnologies.com
19 BENEFITS (10 of 10) • The project manager gets a clear, quantitative one- page summary of test results. With the criteria for shipment already pre-agreed to, there is no need for last-minute uncertainties about whether the software is "good enough" to ship. BTC Technollogieshttp://www.btctechnologies.com
20 CONCLUSION • Priority-based software development & testing technique delivers more reliable systems on time compared to development and testing by poking around. • It is a rational alternative to managing software development and testing by “seat of the pants”. • Perhaps most important, it is driven by real-world user perspective. BTC Technologieshttp://www.btctechnologies.com
21 REFERENCES Robert Binder, "Scenario-Based Testing for Client/Server Systems", Software Development, August 1995. Vicki Tom, "Testing by Priority", The Tool-Box: Kodak's Software Tools Newsletter, Volume IV, No.4, Nov. 1989 BTC Technologieshttp://www.btctechnologies.com

Priority based software development and testing technique

  • 1.
    PRIORITY-BASED SOFTWARE DEVELOPMENT AND TESTINGTECHNIQUE (PBSDT) By Boniface C. Nwugwo http://www.btctechnologies.com
  • 2.
    2 OBJECTIVES • Show howto implement PBSDT  Who, Where and When to do PBSDT • Discuss some of the benefits of PBSDT http://www.btctechnologies.com BTC Technologies
  • 3.
    3 THE BAD NEWS PROBLEMSWITH SOFTWARE DEVELOPMENT: Software Development Projects are frequently undertaken with only a vague indication of Customer requirements Communication between Customer and Software Developer is often poor Customer dissatisfaction with the “COMPLETED” system is encountered too frequently BTC Technologieshttp://www.btctechnologies.com
  • 4.
    4 THE GOOD NEWS Eachof the problems described before can be corrected The key is an engineering approach to the development of software, coupled with continuing improvement of techniques and tools Role Playing (this involves actual role plays) BTC Technologieshttp://www.btctechnologies.com
  • 5.
    5 PBSDT PROCESS: Who,When and How (1 of 5) • PBSDT process is a very simple concept • Consists of 5 principal activities During Customer Needs gathering During SW Requirement Specifications During SW Development During SW Test Plan Development During SW Integration & System Testing • Each feature of the product is prioritized based on its relative importance BTC Technologieshttp://www.btctechnologies.com
  • 6.
    6 PBSDT PROCESS: Who,When and How (2 of 5) • Relative importance of the product feature is defined based on degree of necessity • Degree of necessity is the level of importance of a requirement from the customer’s viewpoint http://www.btctechnologies.com BTC Technologies
  • 7.
    7 PBSDT PROCESS: Definitionof Degree of Necessity (3 of 5) DEGREE OF NECESSI TY MEANI NG Mandatory Implies that the software will not be acceptable unless these requirements are provided in an agreed manner Desirable Implies that these are requirements that would enhance the software product, but would not make it unacceptable if they were absent. Optional Implies a set of requirements that may or may not be worthwhile, which gives the designers the opportunity to propose something, which exceeds the SRS. BTC Technologieshttp://www.btctechnologies.com
  • 8.
    8 PBSDT PROCESS: Definitionof Priorities (4 of 5) PRI ORI TY MEANI NG High Implies that the software will not be acceptable unless these requirements are provided Medium Implies that these are requirements that would enhance the software product, but would not make it unacceptable if they are absent in alpha and beta releases, but must be in the final release to the customer Low Implies a set of requirements that may or may not be worthwhile, which gives the designers the opportunity to propose something which exceeds the SRS BTC Technologieshttp://www.btctechnologies.com
  • 9.
    9 PBSDT PROCESS DIAGRAM(5 of 5) . Figure 1. The PBSDT Process Concept Implementation Team often times has little or no control Phase over this Voice of the Customer Requirements Definition Phase - Implementation Team has control over this. - We clarify our requirements and interpretation of Customer perceived need for each program feature Implementation Parallel Phase Development Of Code and Test Cases Test Phase Customer Needs Requirements Each customer requirement is Classified as either: • Mandatory • Desirable or • Optional Software Development • Code • Inspect code and re-work • Unit Test Note: High features are developed first, followed by Medium, then Low ones Test Plan Development • Test Case Design • Test Procedures Note: Test Cases and Test Procedures are developed for all program features without regard to priority Integration and System Testing • Priority-based testing beginning with High, then Medium and Low requirements are tested in that order Software Requirements Specification Each customer need is mapped into a software requirement specification. Mandatory "High" Desirable "Medium" Optional "Low" BTC Technologieshttp://www.btctechnologies.com
  • 10.
    10 BENEFITS (1 of10) • By setting priorities with respect to a deadline, the client understands which features are most likely to be implemented in time for the deadline. If the client disagrees with the priority, he/she has plenty of time to change it. Since the developers have not coded much yet at that point, the impact of a change in priority is minimal. BTC Technologieshttp://www.btctechnologies.com
  • 11.
    11 BENEFITS (2 of10) • Priorities act as a focus, helping the developers decide which functions to implement first. If the software developers think there isn't enough time to implement all the requirements, they now have the option of using the priorities as a guide to what to implement first. http://www.btctechnologies.com BTC Technologies
  • 12.
    12 BENEFITS (3 of10) • Maximize your "bang for the buck". As it happens so often, coding and integration take longer than expected. By the time System/Acceptance Testing starts, there isn't enough time left to thoroughly test the software. This is when priority-based testing makes the most of the time left. ”HIGH" tests are performed first, followed by ”MEDIUM", and “LOW” test cases. This approach means you'll lose some efficiency in setting up individual tests, but you gain the most value from the time you do spend in testing. BTC Technologieshttp://www.btctechnologies.com
  • 13.
    13 BENEFITS (4 of10) • The Pareto Principle applies to testing, as well as other software areas. An often quoted example is that "20% of the code is executed 80% of the time," and vice-versa. In testing, it's not uncommon to find that 20% of the tests are ”High". Another 20% have ”Medium" priority. That means that 60% of the tests don't really have to be tested until the next release. That is handy to know when you don't have enough time to do thorough testing. Just concentrate on the 40% of the tests that really matter. BTC Technologieshttp://www.btctechnologies.com
  • 14.
    14 BENEFITS (5 of10) • Since SQA tests by priority, when a test fails, the software developers have the longest possible time to investigate and correct errors with the greatest impact. BTC Technologieshttp://www.btctechnologies.com
  • 15.
    15 BENEFITS (6 of10) • Testing by priority automatically does partial regression testing. Trunk Main Branches Secondary Branches Leaves LOW HI GH BTC Technologieshttp://www.btctechnologies.com
  • 16.
    16 BENEFITS (7 of10) • At the end of each testing cycle, SQA produces a one-page test summary for the project manager as shown in Figure 2. Based on the results and the pre-agreed criteria for shipment, SQA can easily make shipment recommendations based on quantitative data. As the example shows, the tests that are yet to be tested are the functions for which the client is already willing to wait till the next release. Therefore, the project manager could ship the software with a fairly high confidence that the customer would readily accept the software. BTC Technologieshttp://www.btctechnologies.com
  • 17.
    17 BENEFITS (8 of10) PRI ORI TY PASSED FAI LED UNTESTED TOTAL 1 - High 31 0 0 31 2 - Medium 46 3 13 62 3 - Low 58 12 29 99 TOTALS: 135 15 42 192 Figure 2. Sample summary of test results http://www.btctechnologies.com BTC Technologies
  • 18.
    18 BENEFITS (9 of10) Test Summary Chart 0 10 20 30 40 50 60 PASSED FAILED UNTESTED High Medium Low BTC Technologieshttp://www.btctechnologies.com
  • 19.
    19 BENEFITS (10 of10) • The project manager gets a clear, quantitative one- page summary of test results. With the criteria for shipment already pre-agreed to, there is no need for last-minute uncertainties about whether the software is "good enough" to ship. BTC Technollogieshttp://www.btctechnologies.com
  • 20.
    20 CONCLUSION • Priority-based softwaredevelopment & testing technique delivers more reliable systems on time compared to development and testing by poking around. • It is a rational alternative to managing software development and testing by “seat of the pants”. • Perhaps most important, it is driven by real-world user perspective. BTC Technologieshttp://www.btctechnologies.com
  • 21.
    21 REFERENCES Robert Binder, "Scenario-BasedTesting for Client/Server Systems", Software Development, August 1995. Vicki Tom, "Testing by Priority", The Tool-Box: Kodak's Software Tools Newsletter, Volume IV, No.4, Nov. 1989 BTC Technologieshttp://www.btctechnologies.com