[CS] Software Testing

그냥·2022년 7월 7일
0

cs

목록 보기
4/6

1. Software Testing

1) 정의

software testing

  • 정의: 제대로된 소프트웨어를 개발 했는지 테스트 하는 것
  • 세부정의: 소프트웨어에서의 모든 플로우에서 에러가 발생하지 않고 정상 작동하는지 테스트 하는 것

2) 테스트의 이유

  • 선 결함 확인
  • 문제의 사전 방지
  • 시간 절약: 테스트를 함으로써 재설계, 디버깅에 대한 시간을 단축할 수 있다.
  • 구조 개선
  • 품질 개선
  • 확장성: 테스트를 다 통과한 소프트웨어는 다른 기능을 확장하기 용이하다.



2. Manual Testing

1) 정의

  • 정의: 사람이 손으로 일일이 하는 테스트
  • 단점
    • 불안정성: 사람의 실수로 인한 불안정성
    • 인력소모: 노가다성 테스트
    • 비용발생
    • 테스트속도 느림



2-1. Automation Testing

1) 정의

  • 정의: 사람이 손으로 일일이 하는 테스트
  • 장점
    • 안정성 증가: 휴먼 에러 차단에 의한 안정성 증가
    • 비용 감소: 인력 소모 감소에 의한 비용 감소
    • 테스트속도 감소
    • 확장성 증가
    • 프로그램화:
    • 재사용가능: 노가다성 테스트
    • 품질증가



3. 시스템 테스트 전략 3가지

1) End-to-End(E2E) Tests
2) Integration Tests(통합테스트)
3) Unit Tests(단위 테스트)

시스템 테스트 전략 3가지


1) Unit Tests

  • 정의: 테스트 할 수 있는 가장 작은 단위를 테스트 하는 코드를 작성해서 테스트 하는 것

2) Unit Tests의 중요성

  • 빠른 문제 파악 가능
  • 시간과 비용 절감
  • 리팩토링 시 안정성 확보
  • 코드에 대한 문서로 활용

0개의 댓글