소프트웨어 테스트개발자뿐만 아니라 개발자로 취업하고 싶은 당신이 읽어야 할 필독서
17년차 QA가 알려주는 소프트웨어 테스트 가이드 제로베이스에서 취업까지, 부트캠프 QA편_남효진
개발자에겐 개발능력도 중요하지만 테스트능력도 무시못한다고 생각한다.
이제까지 소프트웨어 테스트관련책을 본적이 없어서 신기했고, 웹개발자라도 읽어보면 너무 좋을 것 같은 책이다.
가장 중요한 점은 이 책, 부트캠프QA는 현직에 실제로 계신 17년차 QA가 집필, 실무에서 겪는 테스팅에대해 자세히 적어놓았기에 테스팅의 중요성을 모른다면 무조건 봐야하는 책이라고 할 수 있을 것 같다.
총 4주에 걸쳐 6개의 강의로 소프트웨어 테스팅의 개념과 테스터의 역할, 실무 테스팅 기법까지 다루고 있다.
QA 엔지니어링의 기본 이해
좋은 소프트웨어 개발자라면 코드 작성뿐만 아니라 품질 보증(QA)에도 능숙해야한다. QA는 소프트웨어 제품이 출시되기 전에 잠재적인 문제를 식별하고 해결하는 프로세스이며, 이 책은 QA 엔지니어로서 알아야 할 기본 사항과 테스트방법 실무에서 부딛히는 에러, 버그, 버전관리를 다룬다.
소프트웨어 품질관리자의 명칭과 역할?
소프트웨어 품질 관리자는 조직 내에서 소프트웨어 제품의 품질을 책임지는 역할, 종종 "QA(Quality Assurance)" 또는 "QC(Quality Control)"라는 직함으로 불리기도 한다.
소프트웨어 테스트 설계 기법
테스팅을 제대로 하려면 테스트 설계가 무엇보다 중요하며, 설계가 잘못되면 아무리 많은 시간과 노력을 들여도 원하는 결과를 얻을 수 없다고 생각한다. 이 책에서는 아래의 설계기법을 다룬다.
* 명세 기반 테스트 설계: 가장 기본적인 기법으로, 시스템의 요구사항 명세를 바탕으로 테스트 케이스를 도출, 블랙박스 테스트라고도 불리며, 입력값과 예상 출력값만 고려하기 때문에 코드를 직접 보지 않고도 테스트를 수행할 수 있음.
* 구조 기반 테스트 설계: 모듈이나 컴포넌트 등 시스템의 구조를 중심으로 테스트 케이스를 설계하는 방식, 경계값 분석, 동등 분할, 결정 테이블 테스트 등이 해당
* 경험 기반 테스트 설계: 개발자나 테스터의 경험을 바탕으로 테스트 케이스를 도출하는 방식, 주로 휴리스틱 테스트라고 불리며, 직관이나 경험에 의존하기 때문에 주관적이고 비효율적일 수 있지만, 빠르게 테스트를 수행할 수 있다는 장점이 있음.
소프트웨어 테스트 종류
테스트는 목적과 대상에 따라 다양한 종류로 나눌 수 있으며, 부트캠프QA에서는 아래 테스트방법들을 다룬다.
* 단위 테스트(Unit Test): 모듈이나 함수 등 작은 단위의 코드를 대상으로 하는 테스트로, 개발자가 직접 작성, 프로그램의 각 구성 요소가 독립적으로 작동하는지 확인하며, 오류를 조기에 발견하여 수정할 수 있게 함.
* 통합 테스트(Integration Test): 여러 모듈이나 컴포넌트를 결합하여 시스템 전체를 대상으로 하는 테스트, 단위 테스트에서 발견하지 못한 오류를 찾아내며, 시스템의 성능과 안정성을 검증.
* 시스템 테스트(System Test): 실제 사용자의 입장에서 시스템을 테스트하는 것으로, 기능 테스트와 성능 테스트로 나뉨, 기능 테스트는 시스템이 요구사항을 충족하는지 확인하고, 성능 테스트는 시스템의 부하와 응답 시간 등을 측정하여 성능을 평가함.
* 회귀 테스트(Regression Test): 이전에 테스트했던 기능이 수정되거나 추가되었을 때, 해당 기능이 다른 기능에 영향을 미치지 않는지 확인하는 테스트, 변경 사항이 있을 때마다 반복적으로 수행해야 하며, 시스템의 안정성을 유지하는 데 중요한 역할을 함.
* 보안 테스트(Security Test): 시스템의 보안 취약점을 찾기 위한 테스트로, 해킹 공격 등을 시뮬레이션하여 보안 위협을 식별하고 대응 방안을 마련.
실무에서 경험하는 테스팅
실제 현장에서의 테스팅은 이론과는 조금 다를 수 있으며,
프로젝트의 규모와 복잡도에 따라 다양한 상황에 직면하게 되며, 예상치 못한 문제들도 발생할 수 있다.
실제 사례들을 들어주고 리스크파악, 리스크 기반 테스트, 관리 그리고 앞서 배웠던 테스트방법들을 통해 사례에 맞게 해결할 수 있는 방법들을 제시하기때문에 비전공자/전공자 구분없이 개발자를 꿈꾸는 개발자라면 꼭 한번쯤은, 된다면 두번은 읽어보면 좋은 책이라고 생각한다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다."