일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 오름캠프
- 오름캠프플러터
- #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 패스트 캠퍼스
- 오존석의 생존코딩
- 모두의연구소
- 모두의연구소 오준석생존코딩 오름캠프
- 플러터
- 오준석의 생존코딩
- 오준석의생존코딩
- ㅇ
- 생존코딩
- 모두연구소
- Tag #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 모두의 연구소 # 오준석의생존코딩# 오름캠프
- Today
- Total
꾸준히 하고싶은 개발자
16일차 unit Test 본문
클래스를 로직 다 작성하고 나면 끝이 아니다 테스트를 해야한다.
예를 들어
person 클래스 완성했다고 해서 끝이 아니고 person 클래스안에서 인간적인 실수로 인한 로직이 제대로 작동하는지를 아닌지를 unit Test 통해서 확인해야한다.
테스트를 통한 품질 올리는법
수동 테스트 : 개발자 할 수있는 print(''); 가 수동테스트다
단위테스트 : 1개의 클래스나 메서드를 테스트 할 때 사용
통합 테스트 : 2개이상의 클래스를 테스트
화이트 박스 테스트
화이트 박스 테스트는 소프트웨어 테스트의 한 종류로 소프트웨어의 내부 구조와 코드에 중요하게 여긴다.
특징
코드의 경로 조건문 반복문 함수 등 분석해서 테스트 케이스를 설계하고 검증 하는 방식
기본 경로 테스트 :
경로를 따라가며 테스트를 수행한다.-> 프로그램 실행하는경로
반복 루프 테스트 :
프로그램 내의 루프 구조를 테스트하여 루프가 제대로 동작하는지 확인
조건 테스트
프로그램 내의 조건문을 테스트하여 참과 거짓을 판별 하는 테스트
경계값 분석
입력값 의 최소 최대 경계와 경계값에서 동작을 테스트
함수나 모듈 의 출겨이 경계값에서 예상대로 동작하는지 확인 하는 테스트
결합 테스트
모듈간 통합 테스트 각 모듈간에 상호 작용 할때 동작을 하는 테스트
의존성 분석
모듈간의 의존성을 분석하고 해당 의 존성을 테스트
조건 -결정 테스트
조건문이 참 인경우 와 거짓인 경우 에 대한 테스트를 수행하는 테스트
블랙 박스 테스트
소프트웨어를 검증하는 데 있어서 내부 구조나 코드의 동작을 고려하지 않고 오로지 입출력에만 중요하게여긴 테스트 방법
시스템을 검증하는 사람은 시스템 내부 동작 원리를 몰라도 오로지 입력 -> 출력 을 확인하여 시스템이 제대로 동작하는지 확인한다.
1. 시스템 내부의 동작이해 필요가없다.
테스트 하는 사람이 내부 동작하는 원리를 몰라도 테스트를 수행하는지를 확인 할수있다.
사용자 관점에 이루어지고 시스템이 예상대로 동작하는지 확인
2.사용자 요구사항에 기반: 블랙박스 테스트는 주로 사용자 요구사항과 명세서에 기반하여 테스트 케이스를 설계합니다. 시스템이 사용자의 예상대로 동작하는지 확인
3. 입력과 출력 테스트: 주로 입력값을 주고 시스템이 올바른 출력을 생성하는지 확인하는 방식
4. 테스트 케이스 설계: 테스트 케이스는 시스템의 기능, 비기능적 요구사항, 경계 조건 등을 고려하여 설계
단위테스트
주로 작은 코드 조각이나 함수와 개별 단위에 중요하여 여긴다.
테스트 케이스
소프트웨어의 특정 부분이나 로직이 제대로 정상적으로 동작하는지를 학인하기 위한 입력 값 실행 조건 예상 기술 이다.
테스트의 장점
버그 식별 및 수정
테스트는 스프트웨어의 버그를 조기에 찾아 내는데 도움을 준다. 이를 통해 버그가 생기기 전에 수정 할 수있으며
-> 소프트웨어 의 안정성을 향상을 시킵니다.
소프트웨어 품질 향상:
테스트는 소프트웨어 의 기능적 및 비기능 요구사항을 확인 하고 품질 향상시킵니다.
재사용성 증가
테스트 케이스는 소프트웨어의 기능을 독립적으로 검증하기 때문에 개별 모듈를 다른 프로젝트 에서 재사용 할 수있다.
비용 절감
테스트를 통해 버그를 조기에 찾아내고 수정함으로써 개발 비용 절감 할 수있다.
자동화를 통한 효율성 향상
자동화 된 반복적인 로직을 효율적으로 수행하며 테스트 수행 기간을 단축 시켜주어 더 자주 실행 할 수있다.
테스트의 단점
앱품질 향상되지만 개발속도는 감소하게 된다 사장 입장에서는 속이 탄다.
테스트를 하는 이유
데이터 베이스
모델 클래스가 비즈니스로직 변경될때 테스트 사용한다.
네트워크
데이터베이스에 스키마 가 변경될때 테스트 한다.
네트워크 환경에 의존 하면 안된다.
데이터 검증
예측한 데이터를 제대로 처리하고 데이터 가 들어왔는지 확인 할때 테스트한다.
TDD테스트 주도 개발
안정성을 가지고 있다.
유행하는 TEST 방식있다 .
실습
Mock 객체 활용
네트워크 연결되지않는 상태에서 mock 데이터가 있다면 개발을 이어 나갈 수있다.
전체 데이터 있는게 아니라면 테스트 하는게 어려울 수도있다 .
테스트 런 타임이 느려진다.
느낀점
mock 데이터 가짜 데이터 이해 안됬지만 조금은 이해했습니다.
'모두의연구소' 카테고리의 다른 글
flutter ui (0) | 2023.12.20 |
---|---|
안드로이드 스튜디오 단축키 (0) | 2023.12.19 |
Find the smallest integer in the array (0) | 2023.12.17 |
15일차 DTO (0) | 2023.12.15 |
14일 네트워크 통신 (0) | 2023.12.14 |