"가장 기본적인 실행 단위"는 C언어에서 함수(Function)에 해당한다.Unit Test Automation은 두가지로 구분된다. Blackbox Testing과Whitebox Testing으로 나뉜다.
Black box testing
블랙박스 검사는 소프트웨어 검사 방법 중 하나로 어떤 소프트웨어를 내부 구조나 작동 원리를 모르는 상태에서 소프트웨어의 동작을 검사하는 방법을 이르는 말이다. 주로 올바른 입력과 올바르지 않은 입력을 일일이 다 동원하여 올바른 출력을 판별하는 방식으로 검사가 이루
어지기 때문에 검사의 진행에 있어 대상이 되는 소프트웨어의 코드나 내부 구조 및 개발 노하우에 대한 정보는 기본적으로 필요로 하지 않는다. 필요한 것은 특징, 요구 사항, 검사를 위해 공개된 설계도 등 대외적으로 공개된 사항들이며 '이 소프트웨어는 무슨 역할을 수행해
야 되는가'와 같이 대상이 되는 소프트웨어의 특징이나 요구 사항 등에 초점을 맞춰 검사가이루어진다. 검사 자체는 기능에 관한 것일 수도 있고 기능 외의 것에 관한 것일 수도 있다.[1]
White box testing
화이트박스 검사는 소프트웨어 내부 소스 코드를 테스트하는 기법이다. 소프트웨어를 테스트하는 방법은 크게 블랙박스 검사(Black-Box Test) 기법과 화이트박스 검사(White-Box Test) 기법이 있다. 블랙박스 검사 기법은 소프트웨어의 내부를 보지 않고, 입력과 출력 값을 확인하여, 기능의 유효성을 판단하는 테스트 기법이며, 화이트박스 검사 기법은 소프트웨어 내부 소스코드를 확인하는 기법이다. 화이트박스 테스트를 하는 이유는 내부 소스코드의 동작을 개발자가 추적 할 수 있기 때문에, 동작의 유효성뿐만 아니라 실행 되는 과정을 살펴봄으로써,
코드가 어떤 경로로 실행되며, 불필요한 코드 혹은 테스트 되지 못한 부분을 살펴볼 수 있다.화이트박스 테스트를 하는 부분은 대개 코드의 실행 경로를 확인해야 하기때문에 시중에 나와 있는 커버리지 분석도구를 많이 활용한다. 화이트박스 검사 기법은 블랙박스 검사 기법에
비해 많은 시간과 분석을 필요로 하지만 오류가 발생 되는 결함의 위치 등을 파악하는데 매우 유용하게 사용 할 수 있다.[2]
CMOCK | BMOCK | CuTest | Cfix |
Check | API Sanity AutoTest | CUnit | AceUnit |
GNU Autounit | embUnit | MinUnit | HWUT[3] |
CUnit은 C로 작성된 소스에 대해서 Unit Test를 지원해주는 라이브러리이다. . C unit은 어떤 함수의 리턴값이 예상한 값과 맞는지 블랙박스 테스트를 하기 용이하다.CUnit의 테스트 구조는 Registry 있고 Registry 안에 Suite가 있고 그 내부에 Test들이 존재하는 구조를 가진다.
Cunit에서 사용되는 헤더 파일
#include< CUnit/CUnit.h > | 테스트 케이스에 사용하기 위한 ASSERT 매크로 | #include <CUnit/Automated.h > | xml 출력이 있는 자동화된 인터페이스. |
#include <CUnit/CUError.h > | 함수 및 데이터 유형 오류 처리 | #include < CUnit/Basic.h > | stdout에 대한 비대화형 출력이 있는 기본 인터페이스. |
#include < CUnit/TestDB.h > | 테스트 레지스트리, 제품군 및 테스트에 대한 데이터 조작 | #include < CUnit/Console.h > | 대화형 콘솔 인터페이스 |
#include < CUnit/TestRun.h > | 테스트를 실행하고 결과를 검색하기 위한 데이터 함수 | #include < CUnit/CUCurses.h > | 대화형 콘솔 인터페이스(*nix). |
'Computer Science > Software Engineering' 카테고리의 다른 글
ISO/IEC 9126-1 - Software Product Quality 표준 (1) | 2021.12.26 |
---|---|
Cunit Test Code 작성하기 (0) | 2021.12.26 |
CMMI와 유사한 국내외 평가모델-SP인증 (1) | 2021.12.26 |
Cunit이란? (0) | 2021.12.06 |
맥북 Google Test 설치하기 (1) | 2021.12.06 |