Software Testing

흑이·2022년 1월 12일
0

블로그 글 추가 및 수정 필요

코드를 작성하고 기대하는 결과가 나오는지 테스트

성공 ? 실패?

실패하면 Modify & Fix

제대로 된 소프트웨어를 개발했는가?
소프트웨어를 제대로 개발했는가?

그 상태만 처리하도록 하드 코딩 했는지?
확장성을 고려해서 개발을 했는지?

Why Test

  • 결함 확인
  • 사전 방지
  • 시간 절약
  • 구조 개선
  • 품질 개선
  • 확장성

사람이 직접 테스트

  • 불 안정성 (빠드릴 수 있는 부분이 있다.)
  • 인력 소모
  • 높은 비용
  • 테스트 속도

Automation Testing
자동화

  • 안정성 높음
  • 인력소모 낮음
  • 비용 낮음
  • 테스트 속도 높음
  • 확장성
  1. 시스템 테스트 전략 3가지 (복잡도 순서는 End - Inte - Unit)
  • End to End Tests (비중 10%)
    전체적인 Flow (ex.브라우저상 클릭 후 생기는 변화에 대한 검증)

    프론트엔드와 백엔드가 결합한 작성한 로직이 정상적으로 동작 하는지?

  • Integration Tests (비중 20%)
    백엔드에서 호출을 하여 제대로 나오는가?(ex.웹페이지 혹은 POSTman을 통한 API호출 시 올바르게 동작하는지 확인)

    하나의 기능을 호출 시 (API) 정상적으로 동작 하는지?

  • Unit Tests (비중 70%)
    독립적으로 진행되는 가장 작은 단위의 테스트 (ex.하나의 기능 또는 메소드)
    보통 Http 요청을 하지 않고 내부적으로 확인

    3-1 End-to-End Tests
    Tools - Cypress

    3-2 Integration Tests
    Tools - Postman

    3-3 Unit Tests

    • 테스트 할 수 있는 가장 작은 단위를 테스트하는 코드를 작성해서 테스트 하는 것을 말한다.

    3-4 단위 테스트 작성의 필요성

    • 빠른 문제 파악 가능

    • 시간과 비용 절감

    • 리팩토링 시 안정성 확보

    • 코드에 대한 문서로 활용

      유닛 테스트가 있다면

0개의 댓글