Model-Based Testing of Industrial Transformational Systems
Abstract
We present an approach for modeling and testing transformational systems in an industrial context. The systems are modeled as a set of boolean formulas. Each formula is called a clause and is an expression for an expected output value. To manage complexities of the models, we employ a modeling trick for handling dependencies, by using some output values from the system under test to verify other output values. To avoid circular dependencies, the clauses are arranged in a hierarchy, where each clause depends on the outputs of its children. This modeling trick enables us to model and test complex systems, using relatively simple models. Pairwise testing is used for test case generation. This manages the number of test cases for complex systems. The approach is developed based on a case study for testing printer controllers in professional printers at Océ. The model-based testing approach results in increased maintainability and gives better understanding of test cases and their produced output. Using pairwise testing resulted in measurable coverage, with a test set smaller than the manually created test set. To illustrate the applicability of the approach, we show how the approach can be used to model and test parts of a controller for ventilation in livestock stables.
Keywords
Output Parameter Output Location Boolean Formula Test Case Generation Hybrid AutomatonReferences
- 1.Alur, R., Courcoubetis, C., Henzinger, T., Ho, P.: Hybrid automata: An algorithmic approach to the specification and verification of hybrid systems. In: Grossman, R.L., Ravn, A.P., Rischel, H., Nerode, A. (eds.) HS 1991 and HS 1992. LNCS, vol. 736, pp. 209–229. Springer, Heidelberg (1993)Google Scholar
- 2.Burr, K., Young, W.: Combinatorial test techniques: Table-based automation, test generation and code coverage. In: Proceedings of the Intl. Conf. on Software Testing Analysis and Review, pp. 503–513. West (1998)Google Scholar
- 3.Calvagna, A., Gargantini, A.: A logic-based approach to combinatorial testing with constraints. In: Beckert, B., Hähnle, R. (eds.) TAP 2008. LNCS, vol. 4966, pp. 66–83. Springer, Heidelberg (2008)CrossRefGoogle Scholar
- 4.Claessen, K., Hughes, J.: Quickcheck: a lightweight tool for random testing of haskell programs. In: Proceedings of the Fifth ACM SIGPLAN International Conference on Functional Programming, ICFP 2000, pp. 268–279. ACM, New York (2000)CrossRefGoogle Scholar
- 5.Cohen, D.M., Dalal, S.R., Fredman, M.L., Patton, G.C.: The aetg system: An approach to testing based on combinatorial design. IEEE Trans. Softw. Eng. 23, 437–444 (1997)CrossRefGoogle Scholar
- 6.Cohen, D.M., Dalal, S.R., Parelius, J., Patton, G.C.: The combinatorial design approach to automatic test generation. IEEE Software 13(5), 83–88 (1996)CrossRefGoogle Scholar
- 7.DeMillo, R.A., Offutt, A.J.: Constraint-based automatic test data generation. IEEE Transactions on Software Engineering 17(9), 900–910 (1991)CrossRefGoogle Scholar
- 8.Dunietz, I.S., Ehrlich, W.K., Szablak, B.D., Mallows, C.L., Iannino, A.: Applying design of experiments to software testing: experience report. In: Proceedings of the 19th International Conference on Software Engineering, ICSE 1997, pp. 205–215. ACM, New York (1997)CrossRefGoogle Scholar
- 9.Koopman, P., Alimarine, A., Tretmans, J., Plasmeijer, R.: Gast: generic automated software testing. In: Peña, R., Arts, T. (eds.) IFL 2002. LNCS, vol. 2670, pp. 84–100. Springer, Heidelberg (2003)CrossRefGoogle Scholar
- 10.Kuhn, R., Reilly, M.: An investigation of the applicability of design of experiments to software testing. In: Proceeding of the 27th NASA/IEEE Software Engineering Workshop. IEEE, Los Alamitos (2002)Google Scholar
- 11.Lozano, R.C., Schulte, C., Wahlberg, L.: Testing continuous double auctions with a constraint-based oracle. In: Cohen, D. (ed.) CP 2010. LNCS, vol. 6308, pp. 613–627. Springer, Heidelberg (2010)CrossRefGoogle Scholar
- 12.Wallace, D.R., Kuhn, D.R.: Failure modes in medical device software: an analysis of 15 years of recall data. In: ACS/ IEEE International Conference on Computer Systems and Applications, pp. 301–311 (2001)Google Scholar