사용 목적에 따른 테스트
테스트는 목적에 따라 다음과 같이 분류할 수 있다.
성능 테스트
- 성능 테스트는 소프트웨어의 효율성을 진단하는 테스트이다. 즉 사용자의 요구사항 중에서 성능과 관련된 요구사항을 시스템이 얼마나 준수하는지 테스트한다. 또 통합 시스템의 전후 관계에서 소프트웨어 실행 시간을 테스트한다. 일반적으로 예상된 부하에 대한 실행시간, 응답시간, 처리능력 등을 체크하고 자원 사용량 등을 테스트한다. 부하 테스트는 가상 사용자의 수를 늘려 가면서 부하의 양을 점차적으로 늘려 가는데, 이때 초당 처리 능력(TPS)과 요청당 응답 기간(KT)의 변화 추이를 측정한다.
스트레스 테스트
- 스트레스 테스트는 평소보다 많은 비정상적인 값, 양, 빈도, 부피 등으로 부하를 발생시켜 부하가 최고치인 상황에서 시스템의 반응을 살피고 이때 발생하는 오류를 찾는 것이다. 즉 비정상적이고 과도한 부하 상황에서 시스템이 잘 견디는지, 발생하는 오류에는 어떤 것들이 있는지를 확인한다.
보안 테스트
보안(Security) 테스트에서는 부당하고 불법적인 침입을 시도해, 시스템을 보호하기 위해 구축된 보안 시스템이 불법적인 침투를 잘 막아내는지 테스트한다. 외부 해커의 입장에서 비밀번호를 알려고 시도해보고, 구축해 놓은 방어 체계를 뚫거나 파괴하는 등 여러 가지 방법을 사용한다.
안정성 테스트
소프트웨어는 한 번 설치되면 오랫동안 운영된다. 이렇게 운영되는 동안 문제없이 안정적으로 수행되어야 한다. 따라서 안정성(stability) 테스트는 실제 운영되는 것처럼 오랫동안 테스트를 할 수는 없지만 며칠 동안 부하를 주면서 시스템이 안정적으로 돌아가는지를 테스트하는 것이다. 예를 들어 1주일 정도 지속적으로 부하를 주면서 시스템 상황을 관찰한다.
또한 소프트웨어 프로그램은 메모리가 필요할 때 요청해 사용하고, 사용한 후에는 반납해야 한다. 만약 사용한 후 반납하지 않으면 사용할 수 있는 메모리양은 점점 줄어든다. 이런 현상을 메모리 누수(memory leak)라 하는데, 안정성 테스트에서는 이렇게 자원을 사용한 후에 정상적으로 반납했는지를 관찰해 문제점을 파악한다.
복원 가능성 테스트
소프트웨어가 문제가 발생해 멈추었을 때 시스템 자체적으로 복구해서 회복할 수도 있고, 기술자들이 튑되어 복구하는 경우도 있다. 즉 복원 가능성 테스트는 소프트웨어를 고장 나게 해놓고 소프트웨어 복구가 잘 되는지 확인해보는 테스트 이다.
만약 소프트웨어에서 자동으로 회복이 이루어진다면 재초기화가 제대로 수행되는지, 데이터는 완전하게 복구 되었는지, 재시작이 정상적으로 이루어 졌는지 등과 같은 소프트웨어 회복의 완벽성을 평가한다. 만약 기술자에 의해 소프트웨어가 복구된다면 고장 수리에 소요되는 평균 시간이 허용 범위 한계치 내인지 등을 복원 가능성 테스트에서 검사한다. 이러한 복원 간ㅇ성 테스트는 운영체제,DBMS, 통신용 소프트웨어의 안정성 테스트에 적용할 수 있다.
'전공 > 소프트웨어공학' 카테고리의 다른 글
[소프트웨어 공학] 시각에 따른 테스트 (0) | 2022.06.19 |
---|---|
[소프트웨어 공학] 소프트웨어 테스트의 분류 (0) | 2022.06.19 |
[소프트웨어 공학] 소프트웨어 테스트 (0) | 2022.06.19 |
[소프트웨어 공학] 행위 패턴(Behavioral Patterns) (0) | 2022.06.19 |
[소프트웨어 공학] 구조 패턴(Structural Patterns) (0) | 2022.06.19 |