본문 바로가기
개발/소프트웨어 공학

소프트웨어 테스트

by re-hwi 2022. 1. 25.

이번 단원은 개발이 끝난 뒤 테스트를 하는 방법과 그 종류에 대해서 알아보았다.

 

그 중에는 처음 봐서 많이 생소한 것도 있었고, 나도 모르게 일상생활속에서 많이 접해봐서 익숙했던 방법도 있었다.

 

어렵다고만 생각했던 테스트 방법도 한번만 다시 생각해보면 정말 당연한 말들이였고 그동안 내가 접해본 수많은 프로그램에서 오류가 났던 유형도 이 단원에서 모두 나와 신기했다. 


테스트란 

: 소프트웨어의 품질을 확보하고 결함을 찾아내기 위해 수행되는 일련의 작업으로 개발된 소프트웨어의 품질의 평가와 품질향상을 위한 수정 작업 등을 포함한다. 

 

테스트 케이스 

: 모든 경우의 수에 대하여 테스트를 하는건 불가능. 따라서 높은 확률로 오류를 찾아낼 수 있는 좋은 시험 사례

 

일반적인 소프트웨어 테스트 목적

  • 소프트웨어 내에 존재하는 오류 발견
  • 소프트웨어 요구사항에 충족하는지 확인
  • 소프트웨어 명세에 충족하는지 확인
  • 소프트웨어 출시 이후 발생할 수 있는 결함 예방

V모델

: 테스트 프로세스를 개발 프로세스와 잘 매핑하여 정의한 라이프 사이클

V모델

V모델은 테스트 단계에서만 테스트를 하는것이 아닌 개발의 기본 모델인 폭포수 모델의 단계에서 차근차근 테스트를 준비할 수 있게 해주는 모델

 

요구사항 분석 → 인수실험, 시스템실험 계획

- 개발될 시스템에 대한 요구사항과 사용자의 필요를 분석

→ 소프트웨어가 사용자의 요구사항을 정확하게 실행하는가/ 시스템의 목적에 부합하는가

 

기본설계 → 시스템 실험 설계/ 통합시험 계획

- 일반적인 시스템 아키텍처 구성과 메뉴구조, 자료구조 등을 기술

 

상세설계 → 통합시험 설계/ 단위시험 계획

- 기본 설계 단계에서 정의된 모듈 항목을 더 세분화하여 각각의 모듈에 대한 상세 알고리즘을 작성

→ 프로그래머들이 코딩을 시작할 수 있도록 준비 

 

※ 단위시험

: 프로그램의 기본단위인 모듈에 대한 테스트. 

- 작성된 코드에 대한 분석 

- 화이트박스 테스트

- 대부분 비공식적이며 프로그래머에게 일임하는 경우가 많음 

- 각 모듈의 인터페이스, 지역 자료구조, 경계조건, 제어 흐름및 오류 처리 등 다양한 면을 확인하여야함

 

※ 통합시험

: 모듈들을 통합한 후 프로그램에 대한 테스트를 수행

- 통합된 컴포넌트 간의 인터페이스와 상호작용상의 오류를 발견하는 작업을 수행

- 블랙박스 테스트

- 개발자가 진행

- 점진적 방법으로 모듈을 하나하나씩 모두 통합 될 때까지 통합테스트를 수행하는것이 바람직

 

점진적 통합테스트 방법

하향식 통합과 상향식 통합이 있음

 

- 하향식 통합 : 상위모듈부터 통합

  • 깊이우선 통합, 넓이우선 통합 방식으로 나눌 수 있음

- 상향식 통합

: 하위 모듈로부터 점진적으로 통합하는 것

 

※ 시스템시험

: 모든 요소들이 적절히 조화를 이루어 시스템의 기능을 잘 만족하는지 확인하는 테스트

- 모듈이 통합된 후 시작

- 개발자와 다른 독립된 팀에 의해서 수행

- 무엇을 테스트하고 어떤 결과가 나왔는지 기록

 

시스템시험에서 흔히 이용되는 테스트

 

(1) 복구테스트

: 여러 방법으로 시스템을 고장나게 하여 시스템의 복구능력을 확인하는 방법

 

(2) 보안 테스트

: 시스템에 대한 어떤 불법 침입자의 침입을 막을 수 있는지 테스트

 

(3) 스트레스 테스트

: 비정상적인 상태에서 소프트웨어의 기능과 성능을 테스트 

ex) 정상 파일 크기 1mb일 때 100, 1000mb로 수행

 

(4) 성능 테스트 

: 시스템이 통합된 상태에서 시스템의 수행 성능에 대한 테스트 


인수 테스트

: 개발된 소프트웨어가 고객의 요구사항을 만족하는지 조사하는 시험

- 개발자, 테스터, 사용자가 수행

α - 테스트 : 개발자들이 프로그램을 수행하며 오류를 찾아냄

β - 테스트 : 사용자가 직접 프로그램을 사용하며 오류를 찾아냄

ex) 롤토체스 더블업

 

블랙박스 : 내부구조를 참조하지 않고 주어진 입력에 결과가 나오는가를 확인하는 방법

- 동등분할 : 테스트에서 발견할 수 있는 오류 종류에 따라 프로그램의 입력 데이터를 분류하여 테스트 케이스를 설계

- 경곗값 분석 : 입력 조건을 분석하여 경곗값 주위에서 테스트 데이터를 선택하는 것

 

화이트박스 : 내부 코드의 동작방식에 대한 테스트를 수행

(1) 문장 검증기준 : 추출된 테스트 케이스들이 테스트하려는 프로그램의 문장을 적어도 한 번씩 실행해보는 것

(2) 분기 검증기준 : 작성된 테스트 케이스의 집합에 의해 프로그램의 모든 분기 조건을 점검할 수 있는 것

(3) 조건 검증기준 : 조건문의 모든 조건식을 만족하는 경우와 만족하지 않는 경우를 테스트하는 것 

 

소프트웨어 테스트 프로세스

 

소프트웨어 테스트 프로세스

 

반응형

'개발 > 소프트웨어 공학' 카테고리의 다른 글

품질관리와 프로세스 개선  (0) 2022.02.05
유지보수  (0) 2022.02.03
프로그래밍과 코드 검사  (1) 2022.01.24
사용자 인터페이스 설계와 상세 설계  (0) 2022.01.24
디자인 패턴  (0) 2022.01.23

댓글