소프트웨어 품질과 테스트 E DRE = E + D DRE: Defect Removal Efficiency

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

정선병원 간호팀 1 의사 order 시행지침 정선병원 2 병동 수간호사 송 만 자. 정선병원 간호팀 2 차례 1. 목적 2. 정의 3. 구두지시 적용 기준 4. 구두지시 수행 기준.
Testing. Testing(1)  정의  테스트는 오류를 발견하기 위한 작업  시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지 수동 또는 자동의 방법을 사용하여 검사하고 평가하는 일련의 과정 [IEEE]  오류의 종류  원시코드가.
컴퓨터와 인터넷.
Secure Coding 이학성.
재료수치해석 HW # 박재혁.
Capstone Project Memorandum
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
Entity Relationship Diagram
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Introduction To Computers
UNIT 15 Timer & Watch Dog 로봇 SW 교육원 조용수.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
프로젝트 품질관리 품질 계획 품질 보증 품질 관리.
시스템집적반도체 설계 검증 환경과 기법 Ch 7.
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
경영사례 및 영업협상 방법론.
객체지향 소프트웨어공학 12 장 품 질.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
SAP GUI 설치 가이드 프로세스 혁신 TFT.
센서 11. 기체 압력 센서 안동대학교 물리학과 윤석수.
분석적 사고 (Analytical Thinking)
시스템 설계와 산업디자인 개발.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
소프트웨어 공학 (Software Engineering)
4. LAN의 배선체계 (3장. LAN: Local Area Network)
10장. 예외처리.
Method & library.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
‘2012년 정보화 사업 교육 버그추적시스템(BTS) 사용 절차 2012, 02.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
27장. 모듈화 프로그래밍.
SD Overview.
Chatpter 08 테스트 01 테스트의 이해 02 테스트의 분류 03 정적 테스트 05 소프트웨어 개발 단계에 다른 테스트
제 15 장 직무설계 15.1 노동인력관리 목적 최대의 성과 만족스러운 성과 의사결정 직무설계 충원수준 선발 훈련과 경력개발
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
Mobile braille system for the blind
소프트웨어 공학 Chapter #1: 소개 1.
Chapter 03. 관계 데이터베이스 설계.
LabVIEW WiznTec 주임 박명대 1.
13.1 정보시스템의 개요 13.2 정보시스템의 개발 13.3 시스템 검사 13.4 시스템 문서화
2 네트워크 모델 학습 목표 모듈 개념을 알아보고 계층 구조의 필요성을 이해한다.
7주차 실습 FPGA 보드 사용법.
Kangwon National Univ. | Computer Science
( Windows Service Application Debugging )
소프트웨어 중심에 존재하는 복잡성 에 도전장을 내밀다
알고리즘 알고리즘이란 무엇인가?.
Level 0 Level 1 Level 2 Level 3 공모전 후기 모음 웹 서비스 1. 웹 페이지 설계 2. 웹 서버 구현
뇌를 자극하는 Solaris bible.
Introduction to JSP & Servlet
AT MEGA 128 기초와 응용 I 기본적인 구조.
UNIT 02 Microprocessor 로봇 SW 교육원 조용수.
7주차: Functions and Arrays
창의적 공학 설계 < 사용자 중심의 공학설계 > : Creative Engineering Design
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
소프트웨어 공학 (Software Engineering)
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
발표자 : 이지연 Programming Systems Lab.
System Security Operating System.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
.Net FrameWork for Web2.0 한석수
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
소프트웨어 설계 및 실습 강기준.
Presentation transcript:

소프트웨어 품질과 테스트 E DRE = E + D DRE: Defect Removal Efficiency E: total error before delivery D: total error after delivery 99.9 s/w eng_y.e.han

소프트웨어 테스트 목적 개발한 소프트웨어를 사용자에게 넘겨주기 전에 오류를 찾아 내기 위해서 프로그램을 실행시키는 프로세스이다 - 소프웨어에 내포된 오류를 찾아낸다 - 소프트웨어가 요구사항에 순응하는가를 확인한다 - 소프트웨어 성능이 요구 수준을 만족시키고 있는가를 확인한다 99.9 s/w eng_y.e.han

소프트웨어 테스트 담당자 개발자 테스트 전담자 시스템을 잘 알고 있다 대충 테스트 하려고 한다 납기를 맞추려고 노력한다 시스템을 파악해야 한다 철저하게 테스트하려고 한다 품질의 수준을 높이려고 노력한다 99.9 s/w eng_y.e.han

테스트 전담자의 조직 옵션 기업/기관 소프트웨어 엔지니어링 그룹 소프트웨어 품질보증 그룹 외부 계약자 테스트 전담자 테스트 99.9 s/w eng_y.e.han

전체 테스트 - exhaustive test Loop < 20x 99.9 s/w eng_y.e.han

선택적 테스트 - selective test Loop < 20x 99.9 s/w eng_y.e.han

테스트 원칙 - 1 코드 궁극적으로 테스트는 개발된 소프트웨어가 설계서 고객의 요구사항에 순응하는 가를 확인하는 것이다 요구 명세서 99.9 s/w eng_y.e.han

테스트 원칙 - 2 요구 명세서 테스트 계획은 일찍 수립되지만 테스트 케이스 설계와 실제 테스트는 나중에 실시된다 설계서 코드 99.9 s/w eng_y.e.han

테스트 원칙 - 3 테스트에서 발견되는 오류의 80%는 전체 모듈의 20%에서 발견된다 80% 모듈 20% 오류 99.9 s/w eng_y.e.han

테스트 원칙 - 4 점진적인 테스트가 항상 효과적이다 99.9 s/w eng_y.e.han

테스트 원칙 - 5 항상 비 전형적인 운영조건에서 테스트하라 99.9 s/w eng_y.e.han

테스트 원칙 - 6 Test와 debugging은 동일한 작업이 아니다 Result symptoms test Debugging New test data Suspected cause 99.9 s/w eng_y.e.han

소프트웨어 테스팅 White-box method Black-box method 방법론 method 전략 strategies 99.9 s/w eng_y.e.han

테스트 케이스 설계 - 목적: 오류를 발견하기 위함 - 기준: 완전하게 - 제약: 최소의 노력과 시간으로 Bug는 구석에 숨어 있고, 경계선으로 모인다 - Boris Beizer - - 목적: 오류를 발견하기 위함 - 기준: 완전하게 - 제약: 최소의 노력과 시간으로 99.9 s/w eng_y.e.han

White-box test 모든 명령문과 조건이 적어도 한번씩은 수행되는 것을 확인하는 것이 목표이다 99.9 s/w eng_y.e.han

경로 테스트 path test 경로: 명령의 실행 순서 99.9 s/w eng_y.e.han

기초 경로 테스트: basis path test- 1 2 4 3 5 6 7 우선: cyclomatic complexity를 계산한다 ; V(G) - V(G) = simple decision no. + 1 - V(G) = enclosed area no. + 1 - V(G) = 3 + 1 = 4 99.9 s/w eng_y.e.han

기초 경로 테스트: basis path test- 2 1 2 4 3 5 6 7 다음: 독립적인 경로를 도출한다 V(G) = 4 이므로 4개의 독립적인 경로가 있음 - 경로1: 1,2,3,6,7,8 - 경로2: 1,2,3,5,7,8 - 경로3: 1,2,4,7,8 - 경로4: 1,2,4,7,2,4,,,7,8 마지막으로 이 경로들을 수행할 테스트 케이스를 도출한다 99.9 s/w eng_y.e.han

기초 경로 테스트: basis path test- 3 1 2 4 3 5 6 7 - 프로우 차트는 프로그램 경로를 추적하는데 도움을 준다 - 논리적 테스트는 하나씩 계수하고 복합 테스트는 둘 이상으로 계수한다 - 기초 경로 테스트는 주요 모듈에만 적용되어야 한다 99.9 s/w eng_y.e.han

Loop test Simple loop Nested loop Concatenated loop Unstructed loop 99.9 s/w eng_y.e.han

Loop test: simple loop Loop를 완전히 생략한다 한 번 loop 통과 두 번 loop 통과 m 번 loop 통과( m < n ) (n - 1), n, (n + 1)번 loop 통과 n: 최대 허용 통과의 수 99.9 s/w eng_y.e.han

Black-box test 입력 출력 Black-box - 소프트웨어의 기능요구에 초점을 맞춘다 사항 입력 출력 Black-box 사건 - 소프트웨어의 기능요구에 초점을 맞춘다 - white-box test의 대안이 아니다 99.9 s/w eng_y.e.han

Black-box test 적용범위 부정확하고, 누락된 기능 인터페이스 오류 자료구조 내의 오류 성능 오류 초기화 및 종료시의 오류 99.9 s/w eng_y.e.han

Black-box test 기법 오류 추적(guess) 기법 의사결정표 기법 원인과 결과 기법 99.9 s/w eng_y.e.han

테스트 전략 Unit test 단위 테스트 시스템 테스트 통합 테스트 System test Integration test 확인 Validation test 99.9 s/w eng_y.e.han

테스트 전략: 테스트 vs 엔지니어링 산출물 . 시스템 기술서 . 시스템 테스트 . 요구 명세서 . 확인 테스트 . 설계서 . 코드 . 시스템 테스트 . 확인 테스트 . 통합 테스트 . 단위 테스트 99.9 s/w eng_y.e.han

단위 테스트: unit test - 인터페이스: interface - 자료구조: local data structure 테스트될 모듈 테스트 결과 테스트 케이스 - 인터페이스: interface - 자료구조: local data structure - 경계조건: boundary condition - 독립경로: independent paths - 오류 취급 경로: error handling paths 99.9 s/w eng_y.e.han

단위 테스트 환경 module stub stub 테스트 driver 테스트 케이스 테스트 결과 99.9 s/w eng_y.e.han

단위 테스트의 특성 모듈을 개발한 엔지니어가 테스트 한다 black-box test 기법이 항상 사용되고 white-box test 기법도 가끔 사용한다 대부분의 경우에 driver 와 stub가 필요하다 99.9 s/w eng_y.e.han

통합 테스트의 유형 하향식 통합 테스트 상향식 통합 테스트 Sandwich 테스트 99.9 s/w eng_y.e.han

하향식 통합 테스트 a 최상위 모듈은 stub로 테스트된다 b f g Stub는 한번에 하나씩 교체된다 c d e 새로운 모듈이 통합됨에 따라서 일부 모듈은 재 테스트 된다 99.9 s/w eng_y.e.han

상향식 통합 테스트 a b f g driver는 한번에 하나씩 교체된다 c d e 작업 모듈들은 통합된 모듈로 그룹화 된다 cluster 99.9 s/w eng_y.e.han

Sandwich 테스트 a 최상위 모듈은 stub로 테스트 된다 b f g c d e 작업 모듈들은 통합된 모듈로 그룹화 된다 cluster 99.9 s/w eng_y.e.han

통합 테스트의 특성 보통 개발자가 테스트를 수행한다 특별한 경우에는 테스트 전담자에 의해서 수행된다 보통 black-box 테스트 기법이 사용된다 전체적인 자료구조(global data structure)가 테스트된다 테스트 계획이 항상 수립된다 대부분의 경우에 driver와 stub가 필요하다 외부 및 내부 인터페이스가 테스트된다 99.9 s/w eng_y.e.han

확인 테스트: validation test 소프트웨어 요구 명세서가 지침서로 사용된다 소프트웨어 개발자 혹은 테스트 전담자에 의해서 수행된다 가능하면, 최종 운영환경에서 실시되어야 한다 99.9 s/w eng_y.e.han

External input or “live” data base 시스템 테스트: system test External input or “live” data base 외부 입력 Target operating system 목표 OS 응용 SW Application software 목표 HW Target hardware 99.9 s/w eng_y.e.han

Alpha & Beta 테스트 - Alpha 테스트 - Beta 테스트 고객이 테스트 SW 개발자 현장 고객 현장 SW 개발자가 검토 고객 현장 개발자 현장 99.9 s/w eng_y.e.han

debugging “ diagnostic process “ “ 진단과정 “ 99.9 s/w eng_y.e.han

Debugging process: 진단과정 테스트 케이스 테스트 결과 테스트 새로운 테스트 케이스 debugging 미확인 원인 correction 확인된 원인 99.9 s/w eng_y.e.han

Debugging effort 증상을 진단하고 원인을 파악하는데 필요한 시간 오류를 고치고 회귀 테스트를 하는데 필요한 시간 99.9 s/w eng_y.e.han

증상과 원인: sympton & causes - 증상과 원인은 서로 다른 곳에서 발견될 수 있다 - 증상은 다른 문제가 해결되면 사라질 수 있다 - 원인은 오류가 아닌 것들의 조합으로 발생할 수 있다 - 원인은 시스템이나 컴파일러 오류 때문에 발생할 수 있다 - 원인은 모든 사람이 그럴 것이라고 믿는데 서도 발생할 수 있다 증상 원인 99.9 s/w eng_y.e.han