QA

개알 - 1. 소프트웨어 테스팅의 기초

HAHAKO 2023. 6. 1. 14:29

개발자도 알아야할 소프트웨어 테스팅 실무


 

 

Part 1. 소프트웨어 테스팅의 기초 (Fundamental of software testing)

 

1.1 소프트웨어 테스팅

소프트웨어 테스팅은 왜 필요할까? 쓰잘데기 없는 행위는 아닐까?

소프트웨어가 올바르게 작동하지 않을 경우 다양한 문제가 발생한다.(금전적손실, 시간낭비, 비즈니스 이미지손상...)

테스팅은 이러한 소프트웨어 시스템의 문제를 최소화 하기위해 반드시 필요하다.


※  오류, 결함, 장애

오류, 결함, 장애에 대해 명확하게 이해해야한다.

우리가 SW시스템을 만든다고 생각을 해보자.

그러면 개발자들이 SW시스템을 열심히 코딩을 할 것이다. 하지만 인간인지라 "오류"를 범할 수 있다.

이때, 이 오류로 발생하는 것이 시스템의 "결함"이다.

시스템에 결함이 있더라도 시스템에 장애는 일어날 수도, 안일어 날 수도 있다.

하지만 시스템의 결함으로 인해 일어나는 현상을 시스템의 "장애" 라고 한다.

 

즉 결함은 인간의 오류로 인해 발생하며, 이 결함으로 인해 시스템의 장애가 일어난다.

 


※  테스팅과 품질

이러한 소프트웨어의 결함을 찾아냄으로서 우리는 소프트웨어의 품질을 보증하고 확신하게된다.

이러한 결함에 근거하여 소프트웨어의 기능, 비기능적 요구사항과 품질특성관련 품질측정이 가능하다.

이러한 품질측정은 소프트웨어 공학시간에 배우도록 하자.

 

이러한 테스트는 리스크를 고려하여 프로젝트의 제약사항을 고려해 충분히 해야한다.(리스크는 5장에서 다룬다)

 


1.2 소프트웨어 테스팅, 목적

소프트웨어의 테스팅은 소프트웨어가 사용자의 요구사항을 충족시키는지 확인하기 위해 결함을 발견하는 활동이다.

예전에는 시스템의 정상작동 여부 확인이 테스팅의 전부였다면, 현재에는 사용자의 기대수준과 요구사항에 맞게 구현되는지 확인하고, 이를 통해 결함을 발견하고, 최종적으로 개발프로젝트의 리스크 정보를 정량적 수치로 산출해내는 것이다.

 

일반적으로 테스팅을 소프트웨어를 실행하면서 테스트를 수행하는 동적 테스팅으로만 인식하는 경우가 많지만, 그것은 테스팅의 일부일 뿐이다. 테스팅은 테스트계획, 제어, 테스트조건선택, 테스트케이스 설계, 테스트 수행결과 점검 등 여러가지 일련의 활동들을 포함한다.

 

테스팅의 일반적인 목적은 아래와 같다.

- 남아있는 결함 발견

- 명세 충족 확인

- 사용자의 요구 충족 확인

- 결함 예방

...