{"id":16136,"date":"2016-11-14T08:23:29","date_gmt":"2016-11-14T08:23:29","guid":{"rendered":"http:\/\/www.safetyangel.com\/recdev\/?page_id=16136"},"modified":"2016-11-14T08:25:02","modified_gmt":"2016-11-14T08:25:02","slug":"example-5-analyzing-software-reliability-growth","status":"publish","type":"page","link":"http:\/\/www.safetyangel.com\/recdev\/example-5-analyzing-software-reliability-growth\/","title":{"rendered":"Example 5 &#8211; Analyzing Software Reliability Growth"},"content":{"rendered":"<div id=\"dt_row_1177728695853\" class=\"clearfix dt_row\"><div id=\"dt_column_2\" class=\"dt_column col-sm-12\"><div id=\"dt_row_3177728695851\" class=\"row dt_row\"><div id=\"dt_column_4\" class=\"dt_column col-sm-6\"><div id=\"dt_row_5177728695814\" class=\"row dt_row title-blck\"><div id=\"dt_column_6\" class=\"dt_column col-sm-12\"><div id=\"dt-section-head-7\" class=\"dt-section-head center  size-custom\">\r\n              <div><h2 style=\"color:#ffffff;font-size:35px\" class=\"section-main-title\">ALTA Example 3 - Accelerated Degradation<\/h2><\/div><\/div><\/div><\/div><\/div><div id=\"dt_column_8\" class=\"dt_column col-sm-6\"><\/div><\/div><div id=\"dt_row_9177728695822\" class=\"row dt_row\"><div id=\"dt_column_10\" class=\"dt_column col-sm-5\"><\/div><div id=\"dt_column_11\" class=\"dt_column col-sm-7\"><div id=\"dt_row_12177728695878\" class=\"row dt_row\"><div id=\"dt_column_13\" class=\"dt_column col-sm-12\"><div id=\"dt_text14177728695867\" class=\"dt_text\">\n<h3><span style=\"color: #000000; font-size: 1em;\">Examples provided here are purely for illustrating software features and functionality.<\/span><\/h3>\n<\/div><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"dt_row_15177728695892\" class=\"clearfix dt_row\"><div id=\"dt_column_16\" class=\"dt_column col-sm-12\"><div id=\"dt_row_17177728695889\" class=\"row dt_row\"><div id=\"dt_column_18\" class=\"dt_column col-sm-12\"><div id=\"dt_row_19177728695894\" class=\"row dt_row\"><div id=\"dt_column_20\" class=\"dt_column col-sm-1\"><\/div><div id=\"dt_column_21\" class=\"dt_column col-sm-10\"><div id=\"dt_text22177728695848\" class=\"dt_text\">\n<h3><span style=\"color: #0093d5;\">Example 5 &#8211; Analyzing Software Reliability Growth<\/span><\/h3>\n<p>Software Used: <b>Software Used: ALTA PRO<\/b><\/p>\n<p><b>Download Example File for <a href=\"http:\/\/www.reliasoft.com\/alta\/examples\/rc1\/alta_example_1_V10.rsgz10\" download=\"\">Version 10 (*.rsgz10)<\/a> or <a href=\"http:\/\/www.reliasoft.com\/alta\/examples\/rc1\/alta_example_1_V9.rsr9\" download=\"\">Version 9 (*.rsr9)<\/a><\/b><\/p>\n<p>When considering reliability growth, some sort of hardware is typically being analyzed. But the same theory and analysis procedures can also be applied to the analysis of software under development. The faults (bugs) that are found during each day&#8217;s testing of the software can be recorded and then analyzed, just as would be done for hardware. This example will explore how software reliability growth can be analyzed using RGA.<\/p>\n<h3><span style=\"color: #0093d5;\">Background<\/span><\/h3>\n<p>Software for a particular application is under development. The reliability requirement is that no more than one fault may occur during every 8 hours of continuous operation.<\/p>\n<p>Testing begins when the software reaches the &#8220;beta&#8221; phase. Three employees perform continuous testing during business hours. This results in 24 hours of cumulative software testing per day. The software faults are reported and captured in a Failure Reporting, Analysis and Corrective Action System (FRACAS). Given that a new compile of the software is available for testing every week, design engineers implement fixes within a week with the exception of the last two weeks of testing, when fixes are implemented at a faster rate.<\/p>\n<p>The failure rate goal for this software is to have no more than one failure per 8 hours of operation, or 1\/8 = 0.125 failures per hour. In one day of testing (3 x 8 = 24 hours), the failure intensity goal is 0.125 x 24 = 3 faults per day.<\/p>\n<p>Assume that the following data set was extracted from the FRACAS system. The data set is grouped by the number of days until a new compile of the software is available.<\/p>\n<table class=\"style1\" style=\"height: 271px;\" width=\"525\" cellspacing=\"0\">\n<tbody>\n<tr>\n<td class=\"style1\" style=\"text-align: center;\"><strong>Failures in Interval<\/strong><\/td>\n<td class=\"style1\"><strong>Days of Testing<\/strong><\/td>\n<\/tr>\n<tr>\n<td class=\"style1\">45<\/td>\n<td class=\"style1\">5<\/td>\n<\/tr>\n<tr>\n<td class=\"style1\">34<\/td>\n<td class=\"style1\">10<\/td>\n<\/tr>\n<tr>\n<td class=\"style1\">25<\/td>\n<td class=\"style1\">15<\/td>\n<\/tr>\n<tr>\n<td class=\"style1\">17<\/td>\n<td class=\"style1\">20<\/td>\n<\/tr>\n<tr>\n<td class=\"style1\">21<\/td>\n<td class=\"style1\">23<\/td>\n<\/tr>\n<tr>\n<td class=\"style1\">14<\/td>\n<td class=\"style1\">26<\/td>\n<\/tr>\n<tr>\n<td class=\"style1\">10<\/td>\n<td class=\"style1\">28<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>To analyze the data set, calculate the parameters using the Crow-AMSAA (NHPP) model and use the Quick Parameter Estimator (QCP) to estimate the demonstrated failure intensity. Then determine when the failure rate goal will be achieved and how many days of developmental testing are required.<\/p>\n<\/div><\/div><div id=\"dt_column_23\" class=\"dt_column col-sm-1\"><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"dt_row_24177728695841\" class=\"clearfix dt_row\"><div id=\"dt_column_25\" class=\"dt_column col-sm-12\"><div id=\"dt_row_26177728695890\" class=\"row dt_row\"><div id=\"dt_column_27\" class=\"dt_column col-sm-12\"><div id=\"dt_row_28177728695883\" class=\"row dt_row\"><div id=\"dt_column_29\" class=\"dt_column col-sm-1\"><\/div><div id=\"dt_column_30\" class=\"dt_column col-sm-10\"><div id=\"dt_text31177728695844\" class=\"dt_text\">\n<h3><span style=\"color: #0093d5;\">Analysis and Results<\/span><\/h3>\n<p>An appropriate standard folio data sheet is created by selecting <strong>Times-to-Failure Data &gt; <\/strong><b>Grouped Failure Times <\/b>on the first page of the RGA Folio Data Sheet Setup window and choosing <strong>Days<\/strong> as the units of measurement on the second page, as shown next.<\/p>\n<p class=\"caption\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex_fig1a.png\" alt=\"Select data type\" \/><\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex_fig1b.png\" alt=\"Select units\" \/>Figure 1: Selecting the data type and units of measurement for the new folio.<\/p>\n<\/div><\/div><div id=\"dt_column_32\" class=\"dt_column col-sm-1\"><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"dt_row_33177728695892\" class=\"clearfix dt_row\"><div id=\"dt_column_34\" class=\"dt_column col-sm-12\"><div id=\"dt_row_35177728695841\" class=\"row dt_row\"><div id=\"dt_column_36\" class=\"dt_column col-sm-12\"><div id=\"dt_row_37177728695850\" class=\"row dt_row\"><div id=\"dt_column_38\" class=\"dt_column col-sm-1\"><\/div><div id=\"dt_column_39\" class=\"dt_column col-sm-10\"><div id=\"dt_text40177728695832\" class=\"dt_text\">\n<p>The data set is then entered and the Crow-AMSAA (NHPP) model is selected for analysis, as shown next.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig2.png\" alt=\"Folio with data\" \/>Figure 2: Data set entered in the standard folio.<\/p>\n<p>After analyzing the data, the results summary shows that the demonstrated failure intensity (DFI) is 4.4947. In other words, at the end of the test, the failure rate is about 5 faults per day.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig3.png\" alt=\"Results summary\" \/>Figure 3: Summary of results showing the failure intensity demonstrated at the end of the test (DFI).<\/p>\n<\/div><\/div><div id=\"dt_column_41\" class=\"dt_column col-sm-1\"><\/div><\/div><\/div><\/div><\/div><\/div><div id=\"dt_row_42177728695893\" class=\"clearfix dt_row\"><div id=\"dt_column_43\" class=\"dt_column col-sm-12\"><div id=\"dt_row_44177728695871\" class=\"row dt_row\"><div id=\"dt_column_45\" class=\"dt_column col-sm-12\"><div id=\"dt_row_46177728695851\" class=\"row dt_row\"><div id=\"dt_column_47\" class=\"dt_column col-sm-1\"><\/div><div id=\"dt_column_48\" class=\"dt_column col-sm-10\"><div id=\"dt_text49177728695841\" class=\"dt_text\">\n<p>This can also be seen by using the QCP. Since the test ended at 28 days, the DFI is equal to the instantaneous FI at 28 days.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig4.png\" alt=\"DFI in QPC\" \/>Figure 4: Quick calculation showing the DFI.<\/p>\n<h3><span style=\"color: #0093d5;\">Analysis and Discussion<\/span><\/h3>\n<p>The above results show that the demonstrated failure intensity is 4.4947 faults per day. The question now is: &#8220;If we continue testing with the same growth rate, when will we achieve the goal of no more than three faults per day?&#8221;<\/p>\n<p>To calculate this, the QCP is used to solve for time given an instantaneous failure intensity of 3, as shown next. About 149 days of testing are estimated to be required to reach the failure intensity goal.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig5.png\" alt=\"\" \/>Figure 5: Quick calculation showing that a total of about 149 days are required to reach the failure intensity goal.<\/p>\n<\/div><\/div><div id=\"dt_column_50\" class=\"dt_column col-sm-1\"><\/div><\/div><\/div><\/div><div id=\"dt_row_51177728695849\" class=\"row dt_row\"><div id=\"dt_column_52\" class=\"dt_column col-sm-12\"><div id=\"dt_row_53177728695815\" class=\"row dt_row\"><div id=\"dt_column_54\" class=\"dt_column col-sm-1\"><\/div><div id=\"dt_column_55\" class=\"dt_column col-sm-10\"><div id=\"dt_text56177728695847\" class=\"dt_text\">\n<p>Since we have already completed 28 days of testing, this indicates that only 121 additional days of testing and development (test-analyze-and-fix) are required to achieve the goal. This is much more time than the analysts anticipated, so they decide to take a closer look.<\/p>\n<p>A plot of the failure intensity vs. time is used to display the results. On the plot sheet control panel, the <b>Use Logarithmic Axes<\/b> option is cleared to specify that the plot will use a linear scale.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig6.png\" alt=\"FI vs Time plot\" \/>Figure 6: Failure intensity vs. time plot for full data set.<\/p>\n<p>From this plot, it can be seen that there is a jump in the failure intensity between 20 and 23 days (i.e., the data point at 23 days is higher than the point at 20 days). This is the reason why it is estimated that more development time than expected is required. Therefore, the next step is to analyze the data set for the period up to 20 days of testing.<\/p>\n<p>A new data sheet (Data 2) is added to the folio and the faults from the first 20 days of testing are entered. Then the parameters are calculated using the Crow-AMSAA (NHPP) model, as shown next.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig7.png\" alt=\"Analysis of 20 days\" \/>Figure 7: First 20 days of data entered and analyzed in folio.<\/p>\n<\/div><\/div><div id=\"dt_column_57\" class=\"dt_column col-sm-1\"><\/div><\/div><\/div><\/div><div id=\"dt_row_58177728695846\" class=\"row dt_row\"><div id=\"dt_column_59\" class=\"dt_column col-sm-12\"><div id=\"dt_row_60177728695877\" class=\"row dt_row\"><div id=\"dt_column_61\" class=\"dt_column col-sm-1\"><\/div><div id=\"dt_column_62\" class=\"dt_column col-sm-10\"><div id=\"dt_text63177728695884\" class=\"dt_text\">\n<p>The failure intensity vs. time plot for Data 2 is displayed on a linear scale, as shown next. This plot shows the decrease in the failure intensity rate over the first 20 days of testing.<\/p>\n<p class=\"caption\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig8.png\" alt=\"FI vs Time plot for 20 days\" \/><\/p>\n<p class=\"caption\">Figure 8: Failure intensity vs. time plot for first 20 days of test data.<\/p>\n<p>The QCP is used to solve for the days of testing and development that are required to achieve the failure intensity goal, based on the first 20 days of test data, as shown next.<\/p>\n<p class=\"caption\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig9.png\" alt=\"Total number of days for goal\" \/><\/p>\n<p class=\"caption\">Figure 9: Total number of days needed to reach the goal, based on data from the first 20 days of testing.<\/p>\n<p>The calculation indicates that a total of 55 days of total time, or 27 additional days after the current test, are required. Note that this is much different than the result obtained from the analysis of the full data set.<\/p>\n<p>So the new question is: &#8220;What happened when the failure intensity jumped on the 23rd day of testing and development?&#8221; It turns out that new functionality was implemented at the request of a customer, which caused a major redesign on some general modules of the software. This type of jump is typical in both software and hardware development when new features are introduced and observed.<\/p>\n<p>Due to these significant changes, it is decided that the clock should be reset and the analysts should track the reliability growth from the 20th day forward. In other words, the origin of the test is set at 20 days, and the data thereafter are considered as follows:<\/p>\n<\/div><\/div><div id=\"dt_column_64\" class=\"dt_column col-sm-1\"><\/div><\/div><div id=\"dt_row_65177728695844\" class=\"row dt_row\"><div id=\"dt_column_66\" class=\"dt_column col-sm-1\"><\/div><div id=\"dt_column_67\" class=\"dt_column col-sm-10\"><div id=\"dt_text68177728695835\" class=\"dt_text\">\n<div align=\"center\">\n<table class=\"style1\">\n<tbody>\n<tr>\n<td class=\"style2\"><strong>Failures in Interval<\/strong><\/td>\n<td class=\"style2\"><strong>Days of Testing<\/strong><\/td>\n<\/tr>\n<tr>\n<td class=\"style2\">21<\/td>\n<td class=\"style2\">3<\/td>\n<\/tr>\n<tr>\n<td class=\"style2\">14<\/td>\n<td class=\"style2\">6<\/td>\n<\/tr>\n<tr>\n<td class=\"style2\">10<\/td>\n<td class=\"style2\">8<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Another data sheet is added to the folio (Data 3) for the faults over the last 8 days of testing, and the parameters are calculated using the Crow-AMSAA (NHPP) model, as shown next.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig10.png\" alt=\"Faults over last 8 days\" \/>Figure 10: Faults over the last 8 days of testing entered and analyzed in folio.<\/p>\n<p>The failure intensity vs. time plot for Data 3 is displayed on a linear scale, as shown next.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig11.png\" alt=\"\" width=\"650\" height=\"501\" \/>Figure 11: Failure intensity vs. time plot for faults over last 8 days of testing.<\/p>\n<p>The QCP is once again used to solve for the additional days of testing and development that are required to achieve the failure intensity goal, this time based on the analysis from days 20 through 28 of the testing, as shown next.<\/p>\n<p class=\"caption\" style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone\" src=\"http:\/\/www.reliasoft.com\/rga\/examples\/rgex5\/rgex5_fig12.png\" alt=\"\" \/>Figure 12: Total number of days needed to reach the goal failure rate, based on data from the last 8 days of testing.<\/p>\n<p>Therefore, 51 &#8211; 8 = 43 more days of developmental testing are estimated to be required.<\/p>\n<p>While it is too early to make any predictions based on just 8 days of testing, this result can be used to get a general idea of the remaining development time required and to come up with a new testing plan. In this case, it is decided that three more employees need to be added to testing and, if possible, that a new compile needs to be created every two days. This yields a much more aggressive testing and development program with the objective of completing the project within one month.<\/p>\n<\/div><\/div><div id=\"dt_column_69\" class=\"dt_column col-sm-1\"><\/div><\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"fullwidth.php","meta":{"footnotes":""},"class_list":["post-16136","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/www.safetyangel.com\/recdev\/wp-json\/wp\/v2\/pages\/16136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.safetyangel.com\/recdev\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.safetyangel.com\/recdev\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.safetyangel.com\/recdev\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.safetyangel.com\/recdev\/wp-json\/wp\/v2\/comments?post=16136"}],"version-history":[{"count":1,"href":"http:\/\/www.safetyangel.com\/recdev\/wp-json\/wp\/v2\/pages\/16136\/revisions"}],"predecessor-version":[{"id":16137,"href":"http:\/\/www.safetyangel.com\/recdev\/wp-json\/wp\/v2\/pages\/16136\/revisions\/16137"}],"wp:attachment":[{"href":"http:\/\/www.safetyangel.com\/recdev\/wp-json\/wp\/v2\/media?parent=16136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}