Abstract: The tool, MC/DC-Automatic Tool Generator automatically generates test data to satisfy Modified Condition Decision Coverage (MCDC) from input code/model. This tool reduces the effort required to generate MCDC test data significantly. In order to reduce the time required by model checkers, abstraction and optimization methodologies have been implemented to analyze typical reactive software model/code.
FORM - 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
PROVISIONAL
specification
(See Section 10; rule 13) MODIFIED CONDITION DECISION COVERAGE (MCDC)
TATA CONSULTANCY SERVICES LTD.,
an Indian Company of Nirmal Building, 9th floor, Nariman Point, Mumbai 400 021, Maharashtra, India
THE FOLLOWING SPECIFICATION DESCRIBES THE INVENTION
This invention relates to Modified Condition Decision Coverage (MCDC).
MCDC is a software test coverage criterion.
MCDC has been found to be an effective measure of testing and hence various standards such as DO-178B, a standard followed by the airlines industry, require that the testing of critical software achieve MCDC. Developers of automotive software too are adopting MCDC as an effective measure of testing. However, creating test data to achieve MCDC is very effort intensive.
BACKGROUND:
Requirements based testing may not be sufficient to test code structure of the software, because in most cases, there isn't an exact mapping between the requirements specifications and the actual code. Because of this gap, there is a need for structural testing of the code. Structural testing is a way of measuring up to what extent the requirements based tests covered the code structure. If the requirements based tests do not satisfy a structural coverage criterion, then additional tests have to be generated until acceptable structural coverage is achieved for that measure. There are various types of structural coverage criteria: Statement, decision, condition, condition/decision, modified condition/decision and multiple condition coverage. For complete coverage of the code, multiple condition coverage is ideal, but not practical. MCDC provides the optimal practical alternative. Therefore, it has been rendered compulsory by DO-178B for level-A software certification.
The DO-178B definition of MCDC includes the property that each condition is shown to affect the decision's outcome independently. This is done by varying just that condition and holding fixed all other conditions. This is called the independent effect of that condition. Independent effect is the property that sets apart MCDC from the other coverage criteria because it guarantees a more comprehensive coverage (number of bugs found out due to MCDC) as compared to the rest of the feasible structural coverage criteria. Therefore, MCDC is demanded by software manufacturers and standardization organizations.
The independent effect property of MCDC influences the amount of test data to be created for a particular program. If the number of conditions present in the program is n, then the maximum test data that may have to be prepared is 2n, implying an average to a big test suite. But due to the following factors, the task of test suite preparation gets more and more complicated and time consuming,
1. size and complexity of the code
2. size and complexity of Boolean expressions in the code
It becomes extremely difficult to prepare test data for a large, deeply nested decisions which can be reached via multiple program paths.
3. Programmatic level of testing (unit level, functional level, module level).
Preparation of test data that satisfy MCDC for unit level testing is quite intuitive as compared to module level.
4. Validation and modification of the prepared test data due to human errors
also takes up a lot of manual time.
This invention provides a tool, that automatically generates test data to satisfy MCDC. The tool has been built around BLAST and SAL using model checking techniques. This invention also envisages optimizations required to analyze typical reactive software that have an outer loop.
The tool in accordance with this invention automates the process of test data generation for MCDC. The tool combines static and dynamic analysis on input C code. A model checker BLAST is used to generate program execution paths. These paths are fed as constraints to another model checker SAL which generates values required to satisfy these path constraints. In addition to that, the tool has execution means with the generated test data, verification means which verifies them and reporting means which reports coverage.
Figure 1 of the accompanying drawing is a flow diagram of the Tool architecture in accordance with this invention which is self explanatory.
The whole process of test data generation using the tool in accordance with this invention can be broken down into a 3-stage process:
Stage 1: In the first stage, the input code is annotated to form the input for the model checker BLAST.
Stage 2: The modified code is input to BLAST and it generates execution traces for all the conditions in the code.
Stage 3: The traces are translated to SAL specification language, which are then input to the model checker SAL. SAL generates the actual test data that satisfies MCDC.
The main strength of the tool is that the time and manual effort required to generate MCDC satisfying test data are considerably reduced. Since source code itself is taken as input, little manual effort is required to use the tool. Also, errors in generated test data are negligible. Since the tool uses model checkers at its back end, scalability of the tool is dependent on the scalability of the model checkers.
Although the invention has been described in terms of particular embodiments and applications, one of ordinary skill in the art, in light of this teaching, can generate additional embodiments and modifications without departing from the spirit of or exceeding the scope of the claimed invention. Accordingly, it is to be understood that the drawings and descriptions herein are proffered by way of example to facilitate comprehension of the invention and should not be construed to limit the scope thereof.
| Section | Controller | Decision Date |
|---|---|---|
| # | Name | Date |
|---|---|---|
| 1 | 26-MUM-2009-ABSTRACT(5-1-2010).pdf | 2018-08-10 |
| 1 | 26-MUM-2009-FORM 18(26-11-2010).pdf | 2010-11-26 |
| 2 | 26-MUM-2009-ANNEXURE TO FORM 3(20-7-2015).pdf | 2018-08-10 |
| 2 | 26-MUM-2009-CORRESPONDENCE(26-11-2010).pdf | 2010-11-26 |
| 3 | Petition Under Rule 137 [23-03-2016(online)].pdf | 2016-03-23 |
| 3 | 26-MUM-2009-CLAIMS(5-1-2010).pdf | 2018-08-10 |
| 4 | OTHERS [23-03-2016(online)].pdf | 2016-03-23 |
| 4 | 26-MUM-2009-CORRESPONDENCE(11-2-2010).pdf | 2018-08-10 |
| 5 | Other Document [23-03-2016(online)].pdf | 2016-03-23 |
| 5 | 26-MUM-2009-CORRESPONDENCE(20-7-2015).pdf | 2018-08-10 |
| 6 | Examination Report Reply Recieved [23-03-2016(online)].pdf | 2016-03-23 |
| 6 | 26-MUM-2009-CORRESPONDENCE(23-6-2010).pdf | 2018-08-10 |
| 7 | Description(Complete) [23-03-2016(online)].pdf | 2016-03-23 |
| 7 | 26-MUM-2009-CORRESPONDENCE(5-1-2010).pdf | 2018-08-10 |
| 8 | Correspondence [23-03-2016(online)].pdf | 2016-03-23 |
| 8 | 26-MUM-2009-CORRESPONDENCE(IPO)-(DECISION)-(31-7-2017).pdf | 2018-08-10 |
| 9 | 26-MUM-2009-CORRESPONDENCE(IPO)-(HEARING NOTICE)-(5-5-2017).pdf | 2018-08-10 |
| 9 | Claims [23-03-2016(online)].pdf | 2016-03-23 |
| 10 | 26-mum-2009-correspondence.pdf | 2018-08-10 |
| 10 | Abstract [23-03-2016(online)].pdf | 2016-03-23 |
| 11 | 26-MUM-2009-DESCRIPTION(COMPLETE)-(5-1-2010).pdf | 2018-08-10 |
| 11 | Written submissions and relevant documents [19-06-2017(online)].pdf | 2017-06-19 |
| 12 | 26-MUM-2009-ORIGINAL UNDER RULE 6 (1A)-28-06-2017.pdf | 2017-06-28 |
| 13 | 26-mum-2009-description(provisional).pdf | 2018-08-10 |
| 13 | RTOA_26MUM2009.pdf_43.pdf | 2018-08-10 |
| 14 | 26-MUM-2009-DRAWING(5-1-2010).pdf | 2018-08-10 |
| 14 | RTOA_26MUM2009.pdf | 2018-08-10 |
| 15 | 26-mum-2009-drawing.pdf | 2018-08-10 |
| 15 | Prrof of Right_ Copy as submitted by 23 june 2010.pdf_42.pdf | 2018-08-10 |
| 16 | 26-MUM-2009-FORM 1(23-6-2010).pdf | 2018-08-10 |
| 16 | Prrof of Right_ Copy as submitted by 23 june 2010.pdf | 2018-08-10 |
| 17 | form 26.pdf_40.pdf | 2018-08-10 |
| 17 | 26-mum-2009-form 1.pdf | 2018-08-10 |
| 18 | form 26.pdf | 2018-08-10 |
| 18 | 26-mum-2009-form 2(5-1-2010).pdf | 2018-08-10 |
| 19 | 26-MUM-2009-FORM 2(TITLE PAGE)-(5-1-2010).pdf | 2018-08-10 |
| 19 | F-3+search+exam.pdf_39.pdf | 2018-08-10 |
| 20 | 26-mum-2009-form 2(title page).pdf | 2018-08-10 |
| 20 | F-3+search+exam.pdf | 2018-08-10 |
| 21 | Claims-Mark&Clean.pdf_41.pdf | 2018-08-10 |
| 22 | 26-mum-2009-form 2.pdf | 2018-08-10 |
| 22 | Claims-Mark&Clean.pdf | 2018-08-10 |
| 23 | 26-mum-2009-form 26.pdf | 2018-08-10 |
| 23 | citied-doc.pdf_38.pdf | 2018-08-10 |
| 24 | citied-doc.pdf | 2018-08-10 |
| 24 | 26-MUM-2009-FORM 3(11-2-2010).pdf | 2018-08-10 |
| 25 | abstract1.jpg | 2018-08-10 |
| 25 | 26-mum-2009-form 3.pdf | 2018-08-10 |
| 26 | 26-MUM-2009-FORM 5(5-1-2010).pdf | 2018-08-10 |
| 26 | 26-MUM-2009_EXAMREPORT.pdf | 2018-08-10 |
| 27 | 26-MUM-2009-FORM 5(5-1-2010).pdf | 2018-08-10 |
| 27 | 26-MUM-2009_EXAMREPORT.pdf | 2018-08-10 |
| 28 | 26-mum-2009-form 3.pdf | 2018-08-10 |
| 28 | abstract1.jpg | 2018-08-10 |
| 29 | 26-MUM-2009-FORM 3(11-2-2010).pdf | 2018-08-10 |
| 29 | citied-doc.pdf | 2018-08-10 |
| 30 | 26-mum-2009-form 26.pdf | 2018-08-10 |
| 30 | citied-doc.pdf_38.pdf | 2018-08-10 |
| 31 | 26-mum-2009-form 2.pdf | 2018-08-10 |
| 31 | Claims-Mark&Clean.pdf | 2018-08-10 |
| 32 | Claims-Mark&Clean.pdf_41.pdf | 2018-08-10 |
| 33 | 26-mum-2009-form 2(title page).pdf | 2018-08-10 |
| 33 | F-3+search+exam.pdf | 2018-08-10 |
| 34 | 26-MUM-2009-FORM 2(TITLE PAGE)-(5-1-2010).pdf | 2018-08-10 |
| 34 | F-3+search+exam.pdf_39.pdf | 2018-08-10 |
| 35 | 26-mum-2009-form 2(5-1-2010).pdf | 2018-08-10 |
| 35 | form 26.pdf | 2018-08-10 |
| 36 | form 26.pdf_40.pdf | 2018-08-10 |
| 36 | 26-mum-2009-form 1.pdf | 2018-08-10 |
| 37 | Prrof of Right_ Copy as submitted by 23 june 2010.pdf | 2018-08-10 |
| 37 | 26-MUM-2009-FORM 1(23-6-2010).pdf | 2018-08-10 |
| 38 | 26-mum-2009-drawing.pdf | 2018-08-10 |
| 38 | Prrof of Right_ Copy as submitted by 23 june 2010.pdf_42.pdf | 2018-08-10 |
| 39 | 26-MUM-2009-DRAWING(5-1-2010).pdf | 2018-08-10 |
| 39 | RTOA_26MUM2009.pdf | 2018-08-10 |
| 40 | 26-mum-2009-description(provisional).pdf | 2018-08-10 |
| 40 | RTOA_26MUM2009.pdf_43.pdf | 2018-08-10 |
| 41 | 26-MUM-2009-ORIGINAL UNDER RULE 6 (1A)-28-06-2017.pdf | 2017-06-28 |
| 42 | 26-MUM-2009-DESCRIPTION(COMPLETE)-(5-1-2010).pdf | 2018-08-10 |
| 42 | Written submissions and relevant documents [19-06-2017(online)].pdf | 2017-06-19 |
| 43 | 26-mum-2009-correspondence.pdf | 2018-08-10 |
| 43 | Abstract [23-03-2016(online)].pdf | 2016-03-23 |
| 44 | 26-MUM-2009-CORRESPONDENCE(IPO)-(HEARING NOTICE)-(5-5-2017).pdf | 2018-08-10 |
| 44 | Claims [23-03-2016(online)].pdf | 2016-03-23 |
| 45 | 26-MUM-2009-CORRESPONDENCE(IPO)-(DECISION)-(31-7-2017).pdf | 2018-08-10 |
| 45 | Correspondence [23-03-2016(online)].pdf | 2016-03-23 |
| 46 | Description(Complete) [23-03-2016(online)].pdf | 2016-03-23 |
| 46 | 26-MUM-2009-CORRESPONDENCE(5-1-2010).pdf | 2018-08-10 |
| 47 | 26-MUM-2009-CORRESPONDENCE(23-6-2010).pdf | 2018-08-10 |
| 47 | Examination Report Reply Recieved [23-03-2016(online)].pdf | 2016-03-23 |
| 48 | Other Document [23-03-2016(online)].pdf | 2016-03-23 |
| 48 | 26-MUM-2009-CORRESPONDENCE(20-7-2015).pdf | 2018-08-10 |
| 49 | OTHERS [23-03-2016(online)].pdf | 2016-03-23 |
| 49 | 26-MUM-2009-CORRESPONDENCE(11-2-2010).pdf | 2018-08-10 |
| 50 | Petition Under Rule 137 [23-03-2016(online)].pdf | 2016-03-23 |
| 50 | 26-MUM-2009-CLAIMS(5-1-2010).pdf | 2018-08-10 |
| 51 | 26-MUM-2009-ANNEXURE TO FORM 3(20-7-2015).pdf | 2018-08-10 |
| 51 | 26-MUM-2009-CORRESPONDENCE(26-11-2010).pdf | 2010-11-26 |
| 52 | 26-MUM-2009-ABSTRACT(5-1-2010).pdf | 2018-08-10 |
| 52 | 26-MUM-2009-FORM 18(26-11-2010).pdf | 2010-11-26 |