brunch

You can make anything
by writing

C.S.Lewis

by 호뎡 Jul 18. 2024

소프트웨어의 역방향 피라미드를
아시나요?

SI와 QA의 지혜의 산물, V모델


그동안 짧지 않은 시간이 지나면서 

글을 쓰는 데 익숙해지기 시작한 거 같아요


제 글 특성상 독백이 좀 많은 편인데...

재밌게 봐주신다면 좋을 거 같아서 욕심을 좀 부리게 되더라구요 ㅎㅎ


여러분들에게 질문하고 싶은 게 있어요.

혹시 필자(저)에 대해서 얼마나 알고 계시나요?


제가 갑자기 글을 포스팅하게 된 이유가 무엇일까요?



제가 원하는 것은 바로 조금 다른 시야에서 소프트웨어 테스팅의 개념들을 바라볼 수 있게 만드는 것이에요,

동종업계 종사자분들 뿐 아니라 다른 업종 관계자분들과 학생분들, 그리고 은퇴하신 분들까지도요.


동종 업계 종사자지만 이 분야에 대한 이해가 부족하다고 느끼시는 분들까지도요..!

왜냐하면 예전의 저 또한 그런 사람에 해당하기 때문이구요 :)


누군가 적절히, 그리고 재미있게 지도해주지 않으셨다면

저 또한 버티기 힘들지 않았을까 생각합니다!


업계 부흥을 위해..... 가 아니라 단지 소통하는 공간을 만들고 싶었습니다. 잘 되는 게 싫은 건 아니지만ㅎㅎ

 

기초, 기본에 충실하고 지루하지 않고 감각적인 그런 공간이요!

소프트웨어 테스팅을 정말 하나하나 음미해보고 싶은 것이랍니다. (*´∪`)


해당 포스팅이 기본에 충실하고 싶다?
이 이야기가 빠질 수 없죠...!!

V모델이 무엇인지 아시나요?



SW 기획과 떼려야 뗄 수 없는 관계이자

SW 테스팅의 모토, 진리 그 자체인 V모델입니다! 두둥 탁


요구사항, 분석, 설계, 구현의 과정을 거쳐서 소프트웨어에 형태가 생겼다면,

우리는 대망의 테스트를 진행하게 되죠


서로를 가리키고 있는 단어들이 서로의 업무의 목적이 되는 구조입니다...!


이 V모델로 말할 거 같으면..... 우리 선조들이 무한한 고뇌 끝에 피땀 흘려 완성한 기적의 산물과도 같습니다..!


적지 않은 실수를 반복하고 긴 시간을 보내며 완성된 기본 구조인데요

V모델을 통해 우리는 업무의 흐름을 쉽게 이해할 수 있게 되었죠.


결정적으로, 실수와 업무 반복을 줄이는 효과를 일으켰다고 생각합니다.

보고만 있어도 뿌듯함이 느껴지는데요??


그러면 V모델 형성 이전에는

시연 도중 이슈가 발생하면 어떻게 했던 거지.....?



아무튼, V모델을 통해 알 수 있는 사실이 있죠?

우리가 시스템을 만들 때, 고객의 요구사항을 분석하고, 그것을 충족할 수 있는 기능을 만들기 위해 설계를 진행하는 건 기본적인 순서라고 보시면 됩니다.


사진과 글을 공유하는 소셜 커뮤니티 웹이나 앱을 만들고 싶다고 요구하면, 우리는 게시글 작성이나 사진 찍기 등의 기능이 필요하겠죠?


게시글 업로드, 사진 찍기를 요구사항이라 하면, 텍스트 '저장', '수정', '삭제', '카메라 구동' 등으로 기능을 정의하는 것입니다..! 


그러면 우리가 만들고 싶은 소셜 커뮤니티의 구조가 생성되겠죠?


이제 본격적인 설계가 진행됩니다.

이후에 더 자세히 설명하겠지만, 기능을 실현시키기 위해서는 사용자가 '카메라 촬영'이라고 기기에게 명령을 내려야 합니다! 명령을 어떻게 전달할까요?


<촬영하기> 버튼을 누르면 되겠죠?

사용자와 기기의 '소통'을 위해서 만들어지는 게 인터페이스입니다!


모듈은 무엇일까요? 모듈은 기기가 명령을 받을 시, 실행할 행위의 로직입니다.

접속, 데이터 전달 등을 위해 꼭 필요한 구현 과정인데, 아직은 감이 잘 안 잡히시죠?


촬영하기 버튼을 누르고 명령이 적절하게 전달되었다면, 실제로 카메라 촬영을 할 수 있도록 내부로부터 행위를 이끌어내는 역할은 한다고 보시면 됩니다!


각각의 테스트는, 각 과정에서 나온 산물들을 검증해 보는 행위이고요.


단위 테스팅, 통합 테스팅, 시스템 테스팅, 인수 테스팅 각각의 테스트 레벨에 따라 테스트 전략, 테스트 기법, 테스트 수행 주체, 테스트 완료 기준 등이 전부 달라집니다..!


시스템이 요구사항과 어울리는지를 가장 중점으로 보는 인수테스팅은 정상동작, 오동작 등의 범위를 벗어나 고객, 사용자 관점에서 양질의 시스템을 갖추었는지 확인해야 하는데요.


때문에 요구사항 분석이 제대로 이루어지지 않는다면, 모듈을 하나하나 뜯어고쳐야 하는 불상사가 발생할 수도 있습니다...!!


따라서, 개발 초기 단계에서 테스팅을 점진적으로 수행하며 테스트 설계를 강화한다면 후반부에서 발생할 비용을 줄일 수가 있겠죠?



단위 통합 테스트도 방식의 차이가 있지만 시스템 테스트에서 테스트의 목적과 알아내고자 하는 시스템의 결함이 꽤 많은 종류로 분화되는데요, 


어떤 고객은 기능 실행 시 오류가 나지 않기를 바라고, 또 다른 경우는 클릭 시 반응 속도가 재빠르다거나 대다수의 스레드를 돌려야 하는 경우도 있고 참 많아요.


V모델에서 시스템 테스트는 기능과 연결되어 있지만

기능 그 자체인 동작에 대해서만 테스트하는 단계는 아니에요...!


시스템에서 기능의 다른 측면도 테스트 할 수 있지 않을까요?

개인적으로 궁금하니까 조금 더 찾아볼 필요가 있어 보이네요 :) 



작가의 이전글 SW 결함 예지력을 높이려면?(블랙박스 테스팅)
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari