본문 바로가기
CS/BackEnd

테스트 기법 & 코드 분해 & 테스트 우선 개발

by Diligejy 2022. 6. 19.

테스트기법

1. 수동 테스트

    a.  품질 담당자가 UI를 사용해 기능을 검증

    b.  최종 사용자의 사용 경험과 가장 비슷하게 검증

    c. 실행 비용이 높고 결과의 변동이 큼

    d. 가장 온전한 코드 실행

    e. 인수 테스트

 

2. Software Regression

A software bug that makes a feature stop functioning as intended after a certain event

 

3. 테스트 자동화

a. 기능을 검증하는 코드를 작성

b. 테스트 코드 작성 비용이 소비되지만 실행 비용이 낮고 결과의 신뢰도가 높음

c. 테스트 코드 작성과 관리가 프로그래머 역량에 크게 영향을 받음

 

4. 인수테스트

a. 배치된 시스템을 대상으로 검증

b. 전체 시스템 이상 여부 신뢰도가 높음

c. 높은 비용

d. 피드백 품질 낮음

 

5. 단위테스트

a. 시스템의 일부(하위 시스템)를 대상으로 검증

b. 낮은 비용

c. 높은 피드백 품질

d. 전체 시스템 이상 여부 신뢰도가 낮음

 

코드 분해

 

1. 문제의 크기

프로그래머가 한 번에 다룰 수 있는 문제의 크기는 한계를 가짐

-> 프로그래머는 더 큰 문제를 자주 마주함

-> 시스템의 크기는 점점 커짐

-> 큰 문제는 작은 문제로 분해할 수 있음

-> 작은 문제의 일부는 반복됨

 

2. 코드 재사용

a. 반복되는 문제의 풀이는 재사용 가능

b. 소프트웨어 개발 비용 절감 - 엔지니어링

 

3. 모듈화

a. 분해 

- 큰 시스템은 더 작은 하위 시스템으로 분해 가능

- 교체 가능

 

b. 조립

- 작은 시스템은 더 큰 상위 시스템으로 조립 가능

- 모듈 재사용

- 라이브러리

 

c. 단위 테스트

 

테스트 우선 개발

 

1. 테스트코드

a. 가시적이고 구체적인 목표

b. 자가검증

c. 반복실행

d. 클라이언트

 

2. 운영코드보다 테스트코드를 먼저 작성

a. 명확하고 검증 가능한 목표를 설정한 후 목표를 달성

b. 프로세스가 코딩에 앞선 목표 설정을 강요

c. 프로그래머는 자신이 풀어야 할 문제를 구체적으로 이해해야 함.

댓글