검색 상세

요구사항 모델을 기반으로한 테스트 케이스 자동 생성 기법

Automatic Generation of Test Cases based on Requirement Models

초록/요약

In order to do model-based testing of embedded system, we must have test cases from requirement model such as Temporal logic, FSM, UML, Simulink and REED(REquirement EDitor). There are many modeling languages in the world. In this dissertation, I selected the two modeling languages among them. One is a Simulink/Stateflow, and the other is a REED. This dissertation proposes an applicable test case generation technique for validating an SL/SF model and an embedded system. To generate test cases, this algorithm gets feedback from an Executable Model that is created from the SL/SF model file. By analyzing the feedback, test cases are generated by considering the characteristics of the embedded system’s input devices to validate the embedded system and the model. The Executable Model provides the basis for executing the SL/SF model and analyzing the execution results. MEVA (Model and Embedded system VAlidator), an automatic test case generation tool with this algorithm, was evaluated using 4 different SL/SF models. For model validation, MEVA’s performance is 30% better than Reactis’s in the MC/DC (Modified Condition/Decision Coverage) criteria in one model with many local variables in the comparison results with the Reactis tool. MEVA improved by about 34% in the number of total steps of test cases against the Reactis tool. REED is an executable requirement description language. The requirements of embedded systems can be expressed close to the ones described in natural languages with REED. In this dissertation, we propose a technique that automatically generates test cases from the descriptions written with twenty graphic notations supplied in REED. The generated test cases satisfy the MC/DC (Modified Condition / Decision Coverage) criteria. The first thing for the technique to generate test cases from a requirement set is to drive input-output (i/o) relations from each requirement. Based on the input-output relation information, an i/o relation tree is built with all possible linearized i/o trees. Then the technique traverses the tree in topological order. During the traverse, it generates test cases referencing the properties and test cases of entities in the trees. We applied our test case generation technique to several commercial embedded systems in the fields and successfully verified its practicality and effectiveness. This paper introduces the report on generating the test cases and testing the products and discusses how we have overcome the actual delicate problems faced in the real world. The technique has been being improved and will be ready to be adapted as the test case generation module along with REED in a commercial tool.

more

목차

1. Introduction
1.1. Model the SUT and/or it environment from requirements
1.2. Generate test cases with oracles from the model
1.3. Contributions
1.4. Dissertation Structure
1.5. Terminology Clarifications

2. Models
2.1. Temporal Logic
2.2. Petri-Nets
2.3. (E)FSM
2.4. UML
2.5. Matlab Simulink/Stateflow
2.6. REED(REquirement EDitor)

3. Model-based Test Case Generation Strategies
3.1. Coverage-based test case generation strategy
3.2. Random test case generation strategy

4. Automatic Test Case Generation Algorithm for SL/SF model
4.1. Code Generator
4.2. Coverage Goal Generator
4.3. Test Case Generator
4.4. Input Filter Generator
4.5. Experimental Results

5. Automatic Test Case Generation Algorithm for REED
5.1. MC/DC for requirements
5.2. Automatic Test Case Generation Algorithm
5.3. Example of Test Case Generation
5.4. Empirical Analysis

6. Conclusion and Future Works
6.1. Conclusions
6.2. Future Works

Bibliography

more