Wednesday, June 3, 2009

Test plan, Test spec, Test case

  • ช่วงนี้ต้องการทำ test case ให้เป็นกิจลักษณะเสียที
  • ไม่ไหวแหละ ทำไม่ค่อยได้เรื่องเลยเรา
  • ไปเจอบทความเค้าที่ ไม่เก่ามาก ประมาณเดือนก่อนเอง
  • เป็นเรื่องที่สนใจเลยขอนำ มาวางไว้ที่ log ตัวเองก่อนเลย ^^'
  • เจ้าของบทความเค้าอธิบาย คำศัพท์เกี่ยวกับการ test ระบบน่าจะใช่ก็ไม่ค่อยรู้เรื่องนี้เท่าใหร่

วันนี้เราลองมาพูดถึงเรื่องของ Testing Term ที่เรามักจะได้ยินกันบ่อยๆ แต่ชวนให้สับสนเป็นอย่างยิ่งกันนะครับ คำที่เราจะพูดถึงคือ Test Plan, Test Specification รวมถึงคำอื่นๆอย่างเช่น Test case, Test script, Test condition, etc… ว่ามันคืออะไรกันแน่ มาเริ่มกันจาก Test plan เลยดีกว่าครับ

Test plan: คือมุมมองแบบกว้างๆ ( high level ) ที่เอาไว้ใช้บอกเราว่าการทำเทสจะเกิดขึ้นในลักษณะไหน อะไรจะถูกนำมาเทสบ้าง รวมถึง ใครเป็นคนทำ ทำอย่างไร ทำเมื่อไหร่ และ Quality level อยู่ในระดับไหนด้วย โดยใน Test plan จะประกอบไปด้วย element ต่างๆดังนี้ครับ

S [Scope] : What to test, what not to test

P [People] : Training, Responsibility, Schedule

A [Approach] : To testing

C [Criteria] : Entry / Exit Criteria

E [Environment] : Environment needs

D [Deliverables] : Deliverables as part of test process

I [Incidentals] : Introduction, Identification

R [Risks] : Risks and Contingencies

T [Tasks] : Tasks involves in testing

ถ้าจะท่องไปสอบ Certificate เนี่ย ก็ท่องง่ายๆว่า SPACE DIRT ครับ

เรามาต่อกันที่กลุ่มคำถัดไปเลยนะครับ กลุ่มคำเหล่านี้ว่ากันถึงเรื่องของ Specification ครับ

Test Design Specificationประกอบด้วย รายละเอียดของ Test condition ที่จะนำไปใช้รันเทส รวมถึง expect outcome ในลักษณะที่เป็น general term ด้วยครับ ที่นี้เพื่อไม่ให้งง ขออธิบายคำว่า Test condition ด้วยเลยแล้วกันครับ ปกติแล้วเวลาเราออกแบบเทสเคสโดยใช้ testing technique เนี่ย ผลลัพธ์ที่ได้จาก test technique แต่ละประเภทเช่น Equivalence Partition table หรือ Decision Tree table นั่นแหล่ะครับคือ test condition นั่นคือเป็นสิ่งที่บอกให้เรารู้ว่าเราต้องทำเทสด้วยเงื่อนไขอะไรบ้างแบ่งเป็นหมวดหมู่กว้างๆ หรือบอก set ของ input ที่เป็นไปได้ในแต่ละ condition แต่ไม่ได้ระบุ input ตายตัวในแต่ละข้อนะครับ

Test Case Specificationตัวนี้หล่ะครับจะเป็นตัวระบุ input ของ test case แต่ละข้อ ว่าในแต่ละ test case เราจะ test ด้วย input อะไร (โดยปกติจะกำหนดinputตายตัวไปเลย ไม่ได้กำหนดเป็น range หรือ set ของ input เพื่อความง่ายในการ reproduce เวลาเจอปัญหาครับ)

Test Procedure Specification (Test script)เอกสารตัวนี้เอาไว้ใช้อธิบายว่า เวลาtester จะรันเทสต้องทำอะไรบ้างด้วย step/procedure อย่างไร รวมถึงวิธีการ set up ต่างๆเพื่อให้รันเทสได้ด้วยครับ นอกจากนี้ยังระบุ expect outcome จากการรันเทสแต่ละข้ออย่างละเอียดไว้ในนี้ด้วย

เพื่อให้เห็นภาพมากขึ้นขอยกตัวอย่างดังนี้ครับ สมมติว่าเรากำลังจะทำเทสโปรแกรมเครื่องคิดเลข ซึ่งเราได้ test condition ออกมาจากการใช้ Equivalence test technique เรียบร้อยแล้วโดยในข้อแรก จะเป็นการเทสฟังก์ชั่นการบวก แบบ valid

ดังนั้นใน test design specification ก็จะระบุไว้ประมาณว่า

Test condition 1: Test การบวกเลขแบบข้อมูล input เป็นเลขจำนวนเต็มบวกสองตัว (ที่มีค่าอยู่ในขอบเขตที่ interface ของเครื่องบวกเลขรองรับได้)

Expect outcome: โปรแกรมสามารถคำนวณเลขและแสดงผลบนหน้าจอได้ถูกต้อง

หลังจากนั้นเรามาสร้าง Test case specification จาก test condition ข้อที่ 1 ได้ดังนี้

Test case 1: Input1 = 35, Input2 = 20

Expect outcome: = 55

หลังจากได้ test case แล้ว เราก็มาทำในส่วนของ Test procedure specification ต่อประมาณนี้ครับ

Test case1

Step 1: เปิดโปรแกรมเครื่องคิดเลขโดยการ double click บน “My Calculator” icon

Step 1 expect outcome: โปรแกรม My Calculator ปรากฎบนหน้าจอ

Step 2: คลิ๊กเม้าส์บนแผงตัวเลขบนหน้าจอตามลำดับดังนี้ “35 + 20” และคลิ๊กปุ่ม “=”

Step 2 expect outcome: แผงหน้าจอแสดงตัวเลขที่คลิ๊ก และเมื่อคลิ๊กปุ่ม “=” แผงหน้าจอแสดงตัวเลข “35”

ประมาณนี้ครับสำหรับตัวอย่างของคำต่างๆที่พูดถึงไปข้างต้น ส่วนในเรื่องของความละเอียดของ step/procedure เนี่ยก็แล้วแต่ความเหมาะสมของแต่ละบริษัท แต่ละสถานการณ์นะครับ

ถ้า อ่านแล้วไม่เข้าใจหรือยังงงตรงไหนก็ Post ถามได้เลยนะครับ พอเขียนแล้วเพิ่งรู้ว่าเรื่องนี้อธิบายยากเหมือนกันอาจจะเขียนแล้วทำให้ สับสนตอนอ่านต้องขออภัยด้วยครับ


ที่มา: http://www.welovebug.com/

No comments:

Post a Comment