automated regression testing
이 자습서에서는 자동화 된 회귀 테스트의 과제를 설명합니다. 회귀 테스트를 자동화하는 프로세스 및 단계에 대해서도 알아 봅니다.
회귀 테스트 케이스를 식별하고, 자동화를 수행 할 도구를 선택하고, 비용, 시간 및 노력 분석을 수행하고, 스크립트를 작성하고, 마지막으로 테스트 케이스를 실행할 수 있도록 수동 테스트 팀에 전달하는 것부터 시작하여 회귀 테스트 케이스를 자동화하는 방법을 배웁니다. 언제 어디서나.
왜 회귀 테스트 스위트 만 있는지 궁금하다면, 회귀 테스트 스위트가 반복적이고 시간이 걸리는 테스트 케이스 세트이기 때문에 자동화를위한 주요 후보이기 때문입니다. 따라서 자동화하면 실제로 많은 리소스가 절약되고 시간도 덜 소요됩니다.
회귀 테스트 케이스에 대한 빠른 보고서를 얻을 수 있으며이 단계를 사용하여 다른 테스트 스위트도 자동화 할 수 있습니다.
=> 완전한 회귀 테스트 시리즈를 보려면 여기를 클릭하십시오.
학습 내용 :
자동화 된 회귀 테스트
최근에 4 개의 리소스로 새로운 자동 테스트 프로젝트를 시작하고 싶을 때 애자일 방법론 중 하나를 적용 할 생각이었습니다. 하지만 마음 속에 일련의 질문이 떠 올랐기 때문에 계속할 수 없었습니다.
질문은 다음과 같습니다.
- 자동화 된 테스트에서 애자일 방법론을 사용할 수 있습니까?
- 기존 도구를 사용할 수 있습니까?
- 오픈 소스 도구를 찾아야합니까?
- 애자일 환경에서 자동화를 구현할 때 직면해야하는 과제는 무엇입니까?
이 기사에서는 애자일 방법론으로 자동화를 구현하는 동안 직면 한 몇 가지 문제를 분석해 보겠습니다. 애자일 환경에서 자동화 된 회귀 테스트는 혼란스럽고 구조화되지 않고 통제되지 않을 위험이 있습니다.
애자일 프로젝트는 자동화 팀에 자체 과제를 제시합니다. 애자일 방법론은 팀 협업과 제품의 빈번한 제공을 강조합니다. 불분명 한 프로젝트 범위, 다중 반복, 최소한의 문서화, 초기 및 빈번한 자동화 요구 및 적극적인 이해 관계자의 참여 등과 같은 요인은 자동화 팀의 많은 도전을 요구합니다.
자동화 된 테스트 : 애자일 환경의 과제
자동화 팀에는 몇 가지 애자일 문제가 있습니다. 그러나 그들 중 일부는 아래에 요약되어 있습니다.
과제 1 :요구 사항 단계
테스트 자동화 개발자는 고객 관련 기능에 대한 간략한 설명 인 '사용자 스토리'형식으로 요구 사항을 캡처합니다.
각 요구 사항은 다음과 같이 우선 순위가 지정되어야합니다.
높은: 이는 첫 번째 릴리스에서 반드시 수행해야하는 미션 크리티컬 요구 사항입니다.
매질: 이는 중요한 요구 사항이지만 구현 될 때까지 해결할 수 있습니다.
낮은: 이것들은 가지고 있으면 좋지만 소프트웨어 작동에 중요하지 않은 요구 사항입니다.
우선 순위가 설정되면 릴리스 '반복'이 계획됩니다. 일반적으로 각 Agile 릴리스 반복은 제공하는 데 1 ~ 3 개월이 걸립니다. 고객 / 소프트웨어 담당자는 요구 사항을 너무 많이 변경할 수 있습니다. 때로는 이러한 변경 사항이 너무 휘발성이어서 반복이 충돌합니다. 이러한 변화는 애자일 자동화 테스트 프로세스를 구현하는 데있어 더 큰 과제입니다.
버그 신고 방법
과제 2 :올바른 도구 선택
기록 및 재생 기능이있는 기존의 마지막 테스트 도구는 소프트웨어가 완료 될 때까지 팀이 기다려야합니다. 또한 기존의 테스트 자동화 도구는 Agile Automation 팀이 직면 한 과제와는 다른 기존 문제를 해결하기 때문에 Agile 컨텍스트에서 작동하지 않습니다.
애자일 프로젝트의 초기 단계에서의 자동화는 일반적으로 매우 어렵지만 시스템이 성장하고 발전함에 따라 일부 측면이 안정되고 자동화를 배포하는 것이 적절 해집니다. 따라서 애자일의 효율성과 품질 이점을 얻기 위해서는 테스트 도구를 선택하는 것이 중요합니다.
과제 3 :스크립트 개발 단계
자동화 테스터, 개발자, 비즈니스 분석가 및 프로젝트 이해 관계자는 모두 다음 스프린트를 위해 '사용자 스토리'가 선택되는 킥오프 미팅에 기여합니다. 스프린트에 대해 '사용자 스토리'를 선택하면 일련의 테스트를위한 기반으로 사용됩니다.
기능이 반복 될 때마다 증가함에 따라 기존 기능이 각 반복주기에 새로운 기능을 도입하여 영향을받지 않았는지 확인하기 위해 회귀 테스트를 수행해야합니다. 그만큼 회귀 테스트의 규모 각 스프린트와 함께 성장하고 이것이 관리 가능한 작업으로 유지되고 테스트 팀이 회귀 제품군에 테스트 자동화를 사용하도록합니다.
과제 4 :자원 관리
애자일 접근 방식에는 테스트 기술이 혼합되어 있어야합니다. 즉, 불명확 한 시나리오와 테스트 사례를 정의하고 수행하려면 테스트 리소스가 필요합니다. 수동 테스트 개발자와 함께 자동화 된 회귀 테스트를 작성하고 자동화 된 회귀 패키지를 실행합니다.
프로젝트가 진행됨에 따라 통합 및 성능 테스트를 포함 할 수있는 추가 테스트 영역을 다루기위한 전문 기술도 필요합니다.
요구 사항을 계획하고 수집하는 적절한 도메인 전문가 조합이 있어야합니다. 리소스 관리의 어려운 부분은 여러 기술을 가진 테스트 리소스를 찾아 할당하는 것입니다.
과제 5 :통신
좋은 의사 소통은 자동화 테스트 팀, 개발자, 비즈니스 분석가 및 이해 관계자. 클라이언트와 제공 팀간에 고도로 협력적인 상호 작용이 있어야합니다. 더 많은 클라이언트 참여는 더 많은 제안이나 클라이언트의 변경을 의미합니다. 그리고 그것은 통신을위한 더 많은 대역폭을 의미합니다.
핵심 과제는 프로세스가 모든 변경 사항을 캡처하고 효과적으로 구현할 수 있어야하며 데이터 무결성이 유지되어야한다는 것입니다. 전통적인 테스트에서 개발자와 테스터는 기름과 물과 비슷하지만 민첩한 환경에서는 목표를 달성하기 위해 둘 다 협력해야한다는 것이 도전적인 과제입니다.
과제 6 :일일 스크럼 회의
일일 스크럼 회의는 애자일 프로세스의 핵심 활동 중 하나입니다. 팀은 15 분 동안 스탠드 업 세션을 진행합니다. 이 회의의 효과는 무엇입니까? 이러한 회의는 자동화 실무 개발자에게 얼마나 도움이됩니까? 이 회의에서 논의됩니다.
과제 7 :릴리스 단계
Agile 프로젝트의 목표는 가능한 한 빨리 기본 작업 제품을 제공 한 다음 지속적인 개선 프로세스를 거치는 것입니다. 이는 제품에 대한 단일 릴리스 단계가 없음을 의미합니다. 어려운 부분은 제품의 통합 테스트 및 승인 테스트에 있습니다.
회귀 테스트를 자동화하는 단계
회귀를 자동화하기 위해 따라야 할 프로세스는 다음 단계로 정확하게 나눌 수 있습니다.
이 7 단계는 이해하기 쉽도록 간단한 용어로 아래에 자세히 설명되어 있습니다.
1. 식별
#1) 식별 테스트 케이스 회귀 테스트 스위트의 일부 여야합니다.
- 회귀 테스트 케이스 자동화를 시작하기 위해 가장 먼저해야 할 일은 회귀 테스트 케이스를 식별하고 모든 단계, 데이터 및 전제 조건으로 적절하게 정의하는 것입니다.
- 효과적인 회귀 테스트 도구 모음이 있는지 확인하려면 다음을 포함하는 것을 잊지 마십시오.
- 반복되는 결함이있는 테스트 케이스.
- 엔드 투 엔드 시나리오를 다루는 테스트 케이스.
- 최종 사용자에게 더 잘 보이는 테스트 사례.
- 경계 값에 대한 테스트 케이스.
- 양성 및 음성 테스트 사례의 좋은 혼합.
- 복잡한 테스트 케이스.
#두) 식별 자동화 도구 요구 사항 및 응용 프로그램 동작에 가장 적합합니다. 회귀 테스트 케이스가 식별되고 자동화 할 준비가되면 테스트 케이스에 가장 적합한 도구를 식별하십시오.
도구를 식별하는 가장 좋은 방법은 도구와 요구 사항으로 매트릭스를 만든 다음 어떤 도구가 어떤 요구 사항을 충족하는지 추적하는 것입니다.
추천 읽기 => 최고의 자동화 테스트 도구 목록
#삼) 식별 프로그래밍 언어 사용할 수 있습니다. 시장에서 매우 많은 도구를 사용할 수 있으므로 이러한 도구는 여러 언어를 지원합니다. 따라서 자동화 테스트 사례를 작성하려는 프로그래밍 언어를 식별하는 것이 중요합니다.
예 :브라우저 기반 애플리케이션을위한 회귀 테스트 도구 모음을 자동화하려는 프로젝트가 있다고 가정 해 보겠습니다.
위에서 설명한대로 테스트 케이스를 식별합니다.
- 테스트 사례가 '유효한 사용자 이름과 암호를 사용하여 사용자가 성공적으로 로그인 할 수 있는지 확인'이라고 가정합니다.
다음으로 자동화 도구를 식별합니다.
이제 프로그래밍 언어를 식별 해 보겠습니다.
- 우리는 ' 자바 ”를 고도로 지원되는 언어로서 프로그래밍 언어로 사용합니다.
2. 분석
#1) 하다 비용 분석. 예산 한도 내에서 작업하는 것이 매우 중요합니다. 따라서 식별 단계 후에 자동화해야하는 테스트 사례의 수와 사용할 수있는 도구를 파악할 수 있습니다.
식별 단계의 모든 결과는 대략적인 예산을 세우는 데 도움이되므로 필요한 경우 승인 등을받을 수 있습니다.
#두) 하다 자원과 노력 이 작업을 수행 할 리소스가 있는지 확인합니다. 비용 분석과 함께 자원 및 노력 분석을 수행하여 자원을 더 잘 할당하고 프로젝트에 시간을 효율적으로 사용하는 것이 매우 중요합니다.
리소스와 노력을 추정하는 동안 누군가가 아프거나 일부 테스트 사례에 실행을 위해 더 많은 리소스가 필요한 경우와 같은 위험을 고려하십시오.
#삼) 하다 시각 분석. 예산 및 일정 내에서 자동화 프로젝트를 완료 할 수 있는지 확인하려면 시간 분석이 필요합니다. 시간 분석 작업을하는 동안 개발 중 진행 상황을 모니터링하기 위해 타임 라인 차트를 준비하는 것이 도움이 될 것입니다.
프로젝트의 더 나은 타임 라인 분석을 위해 :
- 프로젝트에서 작업과 하위 작업을 식별합니다.
- 작업 및 하위 작업의 우선 순위를 지정합니다.
- 타임 라인을 더 잘 표현하기 위해 Gantt 차트 또는 네트워크 다이어그램을 그립니다.
예 :식별 단계에서 고려한 예제를 진행하면서이 단계에 대한 설명은 다음과 같습니다.
비용 분석:
이 프로젝트의 대략적인 비용이 $ X 금액이라고 가정 해 보겠습니다.
자원 및 노력 :
이를 위해 하나의 테스트 사례를 처음부터 끝까지 자동화해야하며 약 24 시간 동안 하나의 리소스가 필요하며 작업을 검토 할 리소스가 하나 더 필요합니다. 따라서 2 개의 리소스가 필요하며 예상되는 노력은 약 40 시간입니다.
시간 분석 :
이를 위해 작은 Gantt 차트를 그려 타임 라인을 확인합니다.
3. 교육 / 채용
#1) 일부 리소스가 필요한 경우 훈련 , 훈련을 계획하십시오. 때로는 자동화 테스트 사례를 작성하는 데 관심이있는 수동 테스트 리소스가 있거나 자동화를 위해 선택한 도구를 기꺼이 배우려는 사람들이있을 수 있습니다.
이 경우 회귀 테스트 사례의 자동화 작업을 시작할 수 있도록 이러한 리소스를 식별하고 교육을 계획합니다.
#두) 더 많은 리소스가 필요하면 고용 계획. 노력에 대한 리소스 분석을 수행하고 이미 사용 가능한 리소스로 요구 사항을 충족 할 수없는 경우 예산 내에서 프로젝트에 필요한 적절한 기술을 가진 몇 가지 새로운 리소스를 고용 할 계획을 세웁니다.
예:
Java 개념에 익숙하고 Selenium을 배우고 자하는 리소스가 이미 있다고 가정 해 보겠습니다. 그런 다음 그 사람을위한 셀레늄 훈련을 준비합니다.
자동화에 사용할 수있는 리소스가없는 경우. 그런 다음 셀레늄과 자바를 사용하여 이러한 테스트 사례를 자동화하는 데 어느 정도의 배경 지식을 가진 사람을 고용 할 것입니다.
4. 프레임 워크 및 지침
#1) 도구와 리소스가 준비되면 뼈대 또는 기존 프레임 워크에서 사용할 것을 결정합니다. 이미 빌드 된 여러 프레임 워크를 사용하거나 처음부터 프레임 워크를 빌드 할 수 있습니다.
프레임 워크를 선택하거나 빌드하는 동안 테스트 케이스, 로그, 보고서, 입력, 데이터베이스 연결 등에 대한 구성 요소를 포함해야합니다.
#두) 다른 결정 지원 도구 사용할 수 있습니다. 자동화 스크립트 개발은 코드 작성과 관련된 개발 작업이므로 스크립트 작성을 지원하는 데 필요한 다른 개발 도구를 파악하는 것이 훨씬 좋습니다.
예를 들어 , 도움이 될 수있는 도구로는 git, GitHub, Jenkins 등이 있습니다.
#삼) 개요 지침 자동화 스크립트 작성. 프로젝트에서 작업하는 모든 리소스가 동기화되고 동일한 이름 지정 규칙, 코드 체크인 / 체크 아웃에 대한 동일한 절차 및 동일한 프로그래밍 언어를 사용하도록 가이드 라인을 요약해야합니다.
다음은 네트워크 상태를 확인하는 데 사용되는 도구입니다.
예:
뼈대: 결정합시다 BDD (행동 중심 개발) 자동화 테스트를위한 프레임 워크.
지원 도구 : 자동화를 완벽하게 지원하기 위해 필요한 도구는 GitHub, Jenkins, Log4J, Cucumber 및 JUnit입니다.
5. 자동화 스크립트
자동화 스크립트 작성을 시작하십시오. 자동화가 필요한 도구, 프로그래밍 언어, 필요한 기술 및 테스트 사례 등 모든 것이 준비되면 자동화 스크립트 작성을 시작할 수 있습니다.
스크립트를 작성하는 동안 다음 사항을 확인해야합니다.
- 지침을 따릅니다.
- 우리는 도구를 사용하고 있습니다.
- 테스트 케이스는 모듈화되어 있습니다.
- 여러 테스트 케이스에서 필요한 경우 컴포넌트를 재사용 할 수 있어야합니다.
또한 버전 관리 도구에서 코드가 적절하게 유지되고 모든 팀원이 쉽게 공동 작업 할 수 있는지 확인해야합니다.
예:
이 테스트 케이스를 실행하기위한 실제 스크립트를 작성해 보겠습니다. 스크립트의 샘플은 다음과 같습니다.
먼저이 테스트 케이스의 오이 시나리오는 다음과 같습니다.
기능 : 로그인 기능 확인
사용자로서 애플리케이션에 로그인하고 싶습니다.
시나리오 개요 : 애플리케이션에 로그인
내가 신청서를 열었을 때
사용자 이름 ''을 입력 할 때
그리고 비밀번호를 입력합니다.“”
그리고 로그인 버튼을 클릭합니다
그런 다음 홈페이지로 이동합니다.
예 :
| 사용자 이름 | 암호 |
| testuser1 | password1 |
| testuser2 | password2 |
기능 파일 다음에 기능 파일에 언급 된 단계에 대한 단계 정의를 구현합니다.
public class Login { LoginImpl loginImpl = new LoginImpl(); @Given('^I open application$') public void i_open_application() { loginImpl.openURL('URL'); } @When('^I Enter username '((^')*)'$') public void i_Enter_username(String arg1) { loginImpl.enterUserName(arg1); } @When('^I Enter password '((^')*)'$') public void i_Enter_password(String arg1) { loginImpl.enterPassword(arg1); } @When('^I click on Login button$') public void i_click_on_Login_button() { loginImpl.clickLoginButton(); } @Then('^I go to Home page$') public void i_go_to_Home_page() { loginImpl.verifyHomePage(); } }
결국 로그인 기능 클래스의 실제 구현은 다음과 같습니다.
public class LoginImpl { WebDriver driver; public LoginImpl(){ System.setProperty('webdriver.chrome.driver', 'webdriver/chromedriver.exe'); driver = new ChromeDriver(); } public void openURL(String string) { driver.get(string); } public void enterUserName(String arg1) { driver.findElement(By.id('UserName')).sendKeys(arg1); } public void enterPassword(String arg1) { driver.findElement(By.id('Password')).sendKeys(arg1); } public void clickLoginButton() { driver.findElement(By.id('LoginButton')).click(); } public void verifyHomePage() { String currUrl = driver.getCurrentUrl(); if(currUrl.equals('homePageURL')) { System.out.println('Home page verified'); } } }
6. 검토
(영상 출처 )
# 1) 코드 검토 : 자동화 개발자가 자동화 스크립트 작성을 마치면 다양한 수준의 코드 검토를 수행하는 것이 매우 중요합니다.
코드 검토 도움말
- 잘못된 확인 식별.
- 코드 최적화 지점 찾기.
- 자원을 효율적으로 사용하기 위해 기능을 구현하는 더 나은 방법을 찾습니다.
코드 검토는 또한 개발자의 작업을 다른 개발자에게 노출하고 다른 관점과 개선의 여지를 제공합니다.
# 2) 테스트 사례 검토 : 코드 검토와 함께 테스트 사례 검토도 매우 중요합니다. 자동화 테스트 스크립트가 실행될 때 수동 테스트 사례에서 기대하는 것과 동일한 일련의 작업 및 확인을 수행하는지 확인해야합니다.
따라서 비즈니스 분석가 또는 테스트 전문가와 함께 자동화 테스트 사례를 검토하면 해당 테스트 사례의 자동화 테스트에 대한 신뢰도를 높일 수 있습니다.
예:
예를 들어 코드 검토를 위해 '이름이 아닌 ID로 요소 검색'과 같은 주석이 있다고 가정 해 보겠습니다. 여기에서는이를 고려하여 그에 따라 스크립트를 수정합니다.
또한 성공적으로 로그인 한 후 홈 페이지에있는 경우 테스트 단계를 추가하기 위해 테스트 검토를 수행 할 수 있습니다. 그런 다음이를 스크립트에도 추가합니다.
7. 전달
테스트 케이스 전달, 누구나 언제든지 실행할 수 있습니다. 자동화 스크립트를 사용할 준비가되면 자동화 스크립트에 대한 제공 계획을 세우는 것이 매우 중요합니다.
이 계획은 테스트 케이스를 자동화하는 것이 특정 사람이나 기술 세트로 실행을 제한하지 않도록하기 위해 필요합니다. 팀 또는 프로젝트의 모든 사람이 테스트 케이스를 실행할 수 있어야합니다.
가능한 제공 계획 중 하나는 자동화 된 테스트 케이스를 실행하도록 트리거 될 수있는 Jenkins 작업을 제공하는 것입니다.
예:
여기서는 Jenkins 작업을 사용하여 테스트 케이스를 제공했다고 가정하겠습니다. 이 Jenkins 작업은 GitHub에서 코드를 가져 와서 빌드하고 다른 컴퓨터에서 테스트 케이스를 실행합니다.
작업이 성공하면 생성 된 테스트 보고서가 표시됩니다. Jenkins에 대한 액세스 권한이있는 사람은 누구나이 작업을 실행할 수 있습니다. 또한이 작업은 특정 시간에 실행되도록 예약 할 수 있습니다.
결론
이러한 과제를 최적화 된 방식으로 해결할 수 있다면 Agile 환경의 Automated Regression Testing은 QA가 애자일 프로세스를 주도 할 수있는 훌륭한 기회입니다. 사용자와 개발자 간의 격차를 해소하고, 필요한 사항을 이해하고,이를 달성 할 수있는 방법과 배포 전에 보장 할 수있는 방법을 이해하는 것이 더 좋습니다.
자동화 관행은 결과에 대해 기득권을 가져야 할뿐만 아니라 진화하는 전체 시스템이 비즈니스 목표를 충족하고 목적에 적합 함을 지속적으로 보장해야합니다.
회귀 테스트 케이스를 자동화하는 것은 시작하기에 가장 좋은 후보로 항상 유용합니다. 자동화 테스트 . 위에서 언급 한 단계에 따라 회귀뿐만 아니라 모든 테스트 스위트를 자동화 할 수 있습니다.
자동화 테스트는 매우 유용하고 비용 효율적이며 자동화 테스트에 대한 시간 투자는 스크립트 작성 및 유지 관리에만 있습니다. 따라서 성공적인 프로젝트를 위해 자동화 테스트를 적절하게 계획하고 일정을 수립해야합니다.
저자 정보 : J.B.Rajkumar는 학업 및 소프트웨어 테스트 분야에서 15 년 이상의 경력을 보유하고 있습니다. 그는 기업 트레이너, 테스트 리드, QA 관리자 및 QC 관리자로 일했습니다.
이 기사에 대한 의견 / 제안을 알려주십시오.
=> 완전한 회귀 테스트 시리즈를 보려면 여기를 방문하십시오.
추천 도서
- 최고의 소프트웨어 테스트 도구 2021 (QA 테스트 자동화 도구)
- 시험 입문서 eBook 다운로드
- 애자일 프로세스로의 성공적인 전환을위한 애자일 테스트 마인드를 개발하기위한 4 단계
- 수동 및 자동화 테스트 과제
- 예제를 사용한 재 테스트와 회귀 테스트의 차이점
- 5 가지 모바일 테스트 과제 및 솔루션
- SaaS 테스트 : 과제, 도구 및 테스트 접근 방식
- 2021 년 가장 인기있는 10 가지 회귀 테스트 도구