Software Testing (session)

룰루팍 Lolo Park ·2022년 12월 21일

TDD

목록 보기
2/2
  1. Software Testing
  2. Manual Testing / Automation Testing
  3. 시스템 테스트 전략 3가지
  4. Unit Test

< Software Testing>

  • 코드의 오류를 찾아 시지프스 처럼 끊임없이 modify와 fix를 반복

제대로 된 소프트웨어를 개발했는가
소프트웨어를 제대로 개발했는가
--> '제대로' : 오류 없이 돌아가는 것 뿐만 아니라 내가 만들고 있는 이 제품을 어떻게 제대로 만들고 있는가와 같은 본질에 대한 고찰

  • Software Test를 통해 결함을 확인하고 사전에 방지 -> 시간이 절약됨 -> 구조 개선, 품질 개선, '확장성'있는 코드로 발전 시킬 수 있음
  • '확장성' : 단 하나의 오타가 몇 천건의 error를 생성할 수 있다

Waterfall

TDD (Test Driven Development)

  • test코드를 먼저 작성 (예상된 결과물을 먼저 짜놓음 - 그거에 맞춰 개발을 시작)
  • 내가 일하게 될 회사가 어떤 driven development를 채택하게 될지 파악하는 것이 좋음. test code와 test case를 파악해보자!
    API documentation처럼 정리가 되어있을 것임.

JDD

Manual Testing

  • 불안정성 증가 : human error
  • 인력소모

Automatic Testing

  • 안정성 증가
  • 인력소모 줄고 비용 줄고 테스트 속도(코드들을 유기적으로 테스트할 수 있음)는 빨라짐

시스템전략

  • End-to-End(E2E) Test (처음부터 끝까지 테스트)
    FE와 BE가 처음부터 끝까지 통신을 해본다
    @배포단계에서 전체적인 flow를 확인해보는 것
    예) FE는 cypress를 통해 해볼 수 있음. 링크 ▶︎ cypress

  • Integration Test (통합 테스트)
    postman : 가상의 클라이언트라고 보자
    httpie
    모듈 간의 호환성을 검증해본다 (각각의 api를 확인해볼 수 있다)

  • Unit Test (단위 테스트)
    하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트
    모듈:하나의 기능/메서드 like signIn 메서드

함수 하나하나를 unit이라고 본다면, 그것을 확인해보는 것
빠른 문제 파악이 가능
시간 비용 절감
리팩토링 시 안정성 확보
코드에 대한 문서로 활용

<unit test 는 하나하나 다 확인해봐야하니까 그게 더 복잡하다고 봐야함>

  • unit test.......에 많은 시간을 할애해야함 test code 가 있어야 merge할 수 있음!!!!!!

Code Coverage

테스트가 코드를 얼마나 커버하는지에 대한 정도를 나타내는 지표
테스트 코드를 할 때 커버리지를 계속 확인해야한다
100%로 맞춰줘야한다 !!!!!

  • 함수커버리지(%) Function Coverage
    = 실행된 함수 / 총 함수 개수 * 100

  • 구문 커버리지(%) Statment Coverage
    = 실행된 구문 수 / 전체 구문 수 * 100

  • 조건 커버리지(%) Condition Coverage
    = 각 조건마다 true or false 한번의 개수 / (전체 조건 수 ^ 2) * 100

  • 분기 커버리지(%) Line Coverage
    = 실행된 분기 수 / 총 분기 개수 * 100

얘네들을 다 100%로 맞춰야한다는 거죠?

나중에 링크 여기를 참고해보자

profile
Korean-Arabic Translator, Backend Developer

0개의 댓글