합격시험 주도형 개발

Acceptance test–driven development

수용성 테스트 주도 개발(ATDD)은 비즈니스 고객, 개발자, 테스터 간의 커뮤니케이션을 기반으로 하는 개발 방법론이다.[1] ATDD는 사례별 사양(SBE),[2][3] 행동 중심 개발([4]BDD),[6] 사례 중심 개발(EDD),[5] 지원 중심 개발(SDD)과 동일한 사례들을 많이 포함하고 있다. 이러한 모든 프로세스는 개발자와 테스터가 구현 전 고객의 니즈를 이해하는 데 도움이 되며, 고객이 자신의 도메인 언어로 대화할 수 있도록 한다.

ATDD는 테스트 주도 개발(TDD)과 밀접한 관련이 있다.[7] 개발자-테스터-비즈니스 고객 협업을 강조함에 따라 차이가 있다. ATDD는 허용 시험을 포함하지만 개발자가 코딩을 시작하기 전에 허용 시험 작성에 중점을 둔다.

개요

합격 시험은 사용자의 관점, 즉 시스템의 외부 관점으로부터 이루어진다.[1] 그들은 특정한 입력에 주어진 시스템의 정확한 출력을 지정하는 것과 같은 외부적으로 가시적인 효과를 검사한다. 수락 테스트는 "지급"에서 "배송"으로 이어지는 명령과 같이 어떤 것의 상태가 어떻게 변화하는지 검증할 수 있다. 그들은 또한 공유 데이터베이스나 웹 서비스와 같은 다른 시스템의 인터페이스와의 상호작용을 확인할 수 있다. 일반적으로 자동화는 아닐 수 있지만 구현에 독립적이다.[8][9]

창조

허용 시험은 요구사항을 분석할 때 코딩하기 전에 생성된다.[1] 요구사항 요청자(제품 소유자, 비즈니스 분석가, 고객 담당자 등), 개발자 및 테스터가 공동으로 개발할 수 있다. 개발자들은 합격 시험을 이용하여 시스템을 구현한다. 시험에 불합격하면 해당 요건이 충족되지 않는다는 빠른 피드백을 제공한다. 테스트는 비즈니스 영역 용어로 지정된다. 그 다음, 용어는 고객, 개발자 및 테스터 간에 공유되는 유비쿼터스 언어를 형성한다.[10] 시험과 요건은 상호 연관되어 있다.[11] 시험이 부족한 요건은 제대로 이행되지 않을 수 있다. 요구사항을 참조하지 않는 시험은 불필요한 시험이다. 구현이 시작된 후 개발된 합격 시험은 새로운 요건을 나타낸다.[12]

테스트 전략

합격 시험은 전체 시험 전략의 일부분이다. 이러한 테스트는 시스템의 비즈니스 의도를 보여주는 고객 테스트 입니다. 구성요소 시험은 대형 모듈의 동작을 지정하는 설계자가 개발한 기술 수용 시험이다. 유닛 테스트는 개발자가 관리하기 쉬운 코드를 구동하기 위해 만든다.[13] 합격 시험과 단위 시험에서 도출되는 경우가 많다. 교차 기능 시험에는 사용적합성 시험,[14] 탐색 시험 [15]및 속성 시험(스케일링 및 보안)이 포함된다.[16]

합격 기준 및 검정

합격 기준은 시험에 의해 점검될 내용에 대한 설명이다. '사용자로서 도서관에서 책을 대출하고 싶다'와 같은 요건을 감안할 때, 합격기준은 '도서 대출이 된 것으로 표시되었는지 검증'이 될 수 있다. 이 요건에 대한 합격 시험은 매번 동일한 효과로 시험을 실행할 수 있도록 세부사항을 제공한다.

테스트 형식

합격 테스트는 일반적으로 다음과 같은 형식을 따른다.[1]

주어진 (설정)

시스템의 지정된 상태

시기(트리거)

작업 또는 이벤트가 발생함

그러면 (검증)

시스템 상태가 변경되었거나 출력이 생성된 경우

또한 아래 섹션 중 하나에서 AND로 시작하는 문(Gived, When, Then)을 추가할 수 있다.

예를 들어, 이 단계는 다음과 같이 나열될 수 있다.

주어진 체크아웃되지 않은 책 그리고 시스템에 등록된 사용자 언제 사용자가 책을 대출함 그러면 책이 체크아웃된 것으로 표시됨 

테스트 완료

이전 단계에는 특정 예제 데이터가 포함되지 않으므로 테스트를 완료하기 위해 다음과 같이 추가된다.

주어진:

체크아웃되지 않은 책
책들
제목 체크아웃됨
위대한 책 아니요.
시스템에 등록된 사용자
사용자
이름 샘.

다음 경우:

사용자가 책을 대출함
체크아웃 조치
사용자 샘. 체크아웃 위대한 책

다음:

책이 체크아웃된 것으로 표시됨
책들
제목 체크아웃됨 사용자
위대한 책 샘.

시험검사

특정 데이터를 이용한 시험의 시험은 대개 많은 문제를 야기한다. 샘플의 경우 다음과 같은 경우가 있을 수 있다.

  • 그 책이 이미 대출되었다면?
  • 만약 그 책이 존재하지 않는다면?
  • 사용자가 시스템에 등록되어 있지 않으면 어떻게 하시겠습니까?
  • 그 책 체크인 예정일이 있니?
  • 사용자는 몇 권의 책을 대출할 수 있는가?

이 질문들은 누락되거나 모호한 요구 사항을 밝히는 데 도움이 된다. 기일 등 세부사항은 예상결과에 추가할 수 있다. 다른 합격 테스트는 이미 대출된 책을 대출하려는 시도와 같은 조건이 예상 오류를 발생시키는지를 확인할 수 있다.

다른 테스트 예

비즈니스 고객이 사용자가 한 번에 책 한 권만 대출할 수 있는 비즈니스 규칙을 원한다고 가정해 보십시오. 다음 테스트는 다음을 증명할 수 있다.

시나리오: 체크아웃 비즈니스 규칙이 시행되는지 확인하십시오.

주어진:

체크아웃된 책
책들
제목 체크아웃됨 사용자
위대한 책 샘.
또 하나의 위대한 책 아니요.
사용자
이름
샘.

다음 경우:

사용자가 다른 책을 체크아웃함
체크아웃 조치
사용자 샘. 체크아웃 또 하나의 위대한 책

다음:

에러가 발생함
에러가 발생
설명
체크아웃 업무 규칙 위반

프로젝트 승인 테스트

요건에 대한 합격 시험 외에도 합격 시험은 프로젝트 전체에 사용할 수 있다.[1] 예를 들어, 이 요구사항이 도서관 도서 대출 프로젝트의 일부인 경우, 전체 프로젝트에 대한 합격 시험이 있을 수 있다. 이것들은 흔히 SMART 목표라고 불린다. 예로는 "새로운 도서관 시스템이 생산될 때, 이용자들은 오늘날보다 3배 빠른 속도로 책을 체크인하고 대출할 수 있을 것"이 있다.

참고 항목

참조

  1. ^ a b c d e Pugh, Ken (2011). Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration. Addison-Wesley. ISBN 978-0321714084.
  2. ^ Adzic, Gojko. (2009) 통신 격차 해소: 사례별 사양민첩한 합격 테스트, Neuri Limited,
  3. ^ Adzic, Gojko (2011). Specification by example: How successful teams deliver the right software. Manning. ISBN 978-0-321-27865-4.
  4. ^ 첼림스키, 데이비드, 데이브 애스텔스, 잭 데니스, 아스락 헬레소위, 브라이언 헬름캄프, 댄 노스. RSpeec Book: RSpec, Oi, Friends를 이용한 행동 주도형 개발. 실용주의 서가.
  5. ^ "Example Driven Design". Retrieved 2013-04-15.
  6. ^ "Story Test-Driven Development" (PDF). Retrieved 2013-04-15.
  7. ^ 벡, 켄트 테스트 주도 개발: 예시. 애디슨 웨슬리 프로페셔널, 2002년
  8. ^ 멜니크, 그리고리, 프랭크 마우러. Melnik, Grigori; Maurer, Frank (2007). "Multiple Perspectives on Executable Acceptance Test-Driven Development". Agile Processes in Software Engineering and Extreme Programming. Lecture Notes in Computer Science. Vol. 4536. pp. 245–249. doi:10.1007/978-3-540-73101-6_46. ISBN 978-3-540-73100-9.
  9. ^ 코스켈라, 라세 (2007) 시험구동: 자바 개발자용 TDD 및 합격 TDD. 매닝 출판물
  10. ^ 에반스, 에릭 (2003) 도메인 기반 설계: 소프트웨어의 중심에서 복잡성 해결. 애디슨 웨슬리 프로페셔널.
  11. ^ Weinberg, Gerald; Gause, Donald (1989). Exploring Requirements: Quality Before Design. Dorset House. ISBN 0-932633-13-7.
  12. ^ 마틴, 로버트 C, 그리고 그리고리 멜닉."Tests and Requirements, Requirements and Tests: A Möbius Strip" (PDF). Retrieved 2013-04-15.
  13. ^ [시험 중심_개발]
  14. ^ 메사로스, 제라드, 제니스 애스턴. (2006) "신속한 프로젝트에 사용적합성 시험 추가" 애자일 컨퍼런스
  15. ^ "Exploratory Testing Explained" (PDF).
  16. ^ 메사로스, 제라드.(2007) x단위 시험 패턴: 리팩토링 시험 코드. 애디슨 웨슬리

외부 링크