1. 애자일 프로세스 : 짧은 반복주기 / 변화에 대응 소프트웨어개발 방식
1) XP : 테스트 중심
- TDD(Test-driven Development) : J유닛을 사용하여 모듈들을 검사, 코딩보다 테스트 먼저
- 리팩토링(Refactoring) : 프로그램의 외부는 변경하지 않고 내부를 개선하는 활동
- 짝프로그래밍(Pair Programming) : 2명이서 하나의 프로그램을 개발해서 소프트웨어의 생산성을 올림
2) 스크럼(Scrum) : 팀단위 활동 강조
- User Story or Product backlog : 사용자 요구사항
2. 소프트웨어 테스트
V 모델 : 개발 단계와 테스트 단계를 V 모양으로로 그린것
왼쪽의 V는 개발단계 : 요구사항/분석/ 설계/구현
오른쪽의 V는 테스트 단계 : 단위테스트/ 통합테스트 / 시스템 테스트 / 인수테스트
1) 단위 테스트 : 어떤 모듈 함수를 테스트 하는것
2) 통합 테스트 : 모듈간의 인터페이스를 테스트 ( TOP-DOWN, BOTTOM-UP, 샌드위치)
> 빅뱅 테스트 : 모든 모듈을 한꺼번에 결합해서 테스트 하는데 이 경우는 인터페이스 오류가날 확률이 작을 경우
> 점진적 통합 방식 : 하나의 모듈로부터 한개한개 결합해서 테스트 하는것
- TOP-DOWN : 상위모듈로부터 하위모듈로 결합하며 테스트 (STUB : TOP-DOWN시 필요한 프로그램)
- BOTTOM-UP : 하위모듈에서 상위모듈로 테스트(드라이버 : 바텀다운시 필요한 프로그램)
- 샌드위치 or 하이브리드 : 탑다운과 바텀업을 동시에
3) 시스템 테스트 : 기능적 비기능적(성능, 보안, 가용성, 유저인터페이스) 모두 테스트
4) 인수 테스트 : 고객이 직접 테스트 하는것 고객 밸리데이션을 한다.
- 알파 테스트 : 고객이 제약된 환경에서 테스트 하는것
- 베타 테스트 : 고객이 자유롭게 테스트 하는것
테스트 단계
단위 > 통합 > 시스템 > 인수
테스트의 종류
1) 블랙박스 테스트(Black Box Test) : 내부의 구조 모름
- 페어 와이즈 테스팅(pair-wise testing) : 조합테스트 테스트케이스의 수를 줄이기 위해서 중복 테스트를 줄이는것
- 동치 클래스 테스트 (Equivalence Partitioning Testing) : 입력값이 0~100까지 있으면 0과 50 100을 입력해서 테스트 하는것 이때 입력을 하는 것을 테스트 케이스 라고 한다.
- 경계값 분석 테스트(Boundry Value Analysis) : 경계값을 테스트 케이스로 선정할 것을 가정을 해서 0~100 사이의 값을 0, -1, 1, 100, 99, 101을 넣어보는것
2) 화이트박스 테스트(White Box Test) : 테스트의 로직 구조를 보면서 테스트 내부구조 테스트
- 문장 테스트(Statement Coverage) : 모든 문장이 한번 이상 실행되게 테스트 해라
- 분기 테스트(Branch Coverage) : 모든 조건문 한 번 이상 수행
- 조건 테스트(Condition Coverage) : 참과 거짓을 테스트
- 분기/조건 테스트(Branch/Condition Coverage) : 모든 경우의 분기를 다 해 본다.
소프트웨어 품질
품질보증(Quality Assurance) : 품질 보증에서 프로세스의 과정이 올바른가
- 워크스루 : 인스펙션에 비해서 비공식적
- 인스펙션 : 가장 공식적인 품질검토 회의이면서 중재자를 통해 소프트웨어품질을 확인
Qualiry control : 만들어진 제품의 품질이 우수한가
(퀄리티 컨트롤 대표적인예가 테스트임 : 단위, 통합, 시스템, 인수, 블랙/ 화이트박스)
소프트웨어에 품질에대한 성숙도 모델
소프트웨어 품질이 얼마나 우수한가를 평가하는 모델
미국 카네기에서 만든 CMMI가 있다.
CMMI : 초기, 반복, 정의, 정량, 최적의 5등급으로 품질을 평가
디자인패턴
https://moo-you.tistory.com/198
'정보처리기사' 카테고리의 다른 글
개발 기술 환경 파악 (0) | 2021.06.19 |
---|---|
요구사항 개발 프로세스 (0) | 2021.06.04 |
소프트웨어 아키텍처 비용 평가 모델 종류 (0) | 2021.06.03 |
소프트웨어 아키텍처 패턴 (0) | 2021.06.02 |
소프트웨어 아키텍처 4+1 뷰 (0) | 2021.05.29 |
댓글