This paper discusses a method for identifying abstract test classes (or architectural tests), based on the semantics behavior of the software architecture of a system specified by labeled transition systems (LTS). The abstract test classes will then be refined into concrete tests (code-level) in order to be executed. The refinement process is carried out manually because no formal mapping exists between software architecture and implementation. A simple monitoring-based system called Teleservice and Remote Medical Care System (TRMCS) was used to validate the method.
The main contributions of this paper are the derivation of test classes from an analysis of low-level specifications modeled by LTS; the labor intensive test execution strategy, which is used to identify the implementation code corresponding to the communication patterns at the architectural level; and the evaluation and execution traces, with respect to the architectural tests or ordered sequence of actions.
The paper is well written and well organized, but it has some fundamental problems. The authors claim that they employed software architecture, or high-level design, for code testing. This is confusing because the paper used LST, which is a low-level design specification, to derive test classes, not architectural specifications. The other problems include the upper limits on the number of test cases in the case of nondeterministic testing, and the scalability, generality, and practicality of the approach. For example, using the approach proposed in this paper, it is not feasible, without any kind of tool support, to go through thousands (or millions) of lines of code to identify the code corresponding to the architectural tests, and then run these code snippets and evaluate their results.