개발 테스트
Development testing시리즈의 일부 |
소프트웨어 개발 |
---|
개발 테스트는 소프트웨어 개발 위험, 시간 및 비용을 줄이기 위해 광범위한 결함 방지 및 탐지 전략의 동기화된 적용을 수반하는 소프트웨어 개발 프로세스입니다.
소프트웨어 개발에 대한 조직의 기대에 따라 개발 테스트에는 정적 코드 분석, 데이터 흐름 분석, 메트릭 분석, 피어 코드 리뷰, 유닛 테스트, 코드 커버리지 분석, 트레이서빌리티 및 기타 소프트웨어 검증 방법이 포함될 수 있습니다.
개요
개발 테스트는 소프트웨어 개발 라이프 [1]사이클의 구축 단계에서 소프트웨어 개발자 또는 엔지니어가 수행합니다.
기존의 QA를 대체하는 것이 아니라 [2]QA를 강화하는 것입니다.개발 테스트는 코드가 QA로 승격되기 전에 구축 오류를 제거하는 것을 목표로 합니다.이 전략은 개발 및 QA [3]프로세스 전체의 효율성뿐만 아니라 결과 소프트웨어의 품질을 향상시키는 것을 목적으로 합니다.
목적과 이점
개발 테스트는 주로 다음과 같은 목적으로 적용됩니다.
- 품질보증-(결함/취약성을 테스트하려고 하는 것이 아니라) 소프트웨어에 품질과 보안을 구축함으로써 전체적인 개발 및 테스트 프로세스를 개선합니다.
- 업계 또는 법령 준수—엄격한 위험 감소와 양방향 요건 추적성(예: 요건, 테스트, 코드 검토, 소스 코드 결함, 등)[3]을 일반적으로 요구하는 산업 또는 규제 준수 이니셔티브(예: FDA, IEC 62304, DO-178B, DO-178C, ISO 26262, IEC 61508 등)의 준수 달성.
VDC의 조사에 따르면 표준화된 프로세스 내에서 개발 테스트 프로세스를 표준화하는 것은 소프트웨어 품질을 향상시킬 뿐만 아니라(개발 액티비티를 검증된 베스트 프랙티스에 맞추어 조정함으로써) 프로젝트의 예측 [4]가능성도 향상시킵니다.voke 리서치는 개발 테스트를 통해 소프트웨어 개발 라이프사이클 [2]전체에 걸쳐 소프트웨어의 예측성, 추적성, 가시성 및 투명성이 향상된다고 보고합니다.
주요 원칙
위의 각 애플리케이션에서 개발 테스트는 신뢰성, 보안, 퍼포먼스 및 법령 준수에 대한 조직의 기대를 나타내는 정책을 정의하는 것으로 시작합니다.그런 다음 팀이 이러한 정책에 대한 교육을 받은 후 개발 테스트 절차를 구현하여 소프트웨어 개발 활동을 이러한 [5]정책에 맞춥니다.이러한 개발 테스트에는 다음이 포함됩니다.
- 근본 원인 분석을 통해 오류 발생 가능성을 줄이는 데 도움이 되는 Deming 방식의 접근방식을 통해 가능한 한 많은 결함을 예방하는 프랙티스
- 결함이 도입된 직후에 결함을 발견하여 수정하는 방법이 가장 빠르고 쉽고 [3][6]저렴합니다.
광범위한 결함 방지 및 결함 검출 관행의 적용에 중점을 두는 것은 소프트웨어 개발 라이프 사이클의 다른 지점에서 다른 유형의 결함을 드러내기 위해 서로 다른 개발 테스트 기법이 조정된다는 전제를 바탕으로 하기 때문에 여러 기술을 동시에 적용하면 결함 미끄러짐 위험이 감소합니다.틈새로 들어가다.[3]Boehm과 Basili는 자주 참조되는 "소프트웨어 결함 감소 상위 10개 목록"[7]에서 광범위한 관행 적용의 중요성을 확인했습니다.
정적 분석
정적 분석 도구의 적용을 설명하기 위해 "개발 테스트"라는 용어가 종종 사용되어 왔다.많은 업계 리더들이 이 결합에 대해 문제를 제기하고 있습니다.이는 정적 분석이 기술적으로 테스트하는 것이 아니기 때문입니다.모든 코드 행을 커버하는 정적 분석조차도 코드가 본래의 기능을 수행하는지 검증할 수 없거나 특정 유형의 결함이나 보안 취약점이 소프트와로만 드러나는 것을 확인할 수 없기 때문입니다.re는 동적으로 실행됩니다.정적 분석만으로는 문제가 되지 않는다고 경고하는 사람이 많지만 대부분의 업계 전문가는 정적 분석이 많은 보안, 신뢰성 및 성능 결함을 제거하는 검증된 방법이라고 입을 모은다.즉, 정적 분석은 개발 테스트와 동일하지는 않지만 일반적으로 개발 [8][9]테스트의 구성요소로 간주됩니다.
추가 액티비티
플로우 분석이나 유닛 테스트 등 정적 분석의 다양한 구현과 더불어 개발 테스트에는 주요 품질 액티비티로서 피어 코드 검토도 포함됩니다.코드 리뷰는 소프트웨어 [10]개발에서 가장 효과적인 결함 검출 및 방지 방법 중 하나로 널리 알려져 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ McConnell, Steve (2004). Code Complete (2nd ed.). Microsoft Press. ISBN 0-7356-1967-0.
- ^ a b voke Market Mover 어레이 보고서: Teresa Lanowitz, Lisa Dronzek, voke, 2012년 6월 5일 플랫폼 테스트
- ^ a b c d Kolawa, Adam; Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. ISBN 0-470-04212-5.
- ^ VDC Research의 "내장 소프트웨어 품질을 위한 자동 장애 방지" 백서
- ^ Wayne Ariola, SD Times, 2011년 7월 28일 정책 자동화에 의한 개발에 대한 큰 기대
- ^ 2012년 2월 1일 CIO Matthew Heusser의 소프트웨어 개발, 테스트 및 검사에 대한 재고
- ^ Barry Boehm과 Victor R이 선정한 소프트웨어 결함 감소 Top 10 목록.바실리, 컴퓨터, 2001년 1월
- ^ Dr. Paul E의 소프트웨어 엔지니어링 스태틱아나라이저블랙, 크로스톡:The Journal of Defense Software Engineering, 2009년 3월 / 4월
- ^ Arthur Hicken, EE 카탈로그, 2012년 9월 25일, 임베디드 및 안전 중요 개발을 위한 정적 분석의 3대 실수
- ^ SIL 요건 충족: Wayback Machine 개발 관련 기사에서 2016-03-04 아카이브된 E/E/PE 안전 관련 시스템의 기능 안전성 확보Testing.com