애플리케이션 테스트 관리
소프트웨어 검사 (테스트)
개발 단계의 마지막 단계
오류를 찾아 내는 것
잠재적 오류 : 오류는 있지만 발견되지 않으면서 존재하는 오류
성공적인 검사 : 오류를 많이 찾아내는 검사
요구사항 검토 방법
동료 검토
워크 스루
인스펙션
소프트웨어 품질 보증 - 정형 기술 검토의 지침 사항
논쟁과 반박 제한
의제를 제한하되, 충분히 받아들인다.
제품의 검토에 집중
참가자 수 제한
테스트 원칙
완벽한 테스트는 불가능
개발자가 테스트 x
결함을 밝히는 활동
계획 단계부터 해야한다.
파레토 법칙 : 오류의 80%는 전체 모듈의 20% 내에 발견
낚시의 법칙: 특정 기능, 모듈, 라이브러리에서 결함이 많이 발견
Defect Clustering (결함 집중) : 대부분 소수의 특정한 모듈에 집중
Absence of Errors Fallacy (오류-부재 궤변)
사용자 요구사항 만족 못한다면, 품질이 높다고 말할 수 없다.
오류를 100% 없애는 것이 목적이 아니라, 일정 수준 이하로 줄이는 것
Pesticide Paradox (살충제 패러독스) : 주기적으로 테스트 케이스 점검하고 개선
테스트 프로세스
테스트 계획
분석 및 디자인
테스트 케이스 및 시나리오 작성
...
테스트 기법 분류
분석 기법, 설계 기법, 실행 기법, 자동화 기법
테스트 설계 기법
구조기반 설계, 명세기반, 경험기반
명세 기반
결정 테이블, 정형 명세 기반, 유한 상태 기반
동적 테스트 : 화이트 박스, 블랙 박스
정적 테스트 : 인스펙션, 코드 테스트, Walk-Through
화이트 박스 테스트
가장 기본적인 방법
소스코드 모든 문장 한 번 이상 수행
제어 구조 따라 선택, 반복 등 , 논리적 경로 점검
종류
기초 경로 테스트 Base Path Testing
데이터 흐름 테스트 Data Flow Testing
루프, 조건 테스트
찾을 수 있는 오류
세부적, 논리 구조상
반복문, 수행 경로
블랙박스 테스트
종류
동등/균등 분할
경계값
오류예측
원인 결과 그래프
비교 그래프
찾을 수 있는 오류
부정확
인터페이스
자료 구조상
성능
시작 종결상
기초 경로 테스트
MaCave Cyclomatic
복잡도 = E - V + 2
모듈의 크기는 제한 하고 있다.
인접 행렬 복잡도
( 0 1 0 1 1 0 3 - 1
0 0 0 0 1 0 1 - 1
1 0 1 1 0 0 3 - 1
0 1 0 0 1 0 2 - 1 = 5 + 1 = 6
단위 테스트
코드 테스트
모듈 테스트
프로그램 설계 테스트
통합 테스트
점증적인 방식
상향식, 하향식
비 점증적인 방식
빅뱅 방식
전체 프로그램 한꺼번에 테스트
하향식 통합 테스트
깊이 우선, 너비 우선
Stub (가짜 모듈) 사용
상향식 통합 테스트
클러스터 : 하위 모듈 그룹
드라이버 : 더미 모듈
순서
낮은 수준 모듈들을 클러스터로 결합
드라이버 작성
클러스터 검사/테스트
드라이버 제거하고 클러스터를 상위로 결합
시스템 테스트
회귀 테스트
한 모듈의 수정 → 다른 부분에 미치는 영향
스트레스 테스트
비정상적으로 과도한 분량 자원을 요청할 때 영향
인수 테스트 수행 방법
알파 테스트
개발자 장소에서 , 사용자가 시험
사용자와 개발자가 함께 확인하면서 검사
베타 테스트
사용자 사용, 개발자에게 통보
테스트 산출물
계획서 ㅡ 케이스 ㅡ 시나리오 ㅡ 결과서
시나리오
절차를 명세한 문서
테스트를 위한 여러 케이스 집합
테스트 항목을 하나의 시나리오에 모두 작성 X
시나리오 도출하는 것이 첫 번째 프로세스
테스트 장치 구성 요소
드라이버 / 스터브
Test Case
입력값, 실행조건, 기대결과 등 집합
환경 설정, 의존성
Suites : 테스트 케이스의 집합
Test script : 자동화된 테스트 실행 절차에 대한 명세
Mock Object : 조건부로 사전에 입력 - 예정된 행위 수행하는 객체
테스트 오라클
테스트 결과가 참인지 거짓인지 판단
True, Consistent , Sampling, Heuristic 오라클
테스트 시작 조건
계획 수립
투입 조직, 참여 인력의 역할과 책임 정의
사용자 요구사항에 대한 테스트 명세서 작성
일정 확정
환경 구축
테스트 자동화 도구 장단점
사용자 요구 기능 일관성 있는 검증 유리
도구 사용 방법에 대한 교육/학습 필요
테스트 결과의 통계 작업과 그래프 등 다양한 표시 형태 제공
테스트 자동화 도구 유형에서 정적 분석 도구
작성된 소스 코드 실행 x
리뷰 프로세스에 관한 정보 저장, 리뷰 코멘트 저장
동적 테스트 하기 전에 결함 발견하도록 지원
코드 자체만으로 코딩 표준 준수 여부, 코딩 스타일 적정 여부 확인 가능
결함
결함 추이 분석
결함 분포, 결함 추세, 결함 에이징
오픈 소스 결함 관리 도구
Bugzilla, Mantis, Trac
연계 테스트
연계 테스트 3단계
단위 ㅡ 연계 ㅡ 통합
단위 테스트
송수신 모듈
변환 매핑
데이터베이스
네트워크 → 연계 테스트
연계 테스트 수행전 협의 사항
일정, 방법, 소요시간
연계 테스트 수행 결과 검증 방법
데이터 확인
파일 크기
시스템 기록 로그
디스크 X
테스트 커버리지
단위 테스트에서 라인 커버리지를 척도로 삼기도 한다.
다중 조건
변경 조건/결정 : 독립적으로 전체 조건식의 결과에 영향
조건 결정
성능 분석 및 품질 평가
성능 측정 지표
Throughput 처리량
Response Time 응답시간
Turnaround Time 반환시간
Resource Usage 자원 사용률
성능 분석 도구
모니터링 도구
장애진단
성능 저하 원인 분석
용량 산정
소스코드 품질 분석 도구
정적 분석 도구
pmd , ... check... ,Find Bug, Corbetura
성능 저하 원인
데이터베이스 Lock
불필요한 데이터베이스 Fetch
연결 누수 Leak / 부적절한 연결 풀 크기 Pool Size
불완전한 완료 Commit
유지보수 종류
Corrective Maintenance 수리 보수
Perfective 기능 \ 완전
유지보수 비용 가장 많은 부분 차지
Adaptive 환경 적응
Preventive 예비 예방
외계인 코드
아주 오래되거나 , 개발자가 없어 유지보수 작업 어려운 프로그램
모듈 x
방지 : 철저하게 문서화
문서화 부작용 : 자료 코드에 대한 변경이 매뉴얼에 적용되지 않을 때
품질
QA (Quality Assurance)
요구사항과 일치하는 가
소프트웨어 품질 측정
정확성 : 사용자 요구사항 충족시키는 정도
무결성 : 자료 변경 제어
사용성
신뢰성 : 오류 없이 수행
이식성 : 다른 환경 운용
신뢰성과 가용성
신뢰성은 과거와 개발상의 자료를 이용하여 측정과 예측 가능
가용성은 프로그램이 요구사항에 따라 운영되는 확률
신뢰도
가동 / (고장 + 가동)
'소프트웨어공학 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 데이터베이스 구축 - 데이터베이스의 개요 (0) | 2022.03.25 |
---|---|
[정보처리기사 필기] 소프트웨어 개발 - 인터페이스 구현 (0) | 2022.03.25 |
[정보처리기사 필기] 소프트웨어 개발 - 제품 소프트웨어 패키징 (0) | 2022.03.25 |
[정보처리기사 필기] 소프트웨어 개발 - 통합 구현 (0) | 2022.03.25 |
[정보처리기사 필기] 소프트웨어 개발 - 데이터 입출력 구현 (0) | 2022.03.25 |
댓글