14P by ironlung 2023-08-24 | favorite | 댓글과 토론
  • 지속적 테스트 의미:

    • 소프트웨어 테스트는 개발한 소프트웨어가 요구사항을 잘 반영하였는지, 기능이 정상적으로 작동하는지, 안정적인지 등을 확인하여 품질을 유지하고 결함을 확인하는 활동
    • 소프트웨어 개발 라이프사이클 전반에 걸쳐 테스트를 자동화하고 실행
    • 버그와 결함을 늦게 감지하면 잠재적 부채가 증가해 품질이 떨어지고 위험도 상승
  • 작동방식:

    • 자동화 툴을 사용해 모든 프로덕션 단계에서 사전 정의된 QA 스크립트를 로드하면서 작동
    • 자동화 스크립트는 소스 코드 효율을 순차적으로 검증하고, 관련 피드백을 팀에 즉시 제공
    • 자동화 테스트가 실패하면, 개발 팀은 해당 개발 단계에서 알림을 받고 소스 코드 수정
    • 자동화 테스트가 검사를 통과하면, 프로젝트는 자동으로 소프트웨어 개발 라이프사이클의 다음 단계로 넘어감
  • 지속적 테스트 관련 신기술:

    • AI/ML: 테스트 케이스 생성 자동화
    • 자동화: 테스트 계획, 테스트 케이스 설계, 테스트 실행, 테스트 리포트 자동화
    • DevOps: 개발 팀과 운영 팀 간의 자동화, 협업, 소통 촉진
    • 블록체인: 탈중앙화되고, 투명한 방식으로 테스트 결과와 데이터 저장, 아무도 데이터를 수정하거나 조작할 수 없도록 함
    • IoT: 많은 IoT 디바이스와 플랫폼을 시뮬레이션해 테스터가 여러 디바이스와 플랫폼에서 애플리케이션을 테스트하도록 지원
  • 지속적 테스트 도입 시 유의 사항:

    • 테스트를 실행하는 툴을 Jenkins, CircleCI, Bamboo, 다른 주요 CI/CD 툴과 원활하게 통합
    • DevOps, 자동화, CI/CD 파이프라인 전문 지식 포함해 기존 테스트와 다른 기술이 필요
    • 자동화 테스트를 실행할 수 있도록 적절한 컴퓨팅 환경이 있어야 함
    • 지속적 테스트에 활용할 수 있는 도구와 기술이 다양하기에 올바른 도구를 고르는 일 어려움
    • 테스트를 손쉽게 자동화하고, 적절한 기간에 이를 실행해야 함
    • 정의된 통과 또는 실패 조건, 문제 해결 위한 구체적 경로가 있어야 함