본문 바로가기
TIL

Software Testing

by 은지:) 2022. 8. 31.
728x90
반응형

 

 

 

Software Testing

 

 

 

 

 

Software Testing 이란?

 

: 수많은 엄밀한 검증 작업을 거치는 것

 

 

 

나의 코드(input 과 output을 생각하면서 만듦) -> 기대하는 결과 -> Test -> success, faliure

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

 

 

 

 

 

왜 테스트 해야하는가?

 

결함을 확인하기 위해서

에러의 사전 방지를 위해서

시간 절약을 위해서(우리 회사가 들이는 인적 자원들을 최대한 아껴야 함, 서비스적인 시선)

코드 구조 개선 (리펙토링에 능해짐)
품질 개선

나의 코드를 통해서 훌륭한 품질의 프로그램을 내놓거나 개선되는 것

코드의 확장성을 가지게 됨

 

 

소프트웨어의 개발은 70년대에 이어져 있어서 다른 공학보단 짧은 편

짧은데 비해 개발의 방법론적인

 

 

처음엔 WaterFall 방식으로 개발을 시작함 하지만 이건 개발과 맞지 않아

Real Time Test, 하나 만들고 테스트 하는 등의 방법론의 나옴

 

TDD (test 주도 개발) test 짜고, test 통과하는지, 된다면 리팩토링 

테스트 코드 먼저 짜고 작업을 시작하는 것

프백의 지향점 먼저 정하고 작업을 진행하기 때문에 개발 속도가 빠름

 

 

 

 

 

 

테스트 자동화

 

 

Manual Testing

 

: 사람이 메뉴얼을 통해 test 하는 것

 

불안정성 (사람이 하기 때문에)

인력 소모 -> 비용 증가

테스트 속도 감소

 

 

 Automation Testing

 

안정성 (사람이 하지 않기 때문에 실수가 거의 없음)

인력 소모가 줄어듬 -> 비용 감소

테스트 속도 증가

확장성 증가 (새롭게 코드를 붙이기 쉬움)

 

 

 

 

 

 

시스템 전략 3가지 (단위-통합-엔드투엔드 순으로 보통 테스트)

 

 

 

End-to-End (E2E) Test

: FE, BE test , 잘 맞는지 보는 것

-> 전체적인 Flow (테스트가 가장 복잡)

-> 중요도, 시간적인 비율 : 10%

-> cypress : End-to-End Test 자동화 툴

 

 

Integration Tests

: 통합 테스트

: 자체적으로 테스트가 가능한 것 (깃에서 merge 후 서로 코드를 맞춰보는 것과 비슷)

-> 모듈 간의 호환서 검증 postman 을 통한 api 호출시 올바르게 동작하는 지 확인

-> 중요도, 시간적인 비율 : 20%

 

 

Unit Test

: 단위 테스트

: 하나의 모듈에서 나올 수 있는 오류들을 모두 테스트 해보는 것, 세세한 단위로 테스트

: 에러 핸들링과 비슷. 하지만 에러 핸들링을 테스트하는 것이 Unit Test

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

-> 중요도, 시간적인 비율 : 70%

-> 빠른 문제 파악 가능, 시간과 비용 절감(개발자는 비즈니스적인 면을 가지고 있어야 함), 리팩토링 시 안정성 확보

-> 코드에 대한 문서로 활용 ( 신입이 공부를 위해 testcode 보여달라고 하면 너무 조아함)

 

 

 

 

 

 

 코드 커버리지

 

: 테스트가 코드를 얼마나 커버하는지 대한 정보를 나타내는 지표

 

 

 

 

728x90
반응형

'TIL' 카테고리의 다른 글

TIL customHook 모달창  (0) 2022.09.14
실무에서 바로 쓰는 clean code  (0) 2022.09.12
채용되는 개발자  (0) 2022.08.28
Redux - Redux  (0) 2022.08.28
Redux - Design Patten  (0) 2022.08.28

댓글