10 Minutes Test Plan (ACC 접근방법)

ACC 접근 방법

들어가는 말
“10 Minutes Test Plan” 을 슬로건으로 내걸고 Google에서 적용된 ACC(Attributes. Components,Capabilities) 접근 방법에 대해서 간략히 정리한 문서이다.

ACC(Attributes, Components, Capabilities)
ACC 접근방법은 한번 작성하고 더 이상 보지 않게되는 Test plan이 아니라, 살아있는 test plan을 만들자는 목표에서 구글에서 아이디어를 내고 실현한 방법이라 할 수있다.

보통 Test plan은 너무 상세하거나 아니면 일정외에는 별 내용이 없는 경우가 대부분인데, 이 둘 모두 프로젝트의 일정 스펙 등이 계속하여 변하는 상황에서는 1회성 산출물에 지나지 않게 된다.

Test plan은 보통 다음과 같은 공통적인 문제를 갖는다.

  • 업데이트의 어려움. 곧 현재 상황과 동떨어진 문서가 된다.
  • ad-hoc하게 작성되며 누락되는 부분이 발생된다.
  • 초기 작성 / 리뷰후에는 다시 참조되지 않는다.
  • actionable 한 항목이 적다.
  • 구조화 되어있지 않다.

James Whittaker는 Test plan에 실제로 중요한 내용을 빠르게 도출하는 실험을 하는데, 어느정도 해당 도메인을 사용하고 있는 Google application에 대한 test plan을 작성하는데에 10분의 시간을 주고 채우도록 했다. 10분의 시간안에 채울 수 있도록 정말 필요한 내용만, 그리고 상세한 내용은 test planner가 아닌 test executor가 작성하도록 남겨두었다.

이에 대한 실험을 몇번 반복하니, Test Plan에 중요한 세 가지가 도출되었다.

  1. Attributes
    1. 부사(adverbs)나 형용서(adjectives)로 보통 표현
    2. high level testing concept 이라 할 수 있으며, 테스팅을 할 때에 어떤 측면을 중점적으로 확인해야하는지에 대한 설명이라고도 할 수있다.
    3. 제품이 가져야할 품질 속성이라 볼 수 있으며, 다른 경쟁 제품과의 차별점을 나타내는 부분이다.
    4. 예) fast, secure, powerful, stable, personal, social ..
  2. Components
    1. 명사(nouns)로 표현
    2. 시스템이나 제품의 주요 컴포넌트로 볼 수 있다.
    3. 시스템을 구성하는 빌딩블럭으로 볼 수있으며, 클래스나 모듈명이 될 수도 있고, 기능이 될 수도 있다.
    4. 예) DB, API, Search, Sharing, Login, Shopping Cart..
  3. Capabilites
    1. 동사(verbs)로 표현
    2. 특정 Component가 대상 시스템의 Attribute를 만족시키기 위해 갖는 특정한 기능(? abilities)이라 볼 수 있다. 때문에 Capability는 Component / Attribute와 함께 묶이게 된다.
    3. 사용자 action이나 activity 로 볼 수 있다.
    4. 예를 들어, “Search is Fast” 라는 문장으로 Component와 Attribute가 표현된다면, 이를 만족시키기 위해 Search라는 Component가 가져야할 Capabilities가 생기게 된다.
      1. 예) 모든 검색 쿼리는 1초 안에 응답해야 한다. ..

보통 10분안에 Attributes나 Components에 대한 전반적인 도출이 완료되었으며, Capabilities에 대한 작성이시작되었다고 한다. 추가 20분을 더하면 대부분의 Capabilities도 충분히 작성이 되었으며, 이를 기초로 user story나 test case의 시작을 할 수 있다고 하였다. 30분안에 80%정도의 test planning 작업을 완료할 수 있었다고 또한 기술하고 있다.

Test Analytics
위의 ACC 접근방법을 통해 Test planning을 할 수 있도록 지원하는 web application이며, GAE(Google Application Engine)으로 만들어진 도구이다.

간단한 사용방법 및 샘플 예제를 보려면 https://test-analytics.appspot.com/ 를 참조하면 된다.

[그림 1. Test Analytics 예]

[그림 2. Test Analytics 예]

[그림 3. Test Analytics 예]

Attribute, Component, Capability를 넣으면, 이를 기초로 Risk 메트릭스를 보여준다.

[그림4. Test Analytics 예]

Risk  메트릭스를 통해 Attribute-Componet에 연관된 Capability를 선택하면, 해당 Capability와 연관된 Test, Bug, Code Change 등을 볼 수 있다. 이 데이터를 기초로 Sing-off를 할 수도 있다.

Test, Bug, Code Change 는 별도 import를 통해 각 capability와 매핑을 해주어야 한다.

Summary
살아있는 Test plan을 만드는 데에 이어  ACC 접근방법은 꽤 신선하게 보인다. 또한 도출된 Attribute, Component, Capability 를 통해 Risk Matrix를 생성하고 이에 대한 추적을 계속해나가면서 테스트 기간을 통해 Risk를 관리하는 부분에 있어서 꽤 좋은 접근 방법이라 생각된다.

다만 Test Analytics라는 도구를 사용해야한다는 점에 있어 새로운 도구를 사용해야하는 불편(?) 및 Risk Matrix의 지속적인 추적을 위해서는 Tests, Bugs, Code chages에 대한 내용을 import 해야하는데 이 부분은 아직 불편한 부분이 많다.

하지만 import에 필요한 데이타를 넣지 않더라도 테스트를 진행하면서 어떤 부분에 중점을 두어 테스트를 해야하고, 출시 전에 어떤 Risk가 해결되어야하는지에 대해서 지속적인 추적이 될 수있을 것이므로 이는 분명한 목적을 두고 테스트를 집중하는 데에 분명 도움이 될 것 같다.

참조자료