Software Product Line Test Cases Derivation Using Combinatorial Test Design

조합 시험 설계를 이용한 소프트웨어 제품라인 시험항목 생성 방법

  • Received : 2014.01.13
  • Accepted : 2014.05.19
  • Published : 2014.07.15

Abstract

Software Product Line (SPL) is a software development paradigm that guarantees high productivity, reduced cost, and shorter time-to-market by systematically planning and reusing commonality and variability. In order to maximize the benefits of SPL engineering, testing should be integrated into the SPL engineering lifecycle processes that consist of domain engineering and application engineering and should be performed with as little test efforts as possible. This paper proposes a systematic software product line test cases derivation method using combinatorial test design. By applying combinatorial test design to product line test cases derivation and exploiting commonality between products at the same time, the number of generated test cases is dramatically reduced with the result that they can be effectively reused by the products of the given product line. Case studies conducted in this paper show the efficacy of our method compared with other methods that use only commonality or combinatorial design or neither of them in terms of the number of derived test cases.

소프트웨어 제품라인은 제품들 간의 공통성 및 가변성을 전체 개발라이프사이클에 걸쳐 체계적으로 계획하고 재사용하여 생산성 향상, 비용절감, 시장적시성 향상을 꾀하는 소프트웨어 개발 패러다임이다. 소프트웨어 제품라인이 가져다 주는 이익을 최대화하기 위하여 시험은 도메인 공학과 어플리케이션 공학의 두 라이프사이클을 구성하는 프로세스들과 일관된 방식으로 통합되어야 하며, 더불어 시험 노력을 절감할 수 있어야 한다. 본 논문에서는 조합 시험 설계를 적용하여 제품라인 플랫폼을 시험할 시험항목을 생성함으로써 시험항목 개수를 상당히 줄이면서 동시에 재사용이 용이한 시험항목 생성을 지원하여 시험노력을 절감할 수 있는 조합 시험 설계를 이용한 제품라인 시험항목 생성 방법을 제안한다. 또한, 사례연구를 통하여 제안한 방법이 조합 설계를 이용하거나 그렇지 않은 기존의 다른 방법들 보다 효율적임을 보인다.

Keywords

Acknowledgement

Supported by : 한국연구재단

References

  1. K. Pohl, G. Bockle, and F. J. van der Linden, Software Product Line Engineering: Foundations, Principles and Techniques, Secaucus, NJ, USA: Springer-Verlag New York, Inc., 2005.
  2. P. Clements and L. Northrop, Software Product Lines: Practices and Patterns, Addison Wesley, Reading, MA, USA, 2001.
  3. G. Perrouin, S. Sen, J. Klein, B. Baudry, and Y. le Traon, "Automated and Scalable T-wise Test Case Generation Strategies for Software Product Lines," Proc. of International Conference on Software Testing, Verification, and Validation (ICST) 2010, pp.459- 468, 2010.
  4. M. B. Cohen, M. B. Dwyer, and J. Shi, "Coverage and Adequacy in Software Product Line Testing," Proc. of the Role of Software Architecture for Testing and Analysis (ROSATEA) 2006, pp.53-63, 2006.
  5. M. B. Cohen, M. B. Dwyer, and J. Shi, "Constructing Interaction Test Suites for Highly-Configurable Systems in the Presence of Constraints: A Greedy Approach," IEEE Transactions on Software Engineering, vol.34, no.5, pp.633-650, 2008. https://doi.org/10.1109/TSE.2008.50
  6. B. P. Lamancha and M. P. Usaola, "Testing Product Generation in Software Product Lines using Pairwise for Features Coverage," Proc. of International Conference on Testing Software and Systems 2010, pp.111-125, 2010.
  7. G. Perrouin, S. Oster, S., S. Sen, J. Klein, B. Baudry, and Y. le Traon, "Pairwise Testing for Software Product Lines-A Comparison of Two Approaches," Software Quality Journal, DOI 10.1007/s11219-011-9160-9, 2011.
  8. A. Hervieu, B. Baudry, and A. Gotlieb, "PACOGEN: Automatic Generation of Pairwise Test Configurations from Feature Models," Proc. of IEEE International Symposium on Software Reliability Engineering 2011, pp.120-129, 2011.
  9. C. H. Kim, D. Batory, and S. Khurshid, "Reducing Combinatorics in Testing Product Lines," Proc. of International Conference on Aspect Oriented Software Development (AOSD) 2011, pp.57-68, 2011.
  10. E. Kamsties, K. Pohl, S. Reis, and A. Reuys, "Testing Variabilities in Use Case Models," Proc. of Product Family Engineering 2003, LNCS 3014, pp.6-18, 2004.
  11. E. Olimpiew H. and Gomaa, "Model-based Testing for Applications Derived from Software Product Lines," Proc. of Workshop on Advances in Modelbased Testing 2005, pp.1-7, 2005.
  12. V. Stricker, A. Metzger, and K. Pohl, "Avoiding Redundant Testing in Application Engineering," Lecture Notes in Computer Science, vol.6287/2010, Software Product Lines: Going Beyond, pp.226-240, 2010.
  13. C. Nebut, T. Le Traon, and J.-M. Jezequel, "System Testing of Product Lines: From Requirements to Test Cases," Software Product Lines: Research Issues in Engineering and Management, (Eds.) T. Kakoa et al., Chap. 12, Springer, 2006.
  14. A. Tevanlinna, J. Taina, and R. Kauppinen, "Product Family Testing: A Survey," SIGSOFT Software. Engineering Notes, vol.29, no.2, pp.12-12, 2004.
  15. Erika Mir Olimpiew and Hassan Gomaa, "Reusable Model-Based Testing," ICSR 2009, LNCS 5791, pp.76-85, 2009.
  16. M. Grindal, J. Offutt, and S. Andler, "Combination Testing Strategies: A Survey," Software Testing Verification and Reliability, vol.15, no.3, pp.167-200, 2005. https://doi.org/10.1002/stvr.319
  17. D. R. Kuhn, R. N. Kacker, and Y. Lei, "Practical Combinatorial Testing," National Institute of Standards and Technology, NIST Special Publication, pp.800-142, Oct. 2010.
  18. D. M. Cohen, S. R. Dalal, M. L. Fredman, and G. C. Patton, "The AETG System: An Approach to Testing Based on Combinatorial Design," IEEE Trans. Software Eng., vol.23, no.7, pp.437-444, Jul. 1997. https://doi.org/10.1109/32.605761
  19. G. J. Myers, T. M. Thomas, and J. Wiley, The Art of Software Testing, Second Edition. 2004.
  20. H. Gomaa, Designing Software Product Lines with UML: from Use Cases to Pattern based Software Architectures, Addison Wesley, 2004.
  21. S. Kang, "A Method for Extending Software Modeling Languages to Languages for Modeling Families of Software," KISSE Journal of Software Engineering Society, vol.23, no.2, Jun. 2010. (in Korean)
  22. T-wise testing tool. Available: http://hexawise.com/.
  23. S. Kang, H. Baek, J. Kim, "Systematic Software Product Line Test Cases Derivation for Test Data Reuse," Department of Computer Science, KAIST, Technical Report CS-TR-2011-363, 2011.
  24. J. Lee, S. Kang, and D. Lee, "A Survey on Software Product Line Testing," Proc. of International Software Product Line Conference (SPLC) 2012, pp.31-40, 2012.