소프트웨어공학

시스템 테스트_기능, 신뢰성, 사용 용이성, 성능, 호환성, 보안, 강도, 구성, 볼륨, 회복(복구), 민감도, 전개, recovery, sensitivity, 회귀, smoke, sanity, 테스팅, 인터페이스, 객체지향, 빅뱅

스윙스윙 2021. 12. 12. 14:25

▣ 시스템 테스트_기능, 신뢰성, 사용 용이성, 성능, 호환성, 보안, 강도, 구성, 볼륨, 회복(복구), 민감도, 전개,  recovery, sensitivity, 회귀, smoke, sanity, 테스팅, 인터페이스, 빅뱅

외부기능테스트
(Functional Test)
사용자나 다른 시스템 시각으로 요구분석 단계에서 정의된 외부 명세서의 충족 여부 테스트
내부기능 테스트
(Facility Test)
사용자 지침서와 요구명세서를 비교, 요구사항서에 기술된 기능의 만족여부 판정, 체크 리스트 사용
신뢰성 테스트
(Reliability Test)
SW의 신뢰성 목표-오류나 고장 발생 빈도 테스트
시스템 가동 요구사항 별 년간 운영시간 측정
사용성 테스트
(Usability Test)
애플리케이션을 얼마나 쉽게 사용하는지와 제어들을 처리하는 융통성(flexibility), 그것들의 객체를 충족시키기 위한 시스템 능력에 주로 초점
성능테스트
(Performance Test)
특정 워크로드에서 애플리케이션의 안정성과 속도, 확장성 및 반응성이 어떻게 유지되는지를 판별하는 비기능적 소프트웨어 테스트 기법
응답속도, 처리량, 처리속도 등
스모크 테스트, 부하 테스트, 스파이크 테스트, 안정성 테스트
호환성 테스트
(Compatibility Test)
기존 시스템과의 호환성, 변환성 테스트
보안테스트
(Security Test)
SW 자체의 보안 체계를 점검하는 테스트(불법적인 SW 사용 금지, 외부 불법 침입 대응)
강도테스트
(Stress 테스트)
정해진 시간 내에 과중한 양을 처리할 수 있는지를 테스트
구성테스트
(Configuration Test)
시스템이 지원하는 HW, SW의 구성에 대한 테스트
볼륨테스트
(부피테스트)
프로그램이 대용량 데이터를 처리할 수 있는지 테스트
대량의 리소스가 소요되므로 꼭 필요한 부분을 선정하여 수행
회복(복구)테스트
(Recovery Test)
복구가 정상대로 수행되는지를 점검하는 시험으로 소프트웨어 장애가 일어나도록 한 후 복구가 적절히 수행되는지 검사하는 시스템 테스트의 일종을 말함소프트웨어 솔루션이 믿을 수있고, 신뢰할 수 있으며 가능한 충돌들로부터 성공적으로 회복시킬 수 있다는 것을 입증하기 위해 수행
프로그램 오류, 하드웨어 실패, 데이터 오류 극복
평균 회복시간 최소화(MTTR:Mean Time To Recovery), 평균회복 시간에 대한 서비스 레벨 합 도출
민감도테스트
(sensitivity testing)
유효한 입력 데이터를 조합하여 입력하였을 경우 에러가 발생되는 상황이 있는지를 조사하는 테스트 방법
전개테스트
(deployment testing)
만들어진 SW를 운영할 시스템에 설치할 때 수행하는 것으로 SW가 동작할 환경, 설치SW자체, 사용자 제공문서 등에 대한 점검을 말함

* 회귀 테스트(regression testing)는 최근 프로그램이나 코드 변경이 기존 기능에 나쁜 영향을 미치지 않았 음을 확인하는 소프트웨어 테스트 유형

 

* Smoke Testing vs Sanity Testing

 기초 안전성 테스팅(Smoke Testing) 정밀 테스팅(Sanity Testing) 
프로그램의 중요 기능이 잘 돌아가는지를 확인 새로운 기능 / 고쳐져 왔던 버그들을 확인하기 위해 수행
이 테스팅의 목적은 좀 더 엄격한 테스팅을 계속 진행하기 위해 시스템의 "안정성"을 검증하는 것 이 테스팅의 목적은 좀 더 엄격한 테스팅을 계속 진행하기 위해 시스템의 "합리성"을 검증하는 것
개발자나 테스터가 이 테스팅을 수행 보통 테스터가 수행
보통 문서화되거나 스크립트화 됨 보통 문서화되거나 스크립트화 되지 않음
리그레션(회귀) 테스팅의 일부(subset) 인수 테스팅의 일부임
전체 시스템을 다 움직이게(exercise) 함 전체 시스템 중 개개의 컴포넌트만을 움직이게 함 
일반 건강 검진과 같음 특수 건강 검진과 같음

 


2012년 35번

정답 : 4번

외부 기능테스트
(Functional Test)
사용자나 다른 시스템 시각으로 요구분석 단계에서 정의된 외부 명세서의 충족 여부 테스트
내부기능 테스트
(Facility Test)
사용자 지침서와 요구명세서를 비교, 요구사항서에 기술된 기능의 만족여부 판정, 체크 리스트 사용
볼륨테스트
(부피테스트)
프로그램이 대용량 데이터를 처리할 수 있는지 테스트
대량의 리소스가 소요되므로 꼭 필요한 부분을 선정하여 수행
강도테스트
(Stress 테스트)
정해진 시간 내에 과중한 양을 처리할 수 있는지를 테스트
사용성 테스트
(Usability Test)
애플리케이션을 얼마나 쉽게 사용하는지와 제어들을 처리하는 융통성(flexibility), 그것들의 객체를 충족시키기 위한 시스템 능력에 주로 초점
보안테스트
안전테스트
(Security Test)
SW 자체의 보안 체계를 점검하는 테스트(불법적인 SW 사용 금지, 외부 불법 침입 대응)
성능테스트
(Performance Test)
특정 워크로드에서 애플리케이션의 안정성과 속도, 확장성 및 반응성이 어떻게 유지되는지를 판별하는 비기능적 소프트웨어 테스트 기법
응답속도, 처리량, 처리속도 등
스모크 테스트, 부하 테스트, 스파이크 테스트, 안정성 테스트
구성테스트
(Configuration Test)
시스템이 지원하는 HW, SW의 구성에 대한 테스트
호환성 테스트
(Compatibility Test)
기존 시스템과의 호환성, 변환성 테스트
신뢰성 테스트
(Reliability Test)
SW의 신뢰성 목표-오류나 고장 발생 빈도 테스트
시스템 가동 요구사항 별 년간 운영시간 측정
감도시험
(sensitivity testing)
민감도 테스트
감도시험은 유효한 입력 데이터를 조합하여 입력하였을 경우 에러가 발생되는 상황이 있는지를 조사하는 테스트 방법
전개시험
(deployment testing)
전개시험은 만들어진 SW를 운영할 시스템에 설치할 때 수행하는 것으로 SW가 동작할 환경, 설치SW자체, 사용자 제공문서 등에 대한 점검을 말함
복구테스트
(Recovery Test)
복구시험은 복구가 정상대로 수행되는지를 점검하는 시험으로 소프트웨어 장애가 일어나도록 한 후 복구가 적절히 수행되는지 검사하는 시스템 테스트의 일종을 말함
소프트웨어 솔루션이 믿을 수있고, 신뢰할 수 있으며 가능한 충돌들로부터 성공적으로 회복시킬 수 있다는 것을 입증하기 위해 수행

프로그램 오류, 하드웨어 실패, 데이터 오류 극복
평균 회복시간 최소화(MTTR:Mean Time To Recovery), 평균회복 시간에 대한 서비스 레벨 합 도출

* 회귀 테스트(regression testing)는 최근 프로그램이나 코드 변경이 기존 기능에 나쁜 영향을 미치지 않았음을 확인하는 소프트웨어 테스트 유형

소프트웨어의 변경을 가한 후에 수정부붙 뿐만 아니라 다른 부분이 영향을 받았는지를 검사하기 위해 수행하는 테스팅 기법

테스트 중심 개발(test driven development)방법의 자동화 테스팅 환경에서 많이 사용되는 테스팅 기법

 

* Smoke Testing vs Sanity Testing

 기초 안전성 테스팅(Smoke Testing) 정밀 테스팅(Sanity Testing) 
프로그램의 중요 기능이 잘 돌아가는지를 확인 새로운 기능 / 고쳐져 왔던 버그들을 확인하기 위해 수행
이 테스팅의 목적은 좀 더 엄격한 테스팅을 계속 진행하기 위해 시스템의 "안정성"을 검증하는 것 이 테스팅의 목적은 좀 더 엄격한 테스팅을 계속 진행하기 위해 시스템의 "합리성"을 검증하는 것
개발자나 테스터가 이 테스팅을 수행 보통 테스터가 수행
보통 문서화되거나 스크립트화 됨 보통 문서화되거나 스크립트화 되지 않음
리그레션(회귀) 테스팅의 일부(subset) 인수 테스팅의 일부임
전체 시스템을 다 움직이게(exercise) 함 전체 시스템 중 개개의 컴포넌트만을 움직이게 함 
일반 건강 검진과 같음 특수 건강 검진과 같음

 


2018년 47번

정답 : 2번
(가)는 시스템 테스트에 해당되고 시스템 테스트와 가장 먼 테스트 기법은 빅뱅 테스트임

* 빅뱅 테스트 : 통합테스트 기법 중 하나로 모듈을 한꺼번에 통합하여 테스트하는 방법

 

 

2013년 34번

정답 : 1번

회귀 테스트(regression testing)는 최근 프로그램이나 코드 변경이 기존 기능에 나쁜 영향을 미치지 않았음을 확인하는 소프트웨어 테스트 유형

소프트웨어의 변경을 가한 후에 수정부붙 뿐만 아니라 다른 부분이 영향을 받았는지를 검사하기 위해 수행하는 테스팅 기법

테스트 중심 개발(test driven development)방법의 자동화 테스팅 환경에서 많이 사용되는 테스팅 기법

 


2013년 48번

정답 : 4번

결함보고서를 만드는 사람은 테스트요원이나 QA임

결함보고서를 받아 보는 사람은 해당 결함을 수정할 수 있는 개발자임

결함보고서를 만드는 사람은 결함을 제거하기 위한 해결방안을 알 수 없음

 


2014년 37번

정답 : 2번

테스팅은 소스코드 뿐 아니라 요구사항 명세서, 설계서 등의 산출물을 갖고도 수행할 수 있으며 테스트 케이스는 요구분석 단계나 설계 단계에도 만들 수 있음

 


2015년 41번

정답 : 4번

가장 거리가 먼 테스트 가용성 테스트(availability test)임

 

'동시에 100명 이상의 사용자가 접속하여도 원활한 동작을 제공' -> 성능 테스트(performance test)

'다양한 장치(PC, 안드로이드폰, 아이폰, 다양한 태블릿 기종)를 지원' -> 호환성 테스트(compatability test)

'사용법에 대한 온라인 도움말이 제공' -> 사용성 테스트(usability test)

 


2016년 36번

정답 : 4번

기능에 대한 구현 여부는 단위 테스트에서 진행

컴포넌트 시험 중 인터페이스 시험에서 발견할 수 있는 오류의 유형에는 인터페이스 오용, 인터페이스 오해, 타이밍 오류가 있음

인터페이스 오용 - 전달되는 매개변수들의 형이 잘못된 경우나 매개변수들의 순서나 개수가 틀린 경우 발생

인터페이스 오해 - 정렬되지 않은 배열을 가지고 이진 탐색

타이밍 오류 - 실시간 시스템에서 공유 메모리나 메시지 전달 인터페이스를 사용할 때 발생

 


2017년 28번

정답 : 2번

베타(beta)테스팅은 인수테스트의 일종으로 객체지향 S/W와 무관하게 사전에 정해진 소수의 사용자를 대상으로 수행하는 테스팅 방식을 의미함

슬라이싱(slicing) 기반 테스팅 사용자와 시스템의 상호관계를 표현하는 유즈케이스의 다양한 이벤트의 경로 중 하나의 실행 경로를 추출하여 수행하는 테스팅 기법
상태기반(state based) 테스팅 특정 시점마다 상태가 변하는 객체 지향 프로그램(OOP)의 특성을 활용하여 예상값을 객체의 상태와 비교하는 테스팅 기법
MM-Path 테스팅 유즈케이스의 연속된 메시지 호출 집합 중 하나의 테스트 케이스를 이루는 작은 메시지 호출의 집합(MM-Path)를 활용한 테스팅 기법

 


2017년 31번

정답 : 3번

설치 테스팅은 개발환경이 아닌 현장에 시스템 및 가동을 통해 수행하는 시험임

H/W구성, S/W성능, 파일 분배나 적재, 타 S/W와 연결 시도 시 문제점 등을 검토함

 


2017년 38번

정답 : 3번

회귀 시험(regression test)은 코드 변경으로 인해 새로운 오류가 발생하는 지 여부를 검증하기 위해 수행함. 즉, 수정된 코드가 기존 기능에 영향을 주는지 테스트함

 

변경 과정에서 변경된 코드 부분 30

변경으로 인해 영향받는 코드 부분 10

변경 과정에서 새롭게 추가된 코드 부분 10

총 50

 

* 다른 해석

변경 이전 테스트 케이스 개수 100개중 변경 이후 프로그램 90개 테스트 케이스 중 변경으로 새롭게 추가된 코드(Ca) 테스트케이스 10개와 수정하면서 변경된 코드(Cm) 테스트 케이스 30개를 제외한 50개 테스트케이스를 수행함