클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

[소프트웨어 개발] 4장 애플리케이션 테스트 관리 2 - 애플리케이션 통합 테스트 본문

자격증 공부/정보처리기사 필기

[소프트웨어 개발] 4장 애플리케이션 테스트 관리 2 - 애플리케이션 통합 테스트

huenuri 2024. 7. 31. 13:14

이어서 애플리케이션 테스트하는 방법을 학습하고 있다. 잠시 다른 일을 하느라 공부에 집중을 하지 못하기도 했지만 다시 마음을 잡고 자리에 앉아본다. 집에서 공부를 하는데도 난 소리에 민감한지 주위에서 시끄러운 소리가 들리면 공부에 집중을 못하는 것 같다.

이제 어느 정도 해결이 되어 다시 마음을 잡아본다. 이럴 때 생각나는 영화가 있지만 바로 학습을 진행해볼 것이다!

 

학습 내용

  1. 결함 관리 도구
  2. 테스트 자동화 도구
  3. 통합 테스트

 

학습 시간

아침 10시 20분 ~ 12시 <1시간 40분 소요>


 

 

 

1. 결합 관리 도구 🎀🎀

개념

단계별 테스트 수행 후 발생한 결함의 재발 방지와 유사 결함 발견시 처리 시간 단축을 위해 결함을 추적하고 관리하는 도구

 

프로세스

 

 

 

 

결함의 식별

1. 결함(Defect)의 개념

  • 개발자 오류로 인해 만들어지는 문서 또는 코딩 상의 결점으로 소프트웨어가 개발자가 설계한 것과 다르게 동작하거나 다른 결과가 발생하는 현상
  • 결함을 제거하지 않으면 SW 제품이 실패하거나 문제가 발생

 

 

 

 

2. 심각도별 분류

애플리케이션에 발생한 결함이 어떤 영향을 미치며, 그 결함이 얼마나 치명적인지를 나타내는 척도

 

 

 

 

3. 우선순위

발생한 결함이 얼마나 빠르게 처리되어야 하는지를 결정하는 척도. 결함 심각도가 높아도 우선순위가 반드시 놋은 것은 아니며, 애플리케이션의 특성에 따라 우선순위가 결정될 수 있음


 

 

 

 

2. 테스트 자동화 도구 🎀🎀

 

개념

  • 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현
  • 테스트 시간 단축과 인력 투입 비용을 최소화하며, 쉽고 효율적인 테스트를 수행할 수 있는 방법

 

장단점

 

유형

1. 정적 분석 도구(Static Analysis Tools)

  • 만들어진 애플리케이션을 실행하지 않고 분석하는 방법
  • 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해서 사용
  • 테스트를 수행하는 사람이 자성된 소스 코드에 대한 이해를 바탕으로 도구를 이용해서 분석하는 것
  • 자료 흐름이나 논리 흐름을 분석하여 비정상적인 패턴을 찾음

 

2. 테스트 실행 도구(Test Execution Tools)

  • 테스트를 위해 작성된 스크립트를 실행하는 도구
  • 작성된 스크립트는 특정 데이터와 테스트 수행 방법을 포함하고 있음

테일러링(Tailoring)
프로젝트의 특성과 필요에 따라 소프트웨어 개발 프로세스를 적절한 규모로 가공하는 과정 및 방법론

 

 

3. 성능 테스트 도구(Performance Test Tools)

애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률에 대해 가상의 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성하였는지를 확인하는 도구

 

4. 테스트 통제 도구(Test Control Tools)

  • 테스트 계획 및 관리를 위한 테스트 관리 도구, 테스트 수행에 필요한 데이터와 도구를 관리하는 형상 관리 도구, 테스트에서 발생한 결함에 대해 관리하거나 협업을 지원하기 위한 결함 추적/관리 도구 등이 있음
  • 조직의 요구사항에 최적화된 형태의 정보를 생성, 관리하기 위해 수트레드시트 등 다른 도구들과 연계하여 사용할 수도 있음

 

 

5. 테스트 장치

개념

  • 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분. 테스트를 지원하기 위한 코드와 데이터를 말함
  • 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성

테스트 장치 구성요소

 

 

 

 

6. 테스트 단계별 테스트 자동화 도구

단계에 따라 자동화를 지원하는 테스트 도구가 있음

 

 

 

 

테스트 케이스 자동 생성 도구를 통한 테스트 데이터 도출 방법


 

 

 

 

3. 통합 테스트

개념

  • 어플리케이션 통합 테스트 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 테스트
  • 단위 테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지 확인하는 것

 

수행 방법의 분류

1. 하향식 통합 테스트(Top Down Integration Test)

개념

  • 메인 제어 모듈(프로그램)로부터 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하는 테스트
  • 메인 제어 모듈에 통합되는 하위 모듈과 최하위 모듈은 '깊이-우선' 또는 '너비-우선' 방식으로 통합됨

 

수행 단계

스텁(Test Stub)

  • 하향식 통합시험을 위해 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈
  • 모든 하위 모듈 및 컴포넌트를 대신하는 더미 모듈로 상위 모듈에 의해 호출되는 하위 모듈의 역할을 함

 

 

 

2. 상향식 통합 테스트(Bottom Up Integration Test)

개념

애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 점진적으로 상위 모듈과 함께 테스트하는 기법

 

 

수행 단계

드라이버(Driver)

  • 상향식 통합시험을 위해 테스트의 대상이 되는 하위 모듈을 호출하는 상위의 모듈. 필요에 따라 파라미터를 전달하는 가상의 모듈
  • 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 모듈

 

 

 

 

통합 테스트 수행 방법 간 비교

  • 상향식 통합 테스트와 하양식 통합 테스트 방식을 결합한 샌드위치 통합 테스트 방식도 있음
  • 샌드위치 통합 테스트는 하위 프로젝트가 있는 큰 규모의 통합 테스트에서 사용하는 방식이고, 병렬 테스트와 시간 절약이 가능

 

 

 

학습을 마치고

이번 단원은 강의를 들을 때 집중을 잘 하지 못하고 그냥 읽고 문제를 맞추기에 바빴던 것 같다. 처음 들으면 이상하게도 귀에 잘 들어오지 않고 딴 생각이 많이 난다.
그러다가 문제를 접하면 이런 식으로 문제가 출제된다는 게 보이며 그때서야 개념이 들어오는 것 같다.

시험 준비 기간이 조금 길면 두번씩 강의를 듣고 2~3회독을 할 수도 있겠지만 한달밖에 없기에 1회독도 참 빠듯한 시간이다. 우선은 빠르게 학습하는 것을 목표로 삼는 수밖에 없겠다.