Research Article Summary
Mouchawrab et al (2011), published an article in the journal of IEEE on transaction software engineering which was entitled “Assessing, Comparing, and Combining State Machine-Based Testing and Structural Testing: A Series of Experiments”. The main focus of the article was on the cost effective way of testing state machine on fault detection which is model-based in comparison with structural testing. The study uses controlled experiments and review of the previous findings to reach its conclusion. Uniform modeling language UML is the main focus in the study as a method of testing. UML according to the study is the most effective state machine testing than white box. The article narrowed down to one testing strategy referred to as round-trip paths testing. The trade-off in testing is between effectiveness and cost, a testing method can be cheap but ineffective while another testing method can be effective but expensive.
Those who participated in this study were trained individuals where controlled experiments were used. The participants were students who were carefully trained and others were very experienced in the procedures of state-driven tests. The study sought to satisfy the following questions; the first question was to find out the differences between functional testing and structural testing. This was to be achieved by looking at the effectiveness of testing based on state machine alone for functional while test cases generated by testers on analysis of source code. The second question the study sought to answer was the differences and similarities in the faults detected by the state machine and structural testing. Different factors that affect state machine testing were also to be established. The above questions guided the researchers in coming up with research questions. Dependent variables were selected based on the following characteristics; effectiveness of error detection and cost of both specification and execution. Treatment was the only independent variable in the experiment.
The experiment procedure involved using standard methods of model based testing with further addition of tree graph known as transition tree. Breadth-first traversal technique was used in driving the transition tree. This technique is according to the requirements of the Round-Trip path testing strategy where the tree is traversed in the transition tree. Model based testing has been reviewed and explored in empirical studies and it is a recommended as a useful testing strategy.
The practical aspect of the study was encouraged by several literatures that suggested state-driven testing as the most important aspect of fault detection. The study established that testing done by code coverage analysis is not different from W-method or Round Trip path testing for UML for detecting faults. The effectiveness of state machines by code coverage is as effective other methods used in test faults. The two testing strategies, clustered based on state machine and coverage analysis according to the article are complementary to each other as such they suggest that they can be used concurrently contrary to previous perception as the two methods being alternatives for each other. The study suggests that code coverage analysis should be the last method implanted after cluster based on state machines is first used to test.
The results from the study further points out that state testing effectiveness are dependent on the nature of software unit test, the state machine model itself and test oracles. State testing as a method of testing is not enough to come up with the conclusion on class clusters characterized by real-time and concurrent properties. They suggest that other model-based testing should be implemented for such purposes. State machine model can be complimented activity or sequence diagrams to take care of properties which will not fully describe in the state machine model. Using precise oracle based on contract assertion and class invariants is beneficial.
Group Project Testing
This study gives a guideline of how we can test our school project. The following is a guideline of how we will examine our product.
Experiment definition and context
This section will clearly outline the context under which the project is being tested. The goal of the experiment will be to test the group project using round-trip path testing strategy and structural testing strategy. The two methods will be used as complementary since machine state does not describe the concurrency and time attributes. Combination of the two methods ensures that fault detection in the project is effective. The context in the project will consist objects such as source code and UML state machines Java software clusters, and participants who will be group members in project. Table 1 size of Source code and state machine
The java clusters are:
- OrderSet is a Java class such as lines of code.
- Cruise control is a cluster of four Java classes.
- Elevtor is a cluster of eight Java classes which consists of number of elevators serving a number of floors.
Context selection
Testing goals
The testing goals will be set for each group. Since each group will use a different testing strategy, they will have different sets of questions. The most important target of the experiment is to detect faults in the system designed by the group. To be able to carry out fault detection in an effective manner, mutant seeding where mutant operators will be used to deal with faults from one version. The number of mutant killed in the testing process will be used as indicators of effectiveness of the process. Large number of faults can be generated using MuJava which is also an automated method of generating mutants.
Experiment design
Each group carried out their experiment in a different location under different conditions with an aim of minimizing fatigue effects. Different class clusters will be used for each group. Each group will perform different combination of treatments and class clusters in separate location.
The following are the class clusters and conditions that will be used for the experiment.
Experiment treatments among the subgroups.
Project material
The project members will need the following materials.
- High-level description of the class cluster
- Eclipse tutorial
- Driver template
- Printed list of instructions to complete different tasks of the project.
The source code will be provided with source code which will be used to calculate node and edge coverage. For the state machine diagrams, the following will be required for the project;
- a transition tree
- operation contracts and state invariant in OCL and
- an executable jar file for class clusters.
With the above guideline the group project will be tested using the two methods to detect faults. The results of the two groups can be compared and combined.
Works Cited
Mouchawrab, S., Lionel, B. C., Yvan, L., & Massimiliano, P. D. (2011). Assessing, Comparing, and Combining State Machine-Based Testing and Structural Testing: A Series of Experiments. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING , Vol. 7 No. 2 161-187.