애플리케이션 테스트
2020 정보처리기사 실기 요약 - 운영체제
1. 애플리케이션 성능 측정 지표[처응경자]
처리량 : 애플리케이션이 주어진 시간에 처리할 수 있는 트랜잭션 수
응답시간 : 응답 후 입력에 대한 응답 출력(완료된 상태)
경과 시간 : 요구를 입력해 트랜잭션 처리 후 출력(완료가 되지 않은 상태)
자원사용률 : 애플리케이션이 트랜잭션을 처리하는 동안의 CPU사용량, 메모리 사용량
2. 블랙박스 테스트 기법[동경결상 유분페]
동등 분할 테스트 : 입력 데이터의 영역을 유사한 도메인별로 유효 값/ 무효 값을 그룹핑하여 대푯값 테스트 케이스를 도출하여 테스트하는 기법
경계 값 분석 테스트 : 동기분할 후 경계 값 부분에서 오류 발생 확률이 높기에 경계 값을 포함하여 테스트 케이스를 설계하여 테스트하는 기법
결정 테이블 테스트 : 요구사항의 논리와 발생조건을 테이블 형태로 나열하여, 조건과 행위를 모두 조합하여 테스트하는 기법
상태전이 테스트 : 테스트 대상/시스템이나 객체의 상태를 구분하고, 이벤트에 의해 어느 한 상태에서 다른 상태로 전이되는 경우의 수를 수행하는 테스트 기법
유스케이스 테스트 : 시스템이 실제 사용되는 유스케이스로 모델링 되어 있을 때 프로세스 흐름을 기반으로 테스트 케이스를 명세화하여 수행하는 테스트 기법
분류트리 테스트 : SW의 일부 또는 전체를 트리 구조로 분석 및 표현하여 테스트케이스를 설계하여 테스트하는 기법
페어와이즈 테스트 : Test Data 값들 간에 최소한 한 번 씩을 조합하는 방식이며, 이는 커버해야 할 기능적 범위를 모든 조합에 비해 상대적으로 적은 양의 테스트 세트를 구성하기 위한 테스트 기법
3. 화이트박스 테스트의 제어 구조 검사
조건 검사 : 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계 기법
루프 검사 : 프로그램의 반복 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
데이터 흐름 검사 : 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞춰 실시하는 테스트 케이스 설계 기법
4. 코드 커버리지
구문 커버리지(Statement Coverage) : 테스트 스위트에 의해 실행된 구문이 몇 퍼센트인지 측정하는 것. 다른 커버리지에 비해 가장 약함
결정 커버리지(Decision Coverage, Branch Coverage) : 테스트 스위트에 의해 실행된 결정 포인트 내의 전체 조건식이 최소한 참(True)이 한번, 그리고 거짓(False)이 한번의 값을 갖는지 측정하여 퍼센트로 표현하는 것. 개별 조건식의 개수와 상관없이 테스트 케이스의 최소 개수는 2 개. 조건, 조건/결정 커버리지에 비해 약함
조건 커버리지(Condition Coverage) : 전체 조건식의 결과와 관계없이 각 개별 조건식이 참 한번, 거짓 한번을 모두 갖도록 개별 조건식을 조합하는 것. 결정 커버리지 보다 강력한 형태의 커버리지.
조건/결정 커버리지(Condition/Decision Coverage) : 전체 조건식의 결과가 참 한번, 거짓 한번을 갖도록 각 개별 조건식을 조합하는데, 이때 각 개별 조건식도 참 한번, 거짓 한번을 모두 갖도록 개별 조건식을 조합하는 것으로 결정 커버리지와 조건 커버리지를 포함하는 커버리지.
변경조건/결정 커버리지(Modify Condition/Decision Coverage) : Mc/DC는 각 개별 조건식이 다른 개별 조건식에 무관하게 전체 조건식의 결과에 독립적으로 영향을 주도록 함으로써 조건/결정 커버리지를 향상시킨 것. 결정 커버리지, 조건/결정 커버리지 보다 강력
다중조건 커버리지(Multiple Condition Coverage) : 결정 포인트 내에 있는 모든 개별 조건식의 모든 가능한 논리적 조합을 고려한 가장 강력한 논리적 수준의 100% 커버리지를 보장.
5. 프로그램 실행 여부에 따른 애플리케이션 테스트
정적 테스트 : 프로그램을 실행하지 않고 명세서나 소스 코드 대상으로 분석하는 테스트
동적 테스트 : 프로그램을 실행해 오류를 찾는 테스트로, 소프트웨어 개발 모든 단계에서 테스트를 수행할 수 있음
6. 테스트 오라클
참 오라클 : 모든 테스트 케이스의 입력 값에 대해 기대하는 결과를 제공하는 오라클로, 발생된 모든 오류를 검출 할 수 있음
샘플링 오라클 : 특정한 몇몇 테스트 케이스의 입력 값들에 대해서만 기대하는 결과를 제공하는 오라클
추정 오라클 : 샘플링 오라클을 개선한 오라클로, 특정 테스트 케이스의 입력값에 대해 기대하는 결과를 제공하고, 나머지 입력 값들에 대해서는 추정으로 처리하는 오라클
일관성 검사 오라클 : 애플리케이션의 변경이 있을 때, 테스트 케이스의 수행 전과 후의 결과 값이 동일한지를 확인하는 오라클
7. 테스트 하네스 구성요소
* 테스트 하네스 : 애플리케이션의 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로 테스트를 지원하기 위해 생성된 코드와 데이터를 의미하며, 테스트가 실행될 환경을 시뮬레이션하며 컴포넌트 및 모듈이 정상적으로 테스트 되도록 하는 도구. 코드 개발자가 작성하는 요소임.
테스트 드라이버 : 테스트 대상의 하위 모듈을 호출하고, 파라미터를 전달하고, 모듈 테스트 후 결과를 도출하는 도구
테스트 스텁 : 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건 만을 가지고 있는 테스트용 모듈
테스트 슈트 : 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
테스트 케이스 : 사용자의 요구사항을 정확하게 준수했는지 확인하기 위한 입력 값, 실행 조건, 기대 결과 등으로 만들어진 테스트 항목의 명세서
테스트 스크립트 : 자동화된 테스트 실행 절차에 대한 명세서
목 오브젝트 : 사전에 사용자의 행위를 조건부로 입력해두면, 그 상황에 맞는 예정된 행위를 수행하는 객체
8. 테스트 자동화 도구
xUnit : Java(Junit), C++(Cppunit), .Net(Nunit) 등 다양한 언어를 지원하는 단위 테스트 프레임워크
STAF : 서비스 호출, 컴포넌트 재사용 등 다양한 환경을 지원하는 테스트 프레임워크로 각 테스트 대상 분산 환경에 데몬을 사용해 테스트 대상 프로그램을 통해 테스트를 수행하고 통합해 자동화 하는 검증 도구
FitNess : 웹 기반 테스트케이스 설계, 실행, 결과 확인 등을 지원하는 테스트 프레임워크
NTAF : FitNess의 장점인 협업 기능 + STAF의 장점인 재사용 및 확장성을 통합한 NHN(Naver)의 테스트 자동화 프레임워크
Selenium : 다양한 브라우저 및 개발언어를 지원하는 웹 애플리케이션 테스트 프레임워크
Watir : Ruby를 사용하는 애플리케이션 테스트 프레임워크
9. 연계 테스트 : 구축된 연계시스템과 연계 시스템의 구성요소가 정상적으로 동작하는지 확인하는 활동
연계 테스트 케이스 작성 : 연계 시스템 간의 데이터 및 프로세스의 흐름을 분석해 필요한 테스트 항목을 도출하는 과정
연계 테스트 환경 구축 : 테스트의 일정, 방법, 절차, 소요 시간 등을 송수신 기관과의 협의를 통해 결정하는 것
연계 테스트 수행 : 연계 응용 프로그램을 실행해 연계 테스트 케이스의 시험 항목 및 처리 절차 등을 실제로 진행하는 것
연계 테스트 수행 결과 검증 : 예상 결과와 동일한지를 확인 하는 것
10. 목적에 따른 테스트
회복 테스트 : 시스템에 여러가지 결함을 주어 실패하도록 한 후 올바르게 복구 되는지 테스트
안전 테스트 : 시스템에 설치된 시스템 보호 도구가 불법적인 침입으로 부터 시스템을 보호할 수 있는지 테스트
강도 테스트 : 과도한 정보량이나 빈도 등을 부과하여 과부하 시에도 소프트웨어가 정상적으로 실행되는지를 확인하는 테스트
성능 테스트 : 소프트웨어 실시간 성능이나 전체적인 효율성을 진단하는 테스트로 소프트웨어의 응답시간, 처리량 등을 테스트한다.
구조 테스트 : 소프트웨어 내부의 논리적인 경로, 소스 코드의 복잡도 등을 평가하는 테스트다.
회귀 테스트 : 소프트웨어 변경 또는 수정된 코드에 새로운 결함이 없음을 확인하는 테스트다.
병행 테스트 : 동일한 데이터를 입력하여 수정 전과 수정 후의 결과를 비교하는 테스트다.
11. 단위 테스트(Unit Test)
코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트 하는 것. 인터페이스, 외부적 입출력, 자료 구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등을 검사. 사용자의 요구사항을 기반으로 한 기능성 테스트를 최우선으로 수행. 구조 기반 테스트와 명세 기반 테스트로 나뉘고, 주로 구조 기반 테스트를 수행
12. 성능 테스트 도구 : 애플리케이션에 부하나 스트레스를 적용해 애플리케이션의 성능 측정 지표를 점검하는 도구 혹은 가상의 사용자를 생성하고 테스트를 수행하는 도구이며, 종류로는 JMeter, LoadUI, OpenSTA등이 있다.
13. 애플리케이션 테스트
소프트웨어 개발 단계 : 요구사항 -> 분석 -> 설계 -> 구현
테스트 단계 : 단위 테스트 -> 통합 테스트 -> 시스템 테스트 -> 인수 테스트[단통시인]
14. 인터페이스 구현 감시 도구
애플리케이션 성능 관리를 위해 접속자, 자원 현황, 트랜잭션 수행 내역, 장애 진단 등 다양한 모니터링 기능을 제공하는 도구인 APM(Application Perfomance Management)을 사용해 데이터베이스와 웹 애플리케이션의 트랜잭션, 변수 값, 호출 함수, 로그 및 시스템 부하등 종합적인 정보를 조회하고 분석.
성능 관리 도구 : 스카우터(Scouter), 제니퍼(Jennifer) 등
리소스 방식 : Nagios, Zabbix, Cacti 등
엔드 투 엔드 방식 : VisaulVM, 제니퍼, 스카우터 등
15. 형상 관리 기능[식제통감기]
형상 식별 : 관리 대상의 이름과 관리 번호를 부여하고, 계층(Tree)로 구분해 수정 및 추적이 용이하도록 함
버전 제어 : 소프트웨어 업그레이드나 유지보수 과정에서 생성된 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구를 결합
형상 통제 : 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영될 수 있도록 조정
형상 감사 : 기준선의 무결성을 평가하기 위해 확인, 검증 과정을 통해 공식적으로 승인
형상 기록 : 위의 절차에 따른 내용을 기록하고 보고서를 작성
16. 소프트웨어 버전 등록 관련 용어
저장소(Respository) : 저장소
가져오기(Import) : 아무것도 없는 저장소에서 처음으로 파일을 복사
체크아웃(Check-Out) : 파일 받기
체크인(Check-In) : 체크아웃 한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신한다.
커밋(Commit) : diff도구(비교 대상이 되는 파일 들의 내용을 비교하여 서로 다른 부분을 표시해주는 도구)를 이용해 충돌을 알리고 내용을 갱신한다.
동기화(Update) : 최신 버전으로 동기화
17. CCB(Configuration Control Board; 형상통제 위원회)
형상 항목에 대한 형상 베이스라인이 승인된 후, 발생되는 형상 항목의 변경에 대하여 평가, 조정, 승인/보류/기각을 결정하는 심의 조직
18. 버전 관리 도구
버전 관리 도구는 형상 관리 지침을 활용해 제품 소프트웨어의 신규 개발, 변경, 개선과 관련된 수정사항을 관리하는 도구다. 또한 소프트웨어 개발과 관련해 코드와 라이브러리 관련 문서 등 시간의 변화에 따른 변경을 관리하는 전체활동을 의미한다.
종류 : 공유 폴더 방식, 클라이언트/서버 방식(SVN), 분산 저장소 방식(Git)
19. 빌드 자동화 도구
Jenkins : Java 기반 오픈 소스, 서블릿 컨테이너, 여러 대의 컴퓨터를 이용한 분산 빌드 가능
Gradle : Groovy 기반 오픈소스, 안드로이드 앱 개발환경, Task 단위, 이전에 사용했던 태스크를 재사용하거나 다른 시스템의 태스크를 공유할 수 있는 빌드 캐시 기능 지원
20. 애플리케이션 소스 코드 품질 동적 분석 도구 : 애플리케이션을 실행해 코드에 존재하는 메모리 누수 현황 발견 및 발생한 스레드의 결함 분석
Avalanche : Valgrind 프레임 워크 및 STP 기반으로 구현됨
Valgrind : 프로그램 내에 존재하는 메모리 및 스레드 결함 등을 분석
21. 정적 분석 도구 : 소스 코드를 실행하지 않고 코드 자체 만으로 코딩 표준 준수 여부, 잔존 결함 발견 여부를 확인하는 코드 분석 도구. pmd, cppcheck, SonarQube 등
'2020 정보처리기사 실기 > 실기요약' 카테고리의 다른 글
2021 정보처리기사 실기 요약(전체)(20210709 수정) (17) | 2021.07.02 |
---|---|
2020 정보처리기사 실기 요약 - 요구사항 설계 및 개발 프로세스 (0) | 2020.11.27 |
2020 정보처리기사 실기 요약 - 암호화 및 소프트웨어 보안 요약 (0) | 2020.11.27 |
2020 정보처리기사 실기 요약 - 사용자 인터페이스 설계 요약 (0) | 2020.11.27 |
2020 정보처리기사 실기 요약 - 프로토콜 네트워크 요약 (0) | 2020.11.27 |