brunch

You can make anything
by writing

C.S.Lewis

by 이지원 Oct 01. 2022

02화 정적 테스팅과 동적 테스팅

소프트웨어 테스팅

앞서 소프트웨어와 개발 수명 주기에 대해 알아보았습니다. 이번 장에서는 소프트웨어 테스팅이란 무엇인지 알아보고, 정적 테스팅과 동적 테스팅 개념을 알아보겠습니다.



소프트웨어 테스팅이란 무엇일까요? 사용하는 앱이 동작하지 않거나 예상하지 않았던 동작이 발생하면 사용자에게 문제가 생깁니다. 작동하지 않는 소프트웨어는 금전적 손실뿐 아니라 안전 등과 같은 치명적인 문제로 이어집니다. 생명을 다루는 의료 분야에선 부상 또는 사망과 같은 결과가 발생할 수도 있습니다.



이러한 문제를 예방하기 위해서 소프트웨어 품질을 평가하고 측정해야 합니다. 품질을 측정하기 위해 소프트웨어 테스팅이 필요합니다. 개발 중인 서비스의 품질 수준을 소프트웨어 테스팅을 통해 측정할 수 있습니다. 소프트웨어를 실행하며 테스트하는 동적 테스팅과 소프트웨어를 실행하지 않고 테스트하는 정적 테스팅에 대해 알아보겠습니다.



페이스북 로그인이 잘되는지 확인하기 위해 페이스북 앱을 켜고 로그인을 진행했습니다. 이것은 동적 테스팅입니다. 웹 또는 모바일에서 서비스 기능을 사용해보며 의도한 방식대로 동작하는지 검증하는 방법입니다.



문서를 통해 요구사항에 적합한 사용자 매뉴얼과 디자인 검토를 했다면 이것은 정적 테스팅입니다. 소프트웨어를 실행하지 않고 확인하는 것을 의미합니다.



이렇듯 소프트웨어 테스팅은 동적이며 정적인 활동입니다.

정적 테스팅은 Verification, 즉 제품을 제대로 만들고 있는가?(Are we building the product right?)를 의미합니다. 정적 테스팅의 목적은 소프트웨어가 제품 개발 목표를 달성하는지 추적하고 확인하는 것입니다. 개발 중인 제품이 요구사항을 충족해가고 있는지 확인하는 것이죠. 인스펙션, 리뷰, 워크 쓰루와 같은 활동이 있습니다.



Validation 의미를 지닌 동적 테스팅은 제품을 올바르게 만들었는지(Are we building the right product?) 확인하는 과정입니다. 단위 테스팅, 통합 테스팅, 블랙박스 테스팅, 화이트박스 테스팅 등이 동적 테스팅 활동입니다. 통합 시스템 인수 레벨에서 기능을 검증하거나 단위 테스팅과 같이 코드 레벨에서 검증하는 과정을 통해 개발 중인 제품이 올바르게 동작하고 있는 제품인지 확인하는 활동입니다.



이번 장에서는 소프트웨어 테스팅이란 무엇인지 알아보았고, 정적/동적 테스팅에 대한 개념을 알아보았습니다. 다음 장에서는 테스팅과 디버깅에 대해 알아보겠습니다.

매거진의 이전글 [소프트웨어 테스팅] 01화 소프트웨어 개발 수명 주기
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari