A Study of Unit Testing Frameworks on Open Source C++

오픈 소스 C++에서의 유닛 테스팅 프레임워크에 관한 고찰

  • Received : 2013.09.11
  • Accepted : 2013.09.23
  • Published : 2013.09.30

Abstract

Unit testing is proved to be vital for a successful software development process. Modern languages, such as Python, Java and C#, have a great support and tools for unit testing. But when it comes to C++, there are a big number of C++ frameworks available [List], and it becomes hard to make a choice of unit testing framework to use. This paper presents a survey of open source C++ unit testing frameworks by dividing open source C++ unit testing frameworks into two groups: frameworks with an integrated test runner and frameworks with a separate test runner.

소프트웨어 개발을 성공적으로 수행하기 위하여서 유닛 테스팅은 아주 필수 불가결한 요소이다. Python, Java, C# 등의 현대 컴퓨터 개발 언어에서는 유닛 테스팅을 용이하게 하기 위하여 다양한 기능을 제공하고 있다. 하지만, C++ 언어에 있어서는 워낙 많은 프레임워크를 제공하고 있는 관계로, 유닛 테스팅을 위한 프레임워크 선택이 결코 용이하지 않다. 이 논문에서는 C++ 언어에서의 유닛 테스팅을 위한 프레임워크를 집약된 test runner와 분리된 test runner의 두 그룹으로 나눠서 고찰하였다.

Keywords

References

  1. Beck, K., Embracing Change with Extreme Programming, Computer 32 (10): 70-77, 1999 https://doi.org/10.1109/2.796139
  2. Beck, K., Beedle, M., van Bennekum, A. et al, Manifesto for Agile Software Development, 2001
  3. Beck, K., Extreme Programming Explained: Embrace Change, Addison-Wesley, 1999
  4. Beck, K., Test Driven Development: By Example, Addison-Wesley Professional, 2002
  5. Jeffries, R., Test Driven Development: A Practical Guide, Prentice Hall, 2003.
  6. Koss, R., Lang, J., Test Driven Development in C, C/C++Users Journal, October, 2002.
  7. Blees, M., Simplified Unit Testing for Native C++ Applications, MSDN Magazine, February, 2008
  8. Beck, K., Firesmith, D. G., Simple Smalltalk Testing, Kent Beck's Guide to Better Smalltalk, chapter 30, Cambridge University Press, December, 1998.
  9. Massol, V., Husted, T., JUnit in Action, Manning Publications, 2003.
  10. Madden, B., Using CppUnit to Implement Unit Testing, Game Programming Gems 6, Charles River Media, 2006.
  11. Llopis, N., Exploring the C++ Unit Testing Framework Jungle, http://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle
  12. Proposed Draft Technical Report on C++ Library Extensions
  13. The Chromium projects, http://www.chromium.org/
  14. The LLVM compiler infrastructure, http://llvm.org/
  15. Protocol buffers - Google's data interchange format, http://code.google.com/p/protobuf/
  16. Osherove, R., The Art of Unit Testing: With Examples in .Net, Manning Publications, 2009.
  17. List of unit testing frameworks, http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C