기존 프로젝트에 자동화 테스트를 도입하는 것은 복잡하고 다단계의 작업입니다.
사안의 역사: 수동 테스트가 오랜 기간 동안 수행된 조직에서는 프로세스, 문서 및 코드 아키텍처가 항상 자동화 요구사항에 부합하지 않습니다. 테스터는 자동화 도구를 다루지 못하고, 테스트 및 애플리케이션 아키텍처는 자동 테스트의 빠른 실행을 지원하지 않을 수 있습니다.
문제: 도입의 주요 어려움은 다음과 같습니다:
해결책: 팀은 다음 단계를 거쳐야 합니다:
주요 특징:
자동화 테스트가 수동 테스트를 완전히 대체할 수 있습니까?
아니요. 비록 자동화 테스트의 적용 범위가 높더라도, 이들은 반복적이고 결정론적인 시나리오에만 적용됩니다. 발견할 수 없는 사용성 버그, 탐색 문제, 디자인 결함 및 비정형 "인간" 버그는 일반적으로 수동으로 잡힙니다.
모든 테스트 케이스를 예외 없이 자동화해야 합니까?
아니요. 모든 테스트 케이스를 자동화하는 것은 정당하지 않을 수 있습니다: 낮은 빈도의 테스트나 복잡한 시나리오는 비용이 많이 들고 낮은 수익률로 인해 수동 테스트로 두는 것이 좋습니다.
테스터는 성공적인 자동화를 위해 꼭 프로그래머여야 합니까?
아니요, 하지만 기본적인 프로그래밍 수준은 바람직합니다. 팀은 일반적으로 경험 많은 테스터와 자동화 아키텍트, 자동화 제작자는 개발자로 구성됩니다.
회사는 우선 순위를 논의하지 않고 별도의 팀을 구성하지 않고 모든 수동 테스트를 동시에 자동화하겠다고 결정했습니다. 멋진 도구를 구매했으나, 필요한 브라우저의 일부를 지원하지 않았습니다. 결국 3개월 후 반의 테스트가 작동하지 않게 되었습니다.
장점:
단점:
팀은 가장 자주 발생하는 10개의 회귀 시나리오를 수동으로 선택했습니다. Python(Selenium)으로 자동화 교육을 실시하고 CI에 테스트를 추가했습니다. 6개월 후 70%의 회귀 검사가 자동으로 실행되었고, 수동 테스터는 창의적인 작업에 집중했습니다.
장점:
단점: