ปกติเวลาที่เราเลือกซื้อหนังสือ สิ่งแรกที่เราใช้เพื่อตัดสินใจจะหยิบหนังสือมาอ่านก็คือ ชื่อหนังสือ ใช่ไหมครับ แน่นอนมันเป็นตัวบอกให้เรารู้ว่า หนังสือเล่มนี้จะบอกอะไรกับเรา ถ้าเราอ่านหน้าปกแล้วไม่เข้าใจว่าหนังสือพยายามจะสื่อสารอะไรกับเรา หรือเมื่ออ่านข้างในแล้วหน้าปกกับเนื้อหาไปกันคนละทาง เราคงไม่ซื้อเป็นแน่แท้
เช่นเดียวกับการตั้งชื่อ test case หรือ test script ครับ เราจำเป็นต้องตั้งให้สื่อความหมาย ให้คนที่มาอ่านเข้าใจถึงจุดประสงค์ของเรา ว่าต้องการทดสอบอะไรให้ชัดเจน
แล้วแบบไหนถึงจะเรียกว่าชัดเจนล่ะ
สำหรับบทความนี้ผมขออ้างอิงรูปแบบของ Robot Framework ละกันนะครับ โดยจะแบ่ง หลักๆเป็น 2 ส่วนใหญ่ๆคือ Test Suite และ Test Case
การตั้งชื่อ Test Suite
- ชื่อ Test Suite ควรสื่อถึง module ที่เราต้องการจะเทส เช่น Authentication, Registration, Purchase product
- หาก Test Suite มีจำนวน เทสค่อนข้างมาก เราสามารถจะแบ่งเป็น Test Suite ย่อยๆได้ครับ
- Invalid Registration
- Invalid Purchase product
- VIP User Purchase product
- Admin Authentication
การตั้งชื่อ Test Case
เนื่องจากรูปแบบการตั้งชื่อ Test Case มีค่อนข้างหลายหลายมาก แต่เพื่อความเป็นระเบียบเดียวกัน Admin แนะนำว่า ทีมควรเลือกใช้มาตรฐานเดียวกันในการตั้งชื่อ Test Case ครับ โดยคราวนี้จะขอเสนอซัก 2 แบบนะครับ
- ใคร, ทำอะไร และ ผลลัพธ์ที่คาดหวัง ควรสื่อถึง 3 สิ่งนี้ให้ชัดเจน
- รูปแบบ
<ใคร> <ทำอะไร> should <ผลลัพธ์>
- ใครเป็นคนใช้งาน เช่น User, Admin, VIP User, Annonymous User
- ทำอะไร และตัวแปรสำคัญ เช่น
- Login with valid username and password
- Register with valid data
- Purchase valid product
- ผลที่เกิดควรเป็นอะไร เช่น
- Success
- Failed
- Show Error popup
- ตัวอย่าง
- User login with valid username and password should success
- ใคร: User
- ทำอะไร: login with valid username and password
- ผลลัพธ์: success
- สำหรับผลลัพธ์ เราก็สามารถทำให้เฉพาะเจาะจงได้อีก เช่น
- User login with valid username and password should redirect to a user profile page
- เราสามารถลดรูปได้ในกรณีที่มีส่วน Test Case Name ซ้ำซ้อนกับ Test Suite
- ส่วนที่เราลดรูปได้มีทั้งในส่วน ใคร และ ผลลัพธ์
- ตัวอย่าง Admin login with valid username and password should success
- Test Suite name เราจะเพิ่มในส่วนของ User และ Expected Result เข้าไป
Success Admin login - Test Case name ลดแล้วจะเป็น:
With valid username and password
- Test Suite name เราจะเพิ่มในส่วนของ User และ Expected Result เข้าไป
- รูปแบบ
- Expected Behaviour หรือ ตั้งชื่อจากพฤติกรรมที่คาดหวังไว้
- รูปแบบ
Should <Expected Behaviour> <Conjunction> <state under test>
- Example
- Should fail to withdraw money from invalid account
- รูปแบบ
สิ่งที่ควรระวังในการตั้งชื่อ Test Case
- อย่าใส่สิ่งที่เป็น Technical เข้าไปในชื่อนะครับ เพราะจะทำให้ QA คนอื่นสับสนได้ง่ายๆ
- อย่าเอา Test Step มาใช้เป็น Test Case ครับ
- เช่น Click ที่ link นี้ แล้วกดปุ่มตกลง แบบนี้เราควรหาคำจำกัดความที่ ลูกค้า หรือ BA ก็เข้าใจได้ มาใช้แทนดีกว่าครับ
- ใช้ศัพท์ย่อในทีมได้ แต่ต้องเป็นศัพท์ที่ลูกค้า QA Dev และ BA เข้าใจตรงกันนะครับ
ถ้าอ่านชื่อหนังสือแล้วเข้าใจยาก
ใครจะอยากหยิบหนังสือมาอ่านต่อล่ะ
จริงไหมครับ
References:
สนใจเรียนรู้แบบเจาะลึก
Robot Framework Selenium
Web Automated Test ด้วย
Robot Framework และ Selenium 6