TIL.Software Testing

seul3·2021년 12월 16일
0

What Software Testing?


소프트웨어 테스팅이란?

내 코드를 살펴보는 것을 말한다.

왜 하는가?

내가 원하는 코드를 제대로 개발했는가? 확인하려고!

테스트를 왜 하는가?

미리 문제를 확인 할 수 있다.
사전에 방지 할 수 있는 효과. 시간이 절약되는 효과가 있다. 구조적으로 개선이 됨.품질 개선이 됨.확장성이 좋아짐.

What Manual Testing ?

사람이 직접 모든걸 테스트 하는것을 말한다.
코드를 작성하고 직접 브라우저를 띄우고 눌러보고 잘 작동하는지 확인하는 이 모든 flow를 말한다.

사람은 실수를 하기 때문에 모든 경우의 수를 생각 할 수 없다.
그렇기 때문에 안정성이 보장 되지 않는다.
규모가 커지면 커질수록 cost도 커지고 불안전성도 커진다.
테스트 속도가 당연히 느리다!

Automation Testing ?

코드를 짜서 자동화 시키는 것을 말한다.그렇기 때문에 안정성이 높아지고 인력소모도 낮아진다.전체적인 cost도 낮아지고 테스트 속도도 반면에 높아지게 되며 확장성도 용이해진다.



시스템 테스트 전략 3가지


E2E End-to-End Tsets

프론트부터 백까지 테스트 하는 것을 말한다.
(전체적인 Flow 예를 들어서 브라우저상 클릭 후 생기는 변화에 대한 검증)
테스트 자동화의 영역이라고 생각하면 됨.cypress툴을 사용.
프론트 서버가 열려지있어야지 가능함!

Integration Tests 통합 테스트

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

Unit Tests 단위 테스트

독립적인 진행뒤는 가장 작은 단위의 테스트
가장 작은 단위를 테스트 하는 코드를 작성해서 테스트 하는 것을 말한다.인풋 아웃풋만 비교.빠른 문제 파악 가능.시간과 비용 절감.
리팩토링시 안정성 확보.코드에 대한 문서로 활용
서버가 필요없고 항상 돌릴 수 있다는 장점이 있다.

Unit 부터 점점 복잡성이 올라감.
Unit 테스트를 가장 높은 비중으로 줘야 좋음 70%로!



profile
꾸준히 성장하는 개발자 입니다 😊

0개의 댓글