Agile 테스트는 무엇입니까? Agile 테스트, 물론, 단순히 빠를 이해 그리고 확실히 하지 적은 시간 보다, 테스트 또는 감소 또는 테스트 작업을 줄이기 위해 낮 췄 다. 그것은 또한 그만 민첩 한 개발, 더 민첩 한 테스트를 했다. 여기 우리가 논의할 예정 이다:
Agile 테스트를 정확 하 게 무엇입니까?
Agile 테스트 프로세스 개선 무엇입니까?
어떻게 테스터 agile 테스트의 어려움에 직면 합니까?
해당 개발 하는 방법 자동 agile 테스트 테스트 전략?
Agile 테스트는 무엇입니까
전통적인 테스트 프로세스와 방법을 민첩 한 개발 프로세스에 벼 락 공부 하기 어려운 경우, 테스트 작업을 낭비 될 수 있습니다, 그리고 테스터 초과, 매일 작동 수 있습니다 그들의 예정 한 역할을 재생할 수 없습니다. Agile 테스트는 새로운 테스트 흐름, 방법 및 연습 전통적인 테스트 프로세스에서 테스트 계획, 테스트 케이스 디자인, 그리고 증가 통신 및 제품 디자이너와 개발자 협업 작업의 비율을 줄이는 다른 중점을 맞추어 민첩 한 방법에 적응 해야 합니다. Agile 테스트 과정에서 단위 테스트, 지속적인 반복의 새로운 기능에 초점에에서 참여, 적절 한 승인 이러한 새로운 기능에 대 한 테스트를 수행 및 자동화 된 테스트에 의존의 기존 기능 회귀 테스트. 민첩 한 방법의 짧은 반복 기간 때문 테스터는 요구 사항, 개발 디자인, 그리고 더 중요 한 것은, 소프트웨어 제품의 품질에 대 한 시기 적절 하 고 지속적인 피드백의 적절 한 평가 포함 하 여 일찍, 테스트를 시작 합니다. 간단히 말해서, 민첩 한 테스트 그림 1에서 보듯이 소프트웨어 품질 문제에 대 한 연속 응답입니다.
그림 1는 Agile의 이미지 설명 테스트 정의
Agile 테스트 프로세스의 최적화
민첩 한 접근 방식에서 요구 사항이 빠르게 변경, 제품 개발 주기는 매우 짧은, 우리가 현재를 사용 하 여 4 주, 즉, 각 달 새 버전을 릴리스. 개발 주기는 짧은 함수 축적은 소프트웨어 테스트에 큰 도전을 제공 하 고 소프트웨어 테스트 프로세스를 적절 하 게 조정 해야 합니다. 예를 들어 우리의 원래 테스트 규격 명확 하 게 규정 먼저 빌드할 프로젝트의 마스터 테스트 계획 하 고 다음 각 기능 작업에 대 한 테스트 계획, 테스트 계획 및 제품 관리자, 개발자, 및 다른 팀 멤버 (테스트 관리자 포함), 토론에 대 한 엄격한 서식 파일 빌드 그것은 결국 승인 되며, 모두에 의해 서명 고만 테스트 계획 완료 "초안, 검토 및 발급" 주기 1 개월 소요 됩니다. 민첩 한 접근, 그것은 이상 작성 해야는 수십 페이지의 테스트 계획, 오히려 각 반복 사이클에 대 한 테스트 계획의 시트를 작성 하 고 테스트 포인트 (전략, 구체적인 방법, 초점 영역 등을 포함 합니다.) 목록에 있지만.
원래 테스트 규격에서는 Excel을 사용 하 여 테스트 사례를 작성 후 토론, 검토, 검토 하 고 다음 테스트 사례 라이브러리 (온라인 관리 시스템)를 가져올 하는 데 필요한입니다. 민첩 한 테스트에서 테스트 사례를 사용 사례 또는 사용자 스토리 및 예비 테스트의 오히려 직접 유효성 검사 하지만 하지 수도 있습니다. 회귀 테스트 서비스에 대 한 자동화 된 테스트 스크립트의 원래 기능 개발을 위한 시간을 절약 하 고. 자동화 된 테스트 스크립트 테스트 사례 대체 하 고는 다양 한 소프트웨어 조직 될 것입니다. 원래 테스트 사양 또한 회귀 테스트, agile 테스트에서 회귀 테스트의 한 라운드 2 라운드 필요 합니다. 이러한 고려 사항 결합, agile 테스트 과정은 간단 하 고 효과적인, 그림 2와 같이.
Agile의 그림 2 요약 다이어그램 테스트 프로세스
Agile 테스트 과정에서 앞에서 설명 했 듯이, 테스트는 지속적인 품질 피드백 프로세스 테스트에서 확인 된 문제는 즉시 제품 관리자와 개발자, 먹이 이며, 몇 가지 주요 측면에서 충분 한 주의를 지불 해야:
테스터 제품 기능 요구 사항 토론에 참여 해야 뿐만 아니라, 또한 얼굴 하지만 디자인과 완벽 하 게 토론 (언어를 포함 하 여, 비디오 및 인스턴트 메시징), 메일을 통해 그냥 충분 하지 않습니다.
코드 검토에에서 참여 하 고 적절 하 게 단위 테스트에서 개발자를 지원 합니다.
프로세스 "제품 실습"에 링크를 추가-테스터 및 제품 관리자, 개발자, 그리고, 새로운 기능에서 처음부터 끝까지, 모양과 시각적으로 그리고 신속 하 게 문제를 식별.
테스트 및 새로운 기능에 대 한 전략을 테스트 하는 회귀
테스트 작업 수 있습니다 쉽게 나눌 수 새로운 기능 테스트 및 회귀 테스트. 민첩 한 방법에서 해당 전략 테스트의 효율성을 개선 하 고 품질 위험을 최소화 하기 위해 두 개의 부품의 테스트에 대 한 설정 됩니다. 새로운 기능 테스트 하기 위한 전략은 다음과 같습니다.
사용 하지 마십시오 필요에 따라 직접 테스트 사례 사례 및 요구 사항 이해 새로운 기능 유효성 검사를 완료 하. 테스트 사례를 작성 하려는 경우에 그냥 각 함수 포인트는, 너무 상세한 (큰 단위)을 확인 합니다.
모든 코드는 테스트를 시작 하려면 완료 될 때까지 대기 하는 것 보다는 유효성 검사, 지속적인 유효성 검사, 코드의 새로운 조각 되었습니다 번 (코드 드롭), 시작 완료. 이것은 또한 단위에 참여 포함 테스트 및 통합 테스트.
엔드-투-엔드 (엔드-투-엔드) 완벽 한 비즈니스 프로세스 구현 되도록 테스트 하지만 또한 쉽게 비즈니스 논리는 충분히 명확 하지 않다 찾을 수, 무리 한 문제의 다른 측면의 구현입니다.
개발자의 작업 속도 유지 하 고 테스트 사이클의 스트레스를 제거 하 여 문제를 확인 하는 코드를 읽기.
경험을 바탕으로, 보다 효과적으로 묻혀 결함을 탐지 하 더 예비 테스트, 조합 대화형 (운용) 테스트 및 사용자 시나리오 테스트을 구현할 수 있습니다.
회귀 테스트 민첩 한 시험에 직면 하는 어려운 문제입니다. 새로운 기능을 추가 하는 각 반복 및 제품 이상 10 또는 반복, 심지어 수십 통해 갈 수 있고 회귀 테스트 범위는 성장 하 고, 각 반복 주기 변경, 아마도 1 개월. 이러한 승인 테스트는 매우 제한 된 시간에, 그래서 회귀 테스트에 크게 의존 제어 회귀 테스트는 매우 제한 된 범위를 하기가 어렵습니다 때문에 자동화 된 테스트. 물론, 테스트와 같은 회귀의 범위를 줄일 수 있도록 방법이 있다:
코드는 코드에서 변경의 모든 이해을 실행 하 고 다음 상관 관계 분석을 하 고, 정확 하 게 어디 회귀 테스트는, 그리고 회귀 테스트의 범위를 크게 줄어들 것입니다 알 수 있습니다.
위험 및 회귀 테스트는 주요 기능 포인트는 문제가 되지 않습니다 같은 회귀 테스트의 범위를 줄일 수 있지만 문제의 몇 가지 세부 사항을 무시 작동 표면 분석을 기반으로 합니다.
연속 테스트의 과정 만큼 개발자를 포함 하 여 테스트 제품 디자이너 하루 재판 및 테스트에서 포함 된다.
자동화 테스트 전략
짧은 개발 주기 때문에 요구 사항, 디자인 및 통신의 다른 측면 또한 시간을 많이 걸립니다, 그리고 거기 아니다 충분 한 시간 이상 테스트의 새로운 기능에 대 한 자동화 된 테스트 스크립트를 개발 하는 자동화 된 테스트를 달성 하기 어렵다. 이 시점에서, 당신은 그림 3와 같이 자동화 된 테스트의 효율성을 개선 하기 위해 올바른 전략을 필요 하 고 아래 설명 된.
자동화 된 테스트에 대 한 그림 3 전략
간단 하 고 쉽게 스크립트 유지 관리 하는 유연 하 고 오픈 자동화 된 테스트 프레임 워크를 구축, 키워드 기반 자동화 프레임 워크, 등 하면 테스트 스크립트의 개발.
대부분 새로운 기능 테스트는 손으로 테스트에서 수행 하는 동안 초기 단계에서 완료 된 기존 기능에 대 한 자동화 된 테스트를 개발 하는 스크립트를 안정적인 제품 기능에 대 한 자동화 된 테스트 스크립트 개발
자동화 된 테스트는 단위 테스트 프레임 워크와 필요한 기본 작업의 일부와 어시스트를 제공 하는 개발자에 의해 주로 단위 수준에서 구현에 초점.
자동화 된 테스트의 요구 사항은 제품 설계 및 프로그래밍, 완료, 자동화, 로우 레벨 테스트, 테스트, 인터페이스 사용자 인터페이스 (UI) 자동화 가능 한 한 많은 테스트를 하지 않도록 하 고 가능 하 잘 여겨진다.
좋은 IT 인프라, 자동화 빌드 패키지, 자동된 버전 (BVT), 자동화 된 배포 및 자동 범위 세대를 포함 하 여.
Agile 테스트 도구
테스트 도구를 의존 하 고 자동화 된 테스트 하 고 다행히도, 거기 많은 agile 테스트 도구 사용할 수 있습니다. 공간 제한으로 인해 단순히 깊이에 대해 설명 하지 않습니다 몇 가지 일반적인 agile 테스트 도구의 목록입니다.
단위 테스트 도구: TestNG, Xunit 가족 (예: JUnit, NUnit), JMock, Bizmock, 등등.
기능 테스트 자동화: ThoughtWorks 트위스트입니다.
웹 기능 테스트 (프런트 엔드): 셀레늄 Watin Watir, ide/rc.
웹 서비스 테스트 도구 (백엔드): Soapui.
성능 테스트: Jmeter + badboy.
수용 테스트 프레임 워크: FitNesse, 텔 루르.
민첩 한 프로세스 관리 테스트 도구: Microsoft Visual Studio 2010, TFS 2010, 스크럼 템플릿 (MS VS Scrum 1.0), 테스트 관리자 2010 년을 포함 하 여 코딩 된 UI 테스트, 그리고 더.
BI (비즈니스 인텔리전스) 응용 프로그램에 대 한 테스트 프레임 워크: Oraylis BI. 품질 (+ NUnit)입니다.
Testlink, 버그 질 라, Bugfree, 위 키, 등 다른 협업 도구.
민첩 한 방법론에 테스터의 값
민첩 한 방법에서 개발자의 주요 역할은 더 명확 하, 시스템 디자인, 프로그래밍 구현, 단위 테스트, 리팩터링 및 다른 겉보기 중요 한 작업은 개발자에는 테스터는 marginalization에 취약. 애자일 테스터의 값 어떻게 명단 합니까?
요구 사항 및 기능 디자인 토론에 테스터는 고객의 관점의 자신의 견해를 설명, "사용자 대표" 놀이에 설 수 있습니다 진정으로 테스터와 개발자 상호 보완적인 역할을 반영 하는 역할, 사용자 경험을 강조.
테스터 "사용자 대표"의 역할을 할 뿐만 아니라 또한 제품의 품질 연속성 및 품질 향상의 가시성을 개선 하기 위해 충분 한 주의 지불 있도록 요구 사항 토론 및 코드 검토 등 다양 한 활동을 통해, 코드 품질, 인터페이스 일관성을 포함 하 여 품질 피드백을 제공.
그들은 단위 테스트에 참여 하지 않는 경우에 테스터 적극적으로 단위 테스트에 참여 해야 한다 또한 그 단위를 달성 하기 위해 테스트를 위해 테스트 하는 단위 보다 80% 적용, 좋은 쓸만한 코드 개발 되도록 수행 하는 개발자를 촉구 합니다.
민첩 한 방법에서 대형 시스템 개발은 자주 분해 (모듈 또는 구성 요소), 작은 서브 시스템으로 통합 테스트를 엔드-투-엔드 (엔드-투-엔드) 더 중요 하 고, 테스터는 이러한 테스트에 더 큰 역할을 할 수 있다.
제품 출시 전에 승인 테스트와 회귀 테스트 아니다 여전히 불가결 하 고, 이것은 경기장에와 서 테스트 직원.
반복 주기의 끝 후 결함의 근본 원인을 분석 하 고 좋은 습관을 구축 하는 개발자를 돕기 위해 요약 결함 방지 근본적으로 제품 품질을 향상.
이상적으로, 테스터 마스터 디자인 패턴, 좋은 프로그래밍 기능, 그리고 현재 버전 개발에 테스터 역할 및 개발의 다음 버전에서 개발자 역할 등 개발자와 역할 스왑. 이 방법에서는, 양쪽 모두 다른 역할의 작품에 대 한 깊은 이해, 커뮤니케이션, 장벽을 제거 있고 개발의 품질과 효율성을 개선.
요약
위의 논의 우리의 연습을 바탕으로, 마지막으로 민첩 한 테스트의 간단한 요약이입니다.
지속적인 테스트, 지속적인 피드백은 민첩 한 테스트, 놀이 "사용자 대표" 고객 요구에 맞게 제품 되도록 역할.
민첩 한 기능 테스트 = 수동 테스트의 새로운 기능 (사용 하는 경우 유효성 검사 및 예비 테스트) + 원래 기능 (회귀 테스트)의 자동화 된 테스트.
민첩 한 테스터와 개발자의 차이 이상적으로, 민첩 한 접근에 테스터와 개발자 수 스왑 다른 반복에서 너무 작습니다.
Agile 테스트 프로세스 다른 팀 특성, 다른 제품 특성에 따라 다른, 현지 조건에 적응은 최고.