Part 5 Verification and validation u Assuring that

  • Slides: 31
Download presentation
(검증과 확인) Part 5. Verification and validation u Assuring that a software system meets

(검증과 확인) Part 5. Verification and validation u Assuring that a software system meets a user's needs (S/W 시스템이사용자의 요구사항을 만족한다는 것을 보증하는 것) u Contents 22. Verification and Validation (검증과 확인) 23. Defect Testing (결점 시험) 24. Static Verification (정적 검증) – 6판 삭제 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 1

제 5부 검증과 확인 (검증과 확인) Chapter 22. Verification and Validation u Objectives •

제 5부 검증과 확인 (검증과 확인) Chapter 22. Verification and Validation u Objectives • To introduce software verification and validation (S/W 검증과 확인을 소개) • To describe the stages of the testing process (시험 과정의 단계들을 설명) • To explain the importance of test planning (시험 계획의 중요성 해설) • To describe various complementary testing strategies (다양한 상호보완적인 시험 전략들을 설명) u Contents 22. 1 The testing process (시험 프로세스) 22. 2 Test planning (시험 계획) 22. 3 Testing strategies (시험 전략) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 2

제 5부 검증과 확인 / 22장 검증과 확인 Verification vs validation (검증 대 확인)

제 5부 검증과 확인 / 22장 검증과 확인 Verification vs validation (검증 대 확인) u Verification: (검증) "Are we building the product right“ (“제품을 올바르게 만들고 있는가”) • The software should conform to its specification (구현한 S/W 프로그램이 그 명세서와 일치해야 한다) u Validation: (확인) "Are we building the right product" (“올바른 제품을 만들고 있는가”) • The software should do what the user really requires (구현한 S/W 프로그램이 사용자가 실제로 요구하는 사항을 만족해야 한다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 3

제 5부 검증과 확인 / 22장 검증과 확인 The V & V process (검증과

제 5부 검증과 확인 / 22장 검증과 확인 The V & V process (검증과 확인 프로세스) u Is a whole life-cycle process (전 생명 주기 동안의 프로세스다) • V & V must be applied at each stage in the software process. (검증과 확인은 S/W 프로세스에 있는 각 단계 마다 적용되어야 한다) u Has two principal objectives (2개의 원칙적인 목적이 있다) (1) The discovery of defects in a system (시스템에 있는 결함의 발견) (2) The assessment of whether or not the system is usable in an operational situation. (운영 상황에서 시스템이 사용할만한지의 여/부 평가) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 4

제 5부 검증과 확인 / 22장 검증과 확인 Dynamic and static verification (동적/정적 검증)

제 5부 검증과 확인 / 22장 검증과 확인 Dynamic and static verification (동적/정적 검증) u Dynamic V & V : (동적 기법) • Concerned with exercising and observing product behavior (testing) (제품의 동작을 시험하고 관찰하는 것(테스트)에 관심을 둔다) u Static verification: (정적 기법) • Concerned with analysis of the static system representation to discover problems (문제점을 찾아내기 위해 정적인 시스템의 표현 상태의 분석에 관심을 둔다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 5

제 5부 검증과 확인 / 22장 검증과 확인 Static and dynamic V&V (동적/정적 검증과

제 5부 검증과 확인 / 22장 검증과 확인 Static and dynamic V&V (동적/정적 검증과 확인) [그림 22. 1] 정적/동적 확인/검증 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 6

제 5부 검증과 확인 / 22장 검증과 확인 Program testing (프로그램 시험) u Can

제 5부 검증과 확인 / 22장 검증과 확인 Program testing (프로그램 시험) u Can reveal the presence of errors NOT their absence (오류의 부존재가 아니라 오류의 존재를 찾아낼 수 있다) u A successful test is a test which discovers one or more errors (성공적인 시험이란 하나 이상의 에러들을 찾아내는 시험이다) u Only validation technique for non-functional requirements (비 기능적 요구사항에 대한 확인 기법일 뿐이다) u Should be used in conjunction with static verification (정적 검증과 결합하는데 사용되어야 한다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 7

제 5부 검증과 확인 / 22장 검증과 확인 Types of testing - 시험의 형태에는

제 5부 검증과 확인 / 22장 검증과 확인 Types of testing - 시험의 형태에는 다음 2종류가 있다. (1) Statistical testing (통계적 시험) » tests designed to reflect the frequency of user inputs. Used for reliability estimation. » Covered in Chapter 18 - Software reliability. (2) Defect testing (결점 시험) » Tests designed to discover system defects. » A successful defect test is one which reveals the presence of defects in a system. » Covered in Chapter 23 - Defect testing Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 8

제 5부 검증과 확인 / 22장 검증과 확인 Testing and debugging (시험과 디버깅) u

제 5부 검증과 확인 / 22장 검증과 확인 Testing and debugging (시험과 디버깅) u Defect testing and debugging are distinct processes (결점 시험과 디버깅은 별개의 프로세스들이다) u Defect testing is concerned with confirming the presence of errors (결점 시험은 에러의 존재를 확인하는 데 중점을 둔다) u Debugging is concerned with locating and repairing these errors (디버깅은 이들 에러의 위치를 찾아내어 수정하는 데 중점을 둔다) u Debugging involves formulating a hypothesis about program behavior then testing these hypotheses to find the system error (디버깅은 프로그램 동작에 관한 가설을 정형화한 뒤 시스템 에러를 찾아내기 위해 이들 가 설을 시험하는 것이다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 9

제 5부 검증과 확인 / 22장 검증과 확인 The debugging process (디버깅 과정) [그림

제 5부 검증과 확인 / 22장 검증과 확인 The debugging process (디버깅 과정) [그림 22. 2] 디버깅 과정 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 10

제 5부 검증과 확인 / 22장 검증과 확인 22. 1 The testing process (시험

제 5부 검증과 확인 / 22장 검증과 확인 22. 1 The testing process (시험 과정) u Testing stages (시험 단계) (1) Unit testing (단위 시험) » testing of individual components (2) Module testing (모듈 시험) » testing of collections of dependent components (3) Sub-system testing (부시스템 시험) » testing collections of modules integrated into sub-systems (4) System testing (시스템 시험) » testing the complete system prior to delivery (5) Acceptance testing (인수 시험) » testing by users to check that the system satisfies requirements. Sometimes called alpha testing Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 11

제 5부 검증과 확인 / 22장 검증과 확인 22. 1 The testing process (cont’)

제 5부 검증과 확인 / 22장 검증과 확인 22. 1 The testing process (cont’) [그림 22. 3] 시험 과정 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 12

제 5부 검증과 확인 / 22장 검증과 확인 / 1절 시험 프로세스 (객체지향 시스템

제 5부 검증과 확인 / 22장 검증과 확인 / 1절 시험 프로세스 (객체지향 시스템 시험) 22. 1. 1 Object-oriented system testing u u Less closely coupled systems. (소 결합 시스템) Objects are not necessarily integrated into sub-systems (1) Cluster testing. (군집 시험) » Test a group of cooperating objects (2) Thread testing. (쓰레드 시험) » Test a processing thread as it weaves from object to object. » Discussed later in real-time system testing Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 13

제 5부 검증과 확인 / 22장 검증과 확인 (시험 계획과 일정 계획) 22. 2

제 5부 검증과 확인 / 22장 검증과 확인 (시험 계획과 일정 계획) 22. 2 Test planning and scheduling u u u Describe major phases of the testing process Describe traceability of tests to requirements Estimate overall schedule and resource allocation Describe relationship with other project plans Describe recording method for test results Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 14

제 5부 검증과 확인 / 22장 검증과 확인 22. 2 Test planning and scheduling

제 5부 검증과 확인 / 22장 검증과 확인 22. 2 Test planning and scheduling (cont') u The test plan (시험 계획) - 시험 계획의 내용 • • The testing process (시험 프로세스) Requirements traceability (요구사항 추적) Tested items (시험 항목) Testing schedule (시험 일정계획) Test recording procedures (시험 기록 절차) Hardware and software requirements (H/W와 S/W 요구사항) Constraints (제약 조건) [그림 22. 4] 시험 계획 내용 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 15

제 5부 검증과 확인 / 22장 검증과 확인 22. 2 Test planning and scheduling

제 5부 검증과 확인 / 22장 검증과 확인 22. 2 Test planning and scheduling (cont') [그림 22. 5] The V-model of development (S/W 프로세스의 시험 단계) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 16

제 5부 검증과 확인 / 22장 검증과 확인 22. 3 Testing strategies (시험 전략)

제 5부 검증과 확인 / 22장 검증과 확인 22. 3 Testing strategies (시험 전략) u Testing strategies are ways of approaching the testing process (시험 전략은 시험 프로세스의 접근 방법이다) u Different strategies may be applied at different stages of the testing process (서로 다른 시험 프로세스 단계에 서로 다른 전략을 채택할 수 있다) u Strategies covered (1) Top-down testing (하향식 시험) (2) Bottom-up testing (상향식 시험) (3) Thread testing (4) Stress testing (5) Back-to-back testing Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 17

제 5부 검증과 확인 / 22장 검증과 확인 22. 3 Testing strategies (cont') [그림

제 5부 검증과 확인 / 22장 검증과 확인 22. 3 Testing strategies (cont') [그림 22. 6] Incremental testing (증가 시험) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 18

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 1 Top-down testing (하향식 시험) [그림 22. 7] 하향식 시험 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 19

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 1 Top-down testing (cont') u Start with the high-levels of a system and work your way downwards (시스템의 상위 레벨에서 시작하여 하위 단계로 작업한다) u Testing strategy which is used in conjunction with top-down development (하향식 개발과 결합시켜 사용되는 시험 전략) u Finds architectural errors (기본 구조 오류를 찾아낸다) u May need system infrastructure before any testing is possible (시험이 가능하기 전에 시스템 하부 구조가 필요할 수 있다) u May be difficult to develop program stubs (단위 프로그램 개발이 어려울 수 있다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 20

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 2 Bottom-up testing (상향식 시험) [그림 22. 8] 상향식 시험 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 21

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 2 Bottom-up testing (cont') u Necessary for critical infrastructure components (중요한 하부구조 부품들에 필수적이다) u Start with the lower levels of the system and work upward (시스템의 하위 레벨에서 시작하여 상위 레벨 쪽으로 작업한다) u Needs test drivers to be implemented (구현되도록 하는 시험 구동 장치가 필요하다) u Does not find major design problems until late in the process (처리 과정에서 주요 설계 문제점들을 늦게까지 찾을 수 없다) u Appropriate for object-oriented systems (객체지향 시스템에 적합하다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 22

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 3 Thread testing (쓰레드 테스팅) u Suitable for real-time and object-oriented systems (실시간 및 객체지향 시스템에 적합하다) u Based on testing an operation which involves a sequence of processing steps which thread their way through the system (시스템 전체를 경유하도록 만들어진 일련의 처리 단계들을 포함하는 동작을 시험하는데 기 본을 둔다) u Start with single event threads then go on to multiple event threads (단일 사건 쓰레드에서 시작한 뒤 다중 사건 쓰레드로 진행해 나간다) u Complete thread testing is impossible because of the large number of event combinations (대량의 사건 조합 때문에 완벽한 쓰레드 시험은 불가능하다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 23

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 3 Thread testing (cont') [그림 22. 9] Process interactions (실시간 프로세스의 상호작용) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 24

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 3 Thread testing (cont') [그림 22. 10] 단일 쓰레드 시험 [그림 22. 1] 다중 입력 쓰레드 시험 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 25

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 3 Thread testing (cont') [그림 22. 12] Multiple-thread testing (다중 쓰레드 시험) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 26

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 4 Stress testing (스트레스 시험) u Exercises the system beyond its maximum design load. (시스템을 그 최대 설계 부하를 고려하여 실험한다) u Stressing the system often causes defects to come to light (시스템에 스트레스를 가하는 것은 결점을 일으켜 밝혀내는 것이다) u Stressing the system test failure behavior. (시스템에 스트레스를 주어 장애 행위를 시험한다) u Systems should not fail catastrophically. (시스템이 심각한 고장을 일으켜서는 안 된다) u Stress testing checks for unacceptable loss of service or data (스트레스 시험은 수용 불가한 서비스/ 데이터의 손실을 점검한다) u Particularly relevant to distributed systems which can exhibit severe degradation as a network becomes overloaded (망에 과부하가 걸리면 심각한 기능 저하가 나타나는 분산 시스템에 특별히 관련된다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 27

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 5 Back-to-back testing u Present the same tests to different versions of the system and compare outputs. (동일 시험을 서로 다른 버전의 시스템에 부여하고 그 출력을 비교한다) u Differing outputs imply potential problems (상이한 출력은 문제점들의 가능성이 있다고 판단된다) u Reduces the costs of examining test results. (시험 결과 판정 비용을 축소할 수 있다) u Automatic comparison of outputs. (출력의 자동 비교가 가능하다) u Possible when a prototype is available or with regression testing of a new system version (시제품이 이용 가능할 때나 신 시스템 버전의 회귀 시험에 이용 가능하다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 28

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3.

제 5부 검증과 확인 / 22장 검증과 확인 / 3절 시험 전략 22. 3. 5 Back-to-back testing (cont') [그림 22. 13] Back-to-back 시험 Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 29

제 5부 검증과 확인 / 22장 검증과 확인 Key points u Verification and validation

제 5부 검증과 확인 / 22장 검증과 확인 Key points u Verification and validation are not the same thing (검증과 확인은 같은 것이 아니다) u Testing is used to establish the presence of defects and to show fitness for purpose (시험은 결점의 존재를 확인하고 목적에 부합되는지를 보이는 것이다) u Testing activities include unit testing, module testing, sub-system testing, integration testing and acceptance testing (시험 행위들에는 단위 시험, 모듈 시험, 부 시스템 시험, 통합 시험, 인수 시험이 있다) u Object classes should be testing in O-O systems (객체 클래스는 객체지향 시스템에서 시험해야 한다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 30

제 5부 검증과 확인 / 22장 검증과 확인 Key points u Testing should be

제 5부 검증과 확인 / 22장 검증과 확인 Key points u Testing should be scheduled as part of the planning process. (시험은 프로세스를 계획하는 일부로 일정 계획을 잡어야 한다) u Adequate resources must be made available (적당한 자원을 이용 가능토록 해야 한다) u Test plans should be drawn up to guide the testing process (시험 계획은 시험 프로세스를 안내하도록 작성되어야 한다) u Testing strategies include top-down testing, bottom-up testing, stress testing, thread testing and back-to-back testing (시험 전략에는 하향식 시험, 상향식 시험, 스트레스 시험, 쓰레드 시험, Back-to-back 시험이 있다) Software Engineering (Ian Sommerville, 5 th edition) Chungbuk National University, Network & Database Lab. Chapter 22 - Slide 31