/////
Search
📝

6월3일(월)

UI는 시험 내용에 포함X 디자인 패턴(가장 빈출도가 높을 예정), 테스트, 코딩 내용들 등.. 중간고사와 유사할 예정. 간단한 개념 묻는 항목 + 다이어그램 그려내는 항목 1차적으로 시험성적이 많이 가르게 되고, 세부적으로는 발표로 업다운 존재 (발표에서 잘했다고 평가되면, 충분히 한 등급 정도 업이 가능하다)

테스트

테스트는 무엇이고, 테스트 종류들에 대해서 알아보겠습니다

목차

이번 시간엔 앞 두 개 정도만 다루겠습니다
테스트 기초
블랙박스 테스트
화이트박스 테스트
상태기반 테스트
통합 테스트
시스템 및 인수 테스트

테스트란?

소프트웨어 개발
인간 중심의 활동이자 지적 활동
결함을 낮추는 방법
방지 : 인스펙션, 정적 분석
식별 후 제거 : 테스트, 디버깅
테스트
시험할 소프트웨어에 테스트 케이스를 주어 실행시킨 후, 시스템 동작이 예상대로 실행되는지 확인하는 것

1. 테스트 기초

아래로 갈 수록 범위가 넓어지는 의미
버그(bug)
문제, 결함, 난이도를 나타내는 데에 일반적으로 사용되는 용어
오류(error)
개발자가 잘못하여 설계나 코딩을 실수한 것
결함(fault)
시스템이 고장을 일으키게 하는 오류의 결과 코드 or 문서에 오류가 있다고 선언된 것
고장(failure)
시스템이 원하는 작업을 수행할 수 없는 상황, 현상

테스트 원리

테스트는, 오류를 발견하려고 (테스트를 위한) 프로그램을 실행시키는 것이다 테스트용 프로그램? : Test Harness : 테스트용 코드
완벽한 테스트는 불가능하다
테스트는, 창조적인 일 + 힘든 일이다
테스트는, 오류 유입을 방지할 수 있다
테스트는, 구현과 관계없는 독립된 팀에 의해 수행되어야 한다

테스트 작업 과정

1.
테스트에 의해 무엇을 점검할지 결정
2.
테스트 방법 결정
3.
테스트 케이스 개발
4.
테스트의 예상되는 올바른 결과 작성
5.
테스트 케이스로 실행

테스트 단계

단위 테스트 : 클래스 단위 → 해당 클래스가 올바르게 동작하는가 통합 테스트 : 모듈 단위 or 적정 사이즈 기준 단위 시스템 테스트 : 전체 단위 인수 테스트 (= 알파 테스트) : 전문가들을 불러서 테스트 해보는 과정

테스트 유형

검증(Verification)
확인(Validation)
인증(Certification)
정적 분석 : 실행 없이
동적 분석 : 프로그램 실행시켜서 오류 찾음

테스트 케이스

결함을 검사할 수 있는 입력
시험조건, 테스트 데이터, 예상 결과

2. 블랙박스 테스트

내부 경로에 대한 지식을 보지 않고, 테스트 대상의 기능이나 성능을 테스트 (요구사항 및 사양 기반)
아래 4가지 기법들은, 블랙박스 테스트에 대해 어떻게 테스트 케이스를 표현할 것인지를 고안한 방식들

동등 분할 기법

동등 클래스(Equivalence Class)
시스템의 동작이 같을 것으로 예상되는 입력

경계값 분석

동등(동치) 클래스의 경계에서 문제를 발생시키는 특수한 값이 존재한다 동등 클래스의 경계값을 가진 테스트 케이스는, 높은 효율을 가짐 경계값을 테스트 입력으로 선택

원인과 결과 그래프

입력 조건의 조합을 체계적으로 선택하는 테스트 기법 노드와 기호로 표시
노드 : 원인(입력조건), 결과(출력 조건)
기호 : ^(not), v(or), ~(not)

결정 테이블

각각의 결과들에 대해 조건의 조합을 나열