본문 바로가기
SW Testing

SW Test를 알고 싶으신 분들! 이 글 하나로 감을 잡을 수 있습니다.

by DevforPerson 2022. 3. 24.

이 글을 보시는 분들은 SW Test를 들어봤으나, 정확히 어떻게 하는 것인지 모르시는 분들이 대부분일 겁니다.
또는 Coding, Programming은 좀 다뤄보셨으나 SW Testing이라는 것에 대해서 좀 더 알고 싶을 거라 생각합니다.

이 문제에 대한 해답은 이 글만 보셔도 어느 정도 감이 잡히실 겁니다.



대부분 SW Test를 하라고 하면 "Test는 그냥 내가 만든걸 검증하는 거아니야?" 라고 생각합니다. 저역시 그렇게 생각하고 Programming하면서 개발업무를 했었습니다. 하지만 SW Testing 분야도 절차 부터 실행, 레포트까지 여러 단계가 있다는 것을 알게 되었습니다.

저는 Programming, Architecting을 10년 넘게 업무로 수행을 하다가 SW Testing 업무를 5년 넘게 하고 있습니다. 처음 시작할 때는 어떻게 할지 모르고 주위에서도 체계적으로 알고 있는 분들이 없었습니다. 운 좋게 회사 지원으로 Carnegie Melon에서 단기 수업도 듣고, 여러 자격증을 취득하면서 사내 전문가로 SW Testing Consultant 역할까지 수행하고 있습니다. 오랫동안 고민하고 경험한 내용을 최대한 쉽게 글을 읽는 분들에게 알려드리겠습니다.


Programming을 시작할 때는 책을 보면서 Print 창에 "Hello, World"를 찍는 것부터 시작을 하곤 합니다. 간단한 Coding을 시작으로 점점 문법을 배우고, 구조를 익히고, 다양한 요구사항을 만족하는 Coding을 합니다.
하지만 규모가 큰 Coding을 하거나 여러사람들과 함께 Coding을 하다보면 절차라는 것이 필요해 집니다. 그리고 Coding Rule을 만들어서 Code의 효율을 높이고, 각자가 맡은 부분을 수행하고 자신의 결과를 정리해서 공유함으로써 전체 Project의 완성도를 높여 나갑니다.
SW Testing도 마찬가지 입니다. 간단한 코드를 검증하는 정도는 기법이나 절차 등 복잡한 과정이 필요없이 코드를 만든 사람이 가장 빠르고 정확하게 검증할 수 있습니다. 하지만 검증할 Code가 복잡해지고, 큰 System을 검증하는 것이라면 여러명의 개발자와 함께 진행하게 될 절차가 필요하고, Testing이후에 결과를 공유하는 방법도 필요하게 됩니다.


출처: 소프트웨어테스팅(ISO/IEC/IEEE 29119) 국제표준 현황 - 임태형

이런 부분에 대해서 많은 전문가들이 고민을 하게 되었고, SW Testing에 관해서 참고할 만한 국제 규격을 제정했습니다. 또한 자격증을 만들고 많은 사람들이 체계적으로 지식을 습득하고 검증할 수 있게 되었습니다. (물론 지금의 자격증이 모든 것을 대변하지는 못합니다.)
SW Testing에 관해서 ISO/IEC/IEEE 29119 이라는 국제 표준이 있습니다. ISO(International Standards Organization, 국제표준화기구), IEC(International Electrotechnical Commission, 국제전기기술위원회), IEEE(Institute of Electrical and Electronics Engineers, 전기전자기술자협회) 에서 함께 제정한 것으로 SW 분야를 대표하는 각 기구가 협력해서 제정했습니다.
기존에도 SW Testing에 관련된 표준이 있었으나 표준간의 SW Testing의 절차, 정의 등이 모순되거나 중복되어 혼란을 야기했습니다. 이를 해결하고자 워킹그룹 및 위원회가 2007년 5월에 결성되었고, 2015년 12월 ISO/IEC/IEEE 29119가 제정 및 출판되었습니다. 그때 당시에는 4개 파트로만 제정되었으나 2016년 7월에 파트 5가 추가되면서 2016년 7월 최종국제표준안이 나오게 되었습니다.


SW Testing은 크게 정적 테스팅(Static Testing)과 동적 테스팅(Dynamic Testing)으로 나누어 집니다.
정적 테스팅은 코드 분석, 문서 추적성 분석 등의 활동을 말하고, 동적 테스팅은 검증 대상을 실행시켜서 테스팅하는 의미합니다. 정적 테스팅도 IEEE 1028과 같은 표준으로 제정되어서 연구되고 공유되고 있으나 정적 테스팅의 경우 Tool을 사용하여 자동으로 분석하고, 추적성을 형성해 주고 있습니다.


ISO/IEC/IEEE 29119는 정적 테스팅에 대해서는 간접적인 설명과 참조만 제공하고, 동적 테스팅에 관한 절차, 기법, 문서화에 관한 내용을 다루고 있습니다. 그래서 이 표준을 먼저 읽어보는 것이 많은 도움이 됩니다.


출처: KSTQB ISO29119 국제표준 2017 Syllabus

이 글의 결론을 말씀드리겠습니다.
그냥 검증만 하는 것이 SW Testing이라고 많이 알고 있지만, SW Testing은 많은 국제표준기구들이 함께 오랫동안 고민해서 표준을 만들만큼 절차부터 기법, 문서화까지 체계적으로 접근했을 때 훨씬 좋은 품질의 SW 제품, 결과물이 만들어 집니다. ISO/IEC/IEEE 29119 Part 1(개념, 정의), Part 2(절차), Part 3(기법), Part 4(문서화) 의 내용을 탐독해 보면서 전체적인 내용을 파악해보고 각 파트에 관해서 하나하나 파악해 간다면 SW Testing에 관한 체계적인 접근을 할 수 있습니다.
각 파트에 관한 내용은 실제 업무에서 어떻게 연관이 되어 있고, 사용되고 있는지 사례 등과 함께 다른 글에서 정리해 보겠습니다.


'SW Testing' 카테고리의 다른 글

ISO 25010 품질 특성  (0) 2019.12.04