테스팅

테스팅에 대해 알아보자

 

2023년이 끝나가는 현재 우리 생활에 많은 영향을 끼치는 것이 있었으니

그건 바로...

따란!

 

여기 한 20대 남성의 하루 일과가 있습니다.

더보기

경기도에 살고 있는 A씨는 출근을 위해 스마트폰 알람을 듣고 아침 6시 30분에 일어나 씻고 아침을 먹은 후에 늦지 않게 지하철에 탑승하여 강남에 있는 회사까지 이동하였습니다.

카페인 없이는 머리가 돌아가지 않는 그는 출근하며 자판기에서 캔커피를 하나 뽑아 사무실에 출근하였습니다.

중요 프로젝트에 대한 발표를 담당한 그는 전날 작성한 PPT를 이용해 무난하게 발표를 마칠 수 있었습니다.

점심으로는 분식집으로 가서 키오스크를 이용해 맛있는 돈가스를 주문해서 먹었습니다.

업무를 마치고 퇴근한 A씨는 컴퓨터를 키고 그가 가장 즐겨하는 온라인게임 "은행잎마을의 전설"을 했습니다.

하지만 얼마 지나지 않아 피곤해진 그는 온수매트가 틀어진 침대에서 행복한 단잠을 잘 수 있었습니다.

 

-보람찼던 A 씨의 하루 끝-

위 글에서 볼 수 있듯이 아주 평범한 일상의 많은 부분에 소프트웨어가 연관되어 있다는 것을 알 수 있습니다.

 

그런데 만약에 소프트웨어에 알 수 없는 문제가 생긴다면

 

"스마트폰 알람이 울리지 않는다면"

"지하철 운행 시스템에 문제가 생긴다면"

"자판기 버튼 인식에 오류가 생긴다면"

"PPT파일에 오류로 인한 손상이 생긴다면"

"키오스크가 고장이 난다면"

"컴퓨터 OS 무한 업데이트에 걸린다면"

"게임에 심각한 버그가 터졌다면"

"온수매트 온도 조절이 안된다면"

 

생각만 해도 끔찍한 하루가 되었겠네요.

 


 

그래서 테스팅이랑 무슨 상관인데!

 

 

소프트웨어 테스팅(Software Testing): 소프트웨어의 품질을 평가하여 소프트웨어 장애의 발생 가능성을 줄이는 방법.

 

올바르게 작동하지 않는 소프트웨어는 금전, 시간, 업무 손실은 물론

심하게는 부상이나 사망에 이르는 심각한 문제를 일으킬 수 있습니다.

 

사용자에게 치명적인 문제점은 조기에 발견하는 것이 중요하다

 

거대한 규모의 소프트웨어 일 수록 오류 발견을 위한 테스트의 중요성이 나날이 높아지고 있으며

그로 인한 전문적인 테스트 인력의 필요성이 높아질 것이라 생각합니다.

 


 

테스트에 대한 오해?

Q.

 

A. 소프트웨어 테스팅이란 다양한 활동을 포함하는 프로세스이며, 이 친구가 말하는 것은 '테스트 실행'으로 프로세스 중 하나 일 뿐 입니다.

 

테스팅 프로세스는 테스트 계획, 분석, 설계, 구현, 진행 상황 및 결과 보고, 대상 품질 평가 등을 포함합니다.

 


 

Q. 테스팅을 위해서는 테스트 대상이 되는 컴포넌트나 시스템을 직접 실행하는 것 뿐인가요?

 

A. 테스팅 방법에는 크게 두 가지가 있습니다.

첫째, 소프트웨어를 직접 실행하여 검증하는 방법

둘째, 소프트웨어의 요구 사항, 소스코드와 같은 작업 산출물을 통해 검증하는 방법

첫 번째를 동적 테스팅, 두 번째를 정적 테스팅이라 합니다.

 

 

여기서 짚고 넘어갈 점은 "테스트 대상을 직접 실행하는 테스트만 있는 것이 아니다"라는 것입니다.

 


 

Q. 테스팅은 요구사항, 사용자 스토리와 같은 명세의 검증에만 국한된 활동인가요?

 

A.  아닙니다. 검증 뿐만 아니라 시스템이 운영 환경에서 사용자, 이해관계자의 요구를 만족시키는지를 확인하는 것도 테스팅에 포함됩니다.