TDD (Test Driven Development) 방법론과 테스트 기법의 종류

2021. 10. 11. 17:31·Computer Science/Concept
728x90

 

 

TDD

: Test Driven Development

- 테스트 주도 개발

- 반복 테스트를 이용한 소프트웨어 방법론

- 자동화된 테스트 코드를 작성한 후 테스트를 통과하기 위한 코드를 개발하는 방식의 개발 방식

 

 

 

 

TDD를 이용한 개발방법

- 항상 실패하는 테스트를 먼저 작성 (RED)

- 테스트가 통과하는 프로덕션 코드를 작성 (GREEN)

- 테스트가 통과하면 프로덕션 코드를 리펙토링 (REFACTOR)

 

 

출처 : 패스트켐퍼스 The Red

 

출처 : 패스트켐퍼스 The Red

 

 

 

 

TDD의 효과

 

- 코드가 프로그래머의 손을 벗어나기 전에 빠르게 피드백을 받을 수 있다

- 작성한 코드의 불안정성을 개선하여 생산성을 높일 수 있다

- 프로그래머의 오버 코딩을 방지한다

- 테스트 코드를 작성하는 과정에서 히스토리가 남아, 과거 의사결정을 쉽게 상기할 수 있다

 

 

 

 

테스트 기법의 종류

 

1. 수동 테스트

- 인수 테스트

- 회사에서는 보통 QA라고 부르는 테스트 전문 담당자들이 UI를 활용해 기능을 검증한다

- 사람이 검증하기 때문에 사용자와 가까운 관점에서 테스트를 한다

- 기능이 동작하기 위한 전체 코드가 준비되어야 한다

- 실행 비용이 높고 결과의 변동이 크다

 

 

2. 테스트 자동화

- 사람이 직접 테스트하지 않고, 어떤 기능을 검증하는 코드를 작성하는 방식

- 실행 비용이 낮고 결과의 신뢰도가 높다

- 테스트 코드의 작성 및 관리가 프로그래머의 역량에 달려있다

 

 

3. 인수 테스트

- 주로 클라이언트가 의뢰한 소프트웨어를 최종적으로 사용할 수 있는 수준인지 점검하는 테스트

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

- 전체 시스템 이상 여부 신뢰도가 높다

- 높은 비용 (작성비용 / 관리비용 / 실행비용)

 

 

4. 단위 테스트

- 시스템의 일부(하위 시스템)를 대상으로 기능을 검증하는 테스트

- 비용이 상대적으로 낮은 편이다

- 단위 안에서 버그가 있음을 상대적으로 자세히 알 수 있다

- 단위 테스트에서는 문제가 없더라도, 전체 시스템이 유기적으로 연결되었을 때 오류가 날 수도 있다

 

 

 

 

 

 


References

📌 Fast campus | Media

📌 INCoDOM

 

 

 

 

728x90
저작자표시 비영리 (새창열림)

'Computer Science > Concept' 카테고리의 다른 글

Debugging(디버깅)이란?  (0) 2021.01.12
프로그래밍 언어에서 Error의 종류. Syntax와 Semantics의 차이  (0) 2020.11.22
'Computer Science/Concept' 카테고리의 다른 글
  • Debugging(디버깅)이란?
  • 프로그래밍 언어에서 Error의 종류. Syntax와 Semantics의 차이
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    codeup
    db
    JavaScript
    MySQL
    Cloud
    BOJ
    Programmers
    단계별로 풀어보기
    spring
    java
    CodeUp 기초 100제
    웹
    c++
    Tistory
    C
    SourceTree
    HTML
    자료구조
    github
    clean code
    Python
    aws
    VS Code
    myBatis
    알고리즘
    web
    git
    CSS
    oracle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
TDD (Test Driven Development) 방법론과 테스트 기법의 종류
상단으로

티스토리툴바