2.1 소프트웨어 개발수명주기(SDLC)에서의 테스팅
소프트웨어 개발수명주기(SDLC)란?
소프트웨어가 계획되고, 설계되고, 개발되고, 테스트되고, 배포되며, 유지 관리되는 전체 과정을 체계적으로 정의한 프로세스입니다.
SDLC의 중요성:
- 구조화된 접근: SDLC는 소프트웨어 개발의 전 과정을 체계적으로 관리하여 혼란을 줄이고, 프로젝트를 예측 가능하게 만듭니다.
- 품질 보장: SDLC는 각 단계에서 명확한 목표와 검증 과정을 통해 최종적으로 품질이 높은 소프트웨어를 제공하는 데 도움을 줍니다.
- 효율성 향상: 프로젝트 관리가 더 효율적으로 이루어지고, 시간과 자원을 더 효과적으로 사용할 수 있습니다.
- 위험 관리: SDLC를 통해 잠재적인 위험을 초기에 식별하고 완화할 수 있습니다.
- FL-2.1.1 (K2) 소프트웨어 개발수명주기(SDLC)가 또는 선택된 소프트웨어 개발수명주기가 테스팅 에 미치는 영향을 설명할 수 있다
- 테스트 활동 범위 및 시기
- 문서 상세화 수준
- 기법 및 테스트 접근법 선택
- 자동화 범위
- 역할과 책임
- FL-2.1.2 (K1) 모든 소프트웨어 개발수명주기(SDLC)에 적용되는 좋은 테스팅 프랙티스를 상기할 수 있다
- 모든 소프트웨어 개발 활동에 상응하는 테스트 활동을 두어, 모든 개발 활동이 품질 제어의 대상이 되게 한다.
- 독립적은 테스트 목적, 중복은 피하고, 포괄적인 테스팅
- 시프트-레프트 전략
- FL-2.1.3 (K1) 개발에서 테스트 우선 접근법의 예를 들 수 있다
- 테스트 주도 개발, 인수 테스트 주도 개발, 행위 주도 개발은 개발 방향 결정을 위한 수단으로 정의 된다.
- FL-2.1.4 (K2) DevOps 가 테스팅에 미치는 영향을 요약할 수 있다
- 데브옵스는 개발과 운영이 협력해 공통된 목표를 달성하도록 시너지 창출을 목표로 하는 조직의 차원 접근법
- 개발과 운영이 가진 생각의 차이를 줄임과 동시에 각자 하는 일의 가치를 동등하게 보도록함
- 장점 :
- 코드 품질, 코드 악영향에 대한 빠른 피드백이 가능
- 지속적인 통합으로 인해 높은 품질의 코드 작성 가능 시프트-레프팅
- 지속적 통합(CI)/지속적 배포(CD)와 같은 자동화 프로세스 장려
- 비기능 품질 가시성 상승
- 수동테스팅 비율 감소
- 리그레션 리스크( 소프트웨어 개발과 테스트 과정에서 기존에 잘 작동하던 기능이나 코드가 새로운 변경이나 업데이트로 인해 예상치 못하게 오류가 발생하는 위험 ) 최소화
- 단점 :
- 데브옵스 배포 파이프라인을 정의하고 설정해야 한다.
- 지속정 통합/배포 도구를 도입하고 유지보수 해야한다.
- 테스트 자동화를 위한 추가 자원 필요, 유지보수가 어려울 수 있음
- FL-2.1.5 (K2) 시프트-레프트 접근법을 설명할 수 있다
- 테스트를 일찍 수행해야 한다는 것을 의미
- 시프트-레프트의 주요 장점
- 조기 결함 발견: 개발 초기에 버그를 발견할 수 있어 수정 비용이 낮습니다.
- 빠른 피드백: 지속적인 테스트와 피드백으로 개발 속도와 품질을 높일 수 있습니다.
- 비용 절감: 결함이 후반에 발견될 경우 수정 비용이 크게 증가하는데, 이를 줄일 수 있습니다.
- 품질 향상: 초기 단계에서 요구 사항과 설계의 결함을 찾아 개선할 수 있습니다.
- 시프트-레프트를 구현하는 방법
- 테스트 자동화: 코드가 작성될 때마다 자동으로 실행되는 테스트를 구축해 빠르게 피드백을 받습니다.
- CI/CD 파이프라인 도입: 지속적인 통합(Continuous Integration)과 지속적인 배포(Continuous Delivery) 시스템을 구축해, 코드 변경 사항을 항상 테스트합니다.
- 테스트 주도 개발(TDD): 개발자가 코드를 작성하기 전에 테스트를 먼저 작성해, 코드가 의도한 대로 동작하도록 유도합니다.
- 요구 사항 분석 단계에서 테스트 계획: 요구 사항 분석 및 설계 단계에서부터 테스트 시나리오를 고민하고 준비합니다.
- FL-2.1.6 (K2) 프로세스 개선을 위한 방법으로 회고의 사용을 설명할 수 있다
- 회고는 프로젝트 반복 주기가 끝날 때, 릴리스 마일스톤, 필요시 진행
- 무엇인 성공적인지, 유지해야 할 것이 무엇인지?, 부족한 것과 개선 할 것, 다음 목표에 대한 방향을 잡기 위해서 필요한 단계
- 결과를 기록하여 지속적인 개선을 성공적으로 구현
- 이로 인해 테스트의 효과성,효율성이 향상, 품질 향상, 팀의 결속 학습 향상, 협업이 개선 됩니다.
2.2 테스트 레벨과 테스트 유형
- FL-2.2.1 (K2) 테스트 레벨을 구별할 수 있다
- FL-2.2.2 (K2) 테스트 유형을 구별할 수 있다
- FL-2.2.3 (K2) 확인 테스팅을 리그레션 테스팅과 구별할 수 있다
2.3 유지보수 테스팅
- FL-2.3.1 (K2) 유지보수 테스팅과 유발요인을 요약할 수 있다
'코딩 교육 TIL' 카테고리의 다른 글
2024-10-16 QA TIL (3) | 2024.10.17 |
---|---|
2024-10-15 QA TIL (0) | 2024.10.15 |
2024-10-11 TIL (5) | 2024.10.11 |
2024-10-10 QA TIL (6) | 2024.10.10 |
2024-09-24 TIL (5) | 2024.09.24 |