Software Testing

Jimin_Note·2022년 7월 7일
0
post-thumbnail

🌱Software Testing

  1. 내가 개발한 코드의 결함 확인
  2. 배포 후에도 결함이 재발생되지 않도록 사전방지
  3. 테스트를 함으로 인해서 시간단축
  • 재설계의 시간 단축
  • 디버깅의 시간 단축
  1. 전반적인 구조 개선
  • 계획보다 실행이 느리게 돌아갈경우 배포 전에 미리 리팩토링할 수 있음.
  1. 품질 개선
  2. 확장성
  • 테스트를 완벽하게 진행 되면 그 코드는 확장할 가능성을 높게 가질 수 있음.

테스트 자동화

Manual Testing(수작업 테스트)

  • 불안정성 증대
  • 인력 소모 증가
  • 비용 증가
  • 테스트 속도 느림

Automation Testing

->한번 만들어두면 재사용 가능

  • 안정성
  • 인력 감소
  • 비용 절감
  • 테스트 속도 빠름
  • 확장성 보장

시스템을 테스트하는 방법

복잡도 : Unit Tests -> Intergration Tests -> End-to-End Tests
테스트 비중 : Unit Tests(70%) -> Intergration Tests(20%) -> End-to-End Tests(10%)

UI test(End-to-End Tests) - E2E(대표적인 툴 : Cypress)

프론트end toend 통신 테스트
ex) 브라우저 상 클릭 후 생기는 변화에 대한 검증

Integration Test

통합 테스트(모듈 간의 호환성 검증)
ex) 웹페이지 혹은 Postman을 통한 API 호출 시 올바르게 동작하는지 확인

Unit Test

독립적으로 진행되는 가장 작은 단위의 테스트
ex) 하나의 기능 혹은 메소드

  • 유닛테스트의 중요성
  • 유닛테스트의 장점
    • 빠른 문제 파악 가능
    • 시간과 비용 절감
    • 리팩토링 시 안정성 확보
    • 코드에 대한 문서로 활용
profile
Hello. I'm jimin:)

0개의 댓글