본문 바로가기

나는 리뷰어다 2023

[8월 리뷰]풀스택 테스트

    "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

 

10가지 테스트 기술의 기본 원칙과 전략

 

테스트를 처음 접하는 사람들에게

어떤 시점, 어떤 유형의 테스트를 수행해야 하는지

도움이 된다.

 

테스트 전략은 변하지 않고 오래 간다.

 

 

이 책은 테스트를 11가지로 종류를 나열하고, 정의와 테스트 방법을 설명하고 있다.

각각 어떤 시선에서 테스트를 해야하는지, 테스트 방법이 이렇게 많았는지를 꺠닫게 해주었다.

특히 QA 분이 자동화 기능 테스트를 한다고 했을 때 무슨 말일까 싶었는데(회사 마다 다를 수 있겠지만)

java로 Junit 테스트 코드를 작성하는 내용이 포함된 내용을 보고는 회사에서 코드를 짜면 테스트 코드를 짜냐고 고민했던 나의 업무랑 비슷하구나를 꺠달았다.

 

이 책은 간단하게 웹 개발을 하고있는 개발자와 QA 분들이 보기에 테스트 종류 별 개념과 목표를 정리해줘서 도움이 될 것으로 보인다. 

 

 

웹 개발자로 일하고 있는 나는 이 책에 들어있기를 바랬던 테스트 설명은

1) 테스트 코드의 작성

2) 부하테스트 하는 방법

3) 피들러같은 걸 어떻게 사용하는지 였다.

 

1)번과 2)번은 간단하게 설명이 되어있고

3)번은 없었다. 다만 프론트왜 백단에서 부하 테스트를 하는 어플리케이션은 설명이 되어있어서 이런 게 있구나를 꺠달았다.

 

 

 

책 내용 요약

1. 풀스택 테스트
2. 수동 탐색적 테스트
3. 자동화 기능 테스트
4. 지속적 테스트
5. 데이터 테스트
6. 시각적 테스트
7. 보안 테스트
8. 성능 테스트
9. 접근성 테스트
10. 교차 기능 요구 사항 테스트
11. 모바일 테스트

 

과거에는 버그가 없는 게 소프트웨어 품질을 동일시 함

오늘날은 사용자 관점에서

1)  쉬운 사용성

2) 아름다운 디자인

3) 높은 보아성

4) 빠른 응답 속도

5) 장애 없는 서비스

 

풀 스택 테스트란?

애플리케이션이 원하는 대로 작동하는지 검증

테스트를 위해서는

1) 마이크로 수준 : 클래스 메서드, 입력 데이터 값, 로그 메시지, 에러 코드

2) 매크로 수준: 기능 테스트, 기능 간 통합, 엔드 엔트 워크플로우

 

애플리케이션의 총 주문 금액을 게산하기 위한 개발

1) 올바른 금액을 계산 하고 있는 지

2) 계산 과정에서 보안상의 문제가 없는 지

 

 

소프트웨어 개발과정

요구 사항 분석 > 설계 > 개발 > 테스트 > 릴리즈

 

수동 탐색적 테스트
사용자 스토리에 기록된 것 외에도 다른 시나리오를 도출하고, 테스트 환경에서 시뮬레이션하고, 애플리케이션의 작동을 관찰

전체 애플리케이션이 배포된 테스트 환경에서 수행된다.
테스터는 다양한 실시간 시나리오를 시뮬레이션, 작동을 관찰하기 위해 데이터베이스, 서비스, 백그라운드 프로세스 등을 원하는 대로 조작한다

문서화 된 것 이상으로 나아가 애플리케이션에 관해 알려지지 않은 것을 탐구한다.
구성요소
탐색적 테스트 프레임워크

동등 클래스 분할
경계값 분석
상태 전환
결정 테이블
인과관계 그래프
페어와이즈 테스트
여러개의 독립적인 변수 입력에서 결과를 도출할 때 테스트 케이스 최소화에 도움되는 프레임워크, 경우의 수를 줄이네
샘플링
오류 추측

기능 탐색

 
수동 테스트
주어진 요구 사항을 단순히 확인, 분석적 사고를 요구하지 않는다

 

 

 

자동화된 기능 테스트
사람대신 도구가 테스트 실행, 검증을 수행

테스트 비용을 줄이고
새로운 기능이 개발될 때마다
기존 기능과 통합을 테스트함

기존 기능이 문제가 없는지 회귀 테스트를 수행하여 확인한다

구성요소

유닛 테스트
애플리케이션 기능의 가장 작은 부분을 검증한다
개발자가 코드를 작성한다. 

통합 테스트
개발자가 작성
외부 시스템과 응답하는 테스트를 한다. 외부 시스템 응답 시간에 따라 통합 테스트 시간이 달라질 수 있다.
그래서 유닛 테스트보다는 시간이 오래 걸린다.

계약 테스트
반환 되는 데이터가 정확한지 확인하는 것이 아니라, 게약 구조에 초점

유닛테스트보다 작성하기 어렵다. 팀 간 협업이 필요한 end to end 설정 때문이다


end to end test
도메인 흐름 전체를 검증한다
웹 사이트에서 상품을 주문 -> 창고 관리 시스템 -> 타사 배송 파트너 서비스 -> 주문 처리

 

 

지속적 테스트 CD
짧은 주기로 사용자에게 점진적으로 피드백을 제공하는 방식
사용자의 피드백을 기반으로 제품 전약을 빠르게 평가하고 조정할 수 있다.

 

 

데이터 테스트
데이터가 곧 돈이다.
데이터 무결성을 위한 테스트가 중요하다

 

시각적 테스트
애플리케이션의 룩앤필
사용자에게 조화로움과 쾌적함을 제공

 

보안 테스트
정보 유출, 
성능 테스트
애플리케이션의 성능이 조그만 떨어져도 기업의 매출과 평판에 막대한 손실이 발생한다

오픈소스 성능 테스트 도구
제이미터

아파치 벤치마크: 명령어로 사용자 부하를 엔드포인트로 테스트함

 

 

접근성 테스트
법에서 요구하는 접근성 기준을 알아야 한다.

 

교차 기능 요구 사항 테스트 cross function requirement
가용성, 확장성, 유지보수성

 

모바일 테스트