정적 테스팅 (Static Testing)
Prof. Jong Min Lee이(가) 6일 전에 추가함
ISO/IEC/IEEE 29119에서의 정적 테스팅 개념¶
정적 테스팅(Static Testing)은 소프트웨어나 관련 산출물을 실제로 실행하지 않고 결함이나 품질 문제를 식별하는 테스트 기법입니다. ISO/IEC/IEEE 29119 표준에서는 정적 테스팅을 소프트웨어 개발 생명주기 전반에 걸쳐 적용할 수 있는 중요한 활동으로 정의하고 있습니다. 정적 테스팅은 주로 코드, 요구사항, 설계 문서, 테스트 케이스, 사용자 매뉴얼 등 다양한 산출물에 대해 수행되며, 실행 기반의 동적 테스팅과는 달리 문서나 코드를 분석하거나 검토하는 방식으로 결함을 조기에 발견하는 것이 목적입니다[3][4][5].
정적 테스팅의 주요 목적¶
- 결함의 조기 발견: 개발 초기 단계에서 오류나 결함을 찾아 수정 비용을 절감합니다.
- 품질 향상: 산출물의 일관성, 완전성, 정확성을 확보합니다.
- 프로세스 개선: 반복적인 리뷰와 분석을 통해 개발 및 테스트 프로세스의 성숙도를 높입니다[3][4].
ISO 29119에서 정의하는 정적 테스팅 관련 활동¶
ISO/IEC/IEEE 29119에서는 정적 테스팅 활동을 다음과 같이 분류하고 있습니다.
1. 리뷰(Review)
- 정의: 산출물을 여러 이해관계자가 검토하여 결함, 불일치, 개선점을 찾는 활동입니다.
- 종류:
- 비공식 리뷰(Ad-hoc Review): 정해진 절차 없이 자유롭게 검토.
- 워크스루(Walkthrough): 작성자가 내용을 설명하며 피드백을 받음.
- 인스펙션(Inspection): 체계적인 절차에 따라 결함을 기록하고 수정 권고.
- 체크리스트 기반 리뷰(Checklist-based Review): 사전에 정의된 체크리스트를 활용해 검토[4][5].
2. 정적 분석(Static Analysis)
- 정의: 도구를 활용해 소스코드, 산출물의 구조적 결함이나 품질 문제를 자동으로 탐지하는 활동.
- 예시: 코드 컴파일러, 정적 분석 툴(예: 복잡도 분석, 보안 취약점 탐지)[3][4].
3. 문서 검토(Documentation Review)
- 요구사항, 설계, 테스트 케이스, 사용자 문서 등 모든 산출물에 대한 체계적 검토가 포함됩니다[3][5].
정적 테스팅의 절차 및 산출물¶
정적 테스팅은 다음과 같은 절차로 이루어지며, 각 단계에서 산출물이 생성됩니다.
- 계획(Planning): 리뷰나 분석의 범위, 대상, 참여자, 일정 등을 정의.
- 준비(Preparation): 산출물 배포, 체크리스트 작성, 참여자 교육.
- 실행(Execution): 실제 리뷰/분석 수행, 결함 기록.
- 보고(Reporting): 결함 목록, 개선사항, 리뷰 결과 보고서 작성.
- 후속 조치(Follow-up): 결함 수정 확인, 프로세스 개선 활동[3][4][5].
ISO 29119와 기타 표준과의 연계¶
- 정적 테스팅은 ISO 29119의 일부 파트(특히 Part 4: Test Techniques)에서 구체적으로 다루며, 리뷰 표준(ISO/IEC 20246) 및 IEEE 1028(소프트웨어 리뷰 및 인스펙션 표준)과도 연계됩니다[5].
- 정적 테스팅 활동은 ISO 29119의 테스트 프로세스와 문서화 표준(Part 2, Part 3)에서 요구하는 산출물과도 밀접하게 연결됩니다[2][5].
요약¶
- 정적 테스팅은 소프트웨어 실행 없이 산출물을 검토하거나 분석하여 결함을 조기에 발견하는 활동입니다.
- 주요 활동에는 리뷰(비공식, 워크스루, 인스펙션 등), 정적 분석, 문서 검토가 포함됩니다.
- 절차는 계획, 준비, 실행, 보고, 후속 조치로 구성되며, 각 단계별 산출물이 명확히 정의됩니다.
- ISO 29119는 정적 테스팅의 중요성을 강조하며, 관련 활동을 표준화하여 품질 향상과 비용 절감에 기여합니다[3][4][5].
Citations:
[1] http://jidum.com/jidums/view.do?jidumId=698
[2] https://www.stureid.info/wp-content/uploads/2015/08/ISO-29119-The-New-International-Software-Testing-Standards.pdf
[3] https://wildart.github.io/MISG5020/standards/ISO-IEC-IEEE-29119-1.pdf
[4] https://testmanager.tistory.com/453
[5] https://charstring.tistory.com/257
[6] https://www.tta.or.kr/data/androReport/ttaJnal/167-5-3.pdf
[7] https://things-studio.tistory.com/413
[8] https://devforperson.tistory.com/entry/SW-Test%EB%A5%BC-%EC%95%8C%EA%B3%A0-%EC%8B%B6%EC%9C%BC%EC%8B%A0-%EB%B6%84%EB%93%A4-%EC%9D%B4-%EA%B8%80-%ED%95%98%EB%82%98%EB%A1%9C-%EA%B0%90%EC%9D%84-%EC%9E%A1%EC%9D%84-%EC%88%98-%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4
[9] https://www.iso.org/obp/ui/
[10] https://blog.naver.com/danicom/221317072987
Perplexity로부터의 답변: pplx.ai/share