ABSTRACT
The Home Automation System (HAS) is a service-oriented application that facilitates the automation of a private home to improve the comfort and security of its residents. HAS is implemented using a service-oriented architecture. Many of the services in the HAS dynamically change their configuration during run-time. This occurs due to change in availability and bindings between services. Dynamic reconfigurations of services in the HAS presents several testing challenges, one being the specification of test oracles. In this paper, we give an approach for specifying test oracles for services in the HAS. We formally specify test oracles in the JML specification language. To verify service behavior in the presence of dynamic reconfigurations, we use mechanisms in the service architecture that notify dynamic changes along with run-time evaluation of JML specifications. We illustrate our approach using an example service in the H-Omega HAS developed on the OSGi™ and iPOJO service platform. To evaluate our approach, we developed a testing framework that allows for generation of tests with dynamic service reconfigurations. In addition, we seeded faults into the example service, and evaluated the effectiveness of the test oracles in revealing the faults using the generated tests.
- Apache felix iPOJO website. http://felix.apache.org/site/apache-felix-ipojo.html.Google Scholar
- OSGi Alliance. OSGi Service Platform: Release 3, March 2003. IOS Press, 2003. Google ScholarDigital Library
- L. Baresi, C. Ghezzi, and S. Guinea. Smart monitors for composed services. In ICSOCŠ04, pages 193--202, 2004. Google ScholarDigital Library
- K. Beck and E. Gamma. Test infected: Programmers love writing tests. Java Report 3(7), July 1998.Google Scholar
- F. Bellegarde, J. Groslambert, M. Huisman, J. Julliand, and O. Kouchnarenko. Verification of liveness properties with JML. Technical report, INRIA.Google Scholar
- J. Bourcier, A. Chazalet, M. Desertot, C. Escoffier, and C. Marin. A dynamic-soa home control gateway. In IEEE International Conference on Services Computing (SCC 2006), 2006. Google ScholarDigital Library
- Y. Cheon and G. T. Leavens. A Runtime Assertion Checker for the Java Modeling Language (JML). In Hamid R. Arabnia and Youngsong Mun, editors, International Conference on Software Engineering Research and Practice (SERP '02), pages 322--328, Las Vegas, Nevada, June 2002. CSREA Press.Google Scholar
- Y. Cheon and G. T. Leavens. A simple and practical approach to unit testing: The JML and JUnit way. In 16th European Conference on Object-Oriented Programming (ECOOP'02), number 2374 in LNCS, pages 231--255. Springer, June 2002. Google ScholarDigital Library
- C. Escoffier, J. Bourcier, P. Lalanda, and Jianqi Yu. Towards a home application server. In 5th IEEE Consumer Communications and Networking Conference, pages 321--325, January 2008.Google ScholarCross Ref
- C. Escoffier, R. S. Hall, and P. Lalanda. iPOJO: an extensible service-oriented component framework. In IEEE International Conference on Services Computing (SCC 2007), pages 474--481, July 2007.Google ScholarCross Ref
- S. Fickas and M. S. Feather. Requirements monitoring in dynamic environments. In Proc. of the Second IEEE International Symposium on Requirements Engineering, pages 140--147, March 1995. Google ScholarDigital Library
- C. Ghezzi and S. Guinea. Run-time monitoring in service-oriented architectures. Test and Analysis of Web Services, 2007.Google ScholarCross Ref
- IBM, BEA Systems, Microsoft, SAP AG, and Siebel Systems. Business Process Execution Language for Web Services 1.1, 2005.Google Scholar
- JUnit. http://www.junit.org.Google Scholar
- N. Kavantzas, D. Burdett, and G. Ritzinger. Web Services Choreography Description Language version 1.0, 2004.Google Scholar
- M. Kim, S. Kannan, I. Lee, O. Sokolosky, and M. Viswanathan. JAVA-MAC: a runtime assurance tool for java programs. Electronic Notes in Theoretical Computer Science, 55, 2001.Google Scholar
- G. T. Leavens, E. Poll, C. Clifton, Y. Cheon, C. Ruby, D. R. Cok, P. Muller, J. R. Kiniry, and P. Chalin. JML Reference Manual. Iowa State University, Jan 2006.Google Scholar
- Y. Ledru, L. du Bousquet, O. Maury, and P. Bontron. Filtering TOBIAS combinatorial test suites. In 7th Int. Conf. FASE, Held as Part of ETAPS, volume 2984 of LNCS, pages 281--294, Barcelona, Spain, 2004.Google ScholarCross Ref
- K. Mahbub and G. Spanoudakis. Monitoring WS-Agreements: An Event Calculus-Based Approach. Test and Analysis of Web Services, 2007.Google ScholarCross Ref
- D. K. Peters and D. L. Parnas. Requirements-based monitors for real-time systems. IEEE Trans. Softw. Eng., 28(2):146--158, 2002. Google ScholarDigital Library
- G. Spanoudakis and K. Mahbub. Requirements monitoring for service-based systems: towards a framework based on event calculus. In Proceedings of the 19th International Conference on Automated Software Engineering, 2004. Google ScholarDigital Library
- Assertion-based test oracles for home automation systems
Recommendations
Using JML Runtime Assertion Checking to Automate Metamorphic Testing in Applications without Test Oracles
ICST '09: Proceedings of the 2009 International Conference on Software Testing Verification and ValidationIt is challenging to test applications and functions for which the correct output for arbitrary input cannot be known in advance, e.g. some computational science or machine learning applications. In the absence of a test oracle, one approach to testing ...
Semantic-Based Test Oracles
COMPSAC '11: Proceedings of the 2011 IEEE 35th Annual Computer Software and Applications ConferenceTest oracle is one of the most difficult parts for test automation. For software with a large number of test cases, it is always both expensive and error prone to develop and maintain test oracles. The research is motivated by industry needs of ...
Comments