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

เช่นเดียวกับการตั้งชื่อ 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 แบบนะครับ

  1. ใคร, ทำอะไร และ ผลลัพธ์ที่คาดหวัง ควรสื่อถึง 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
  2. 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

Previous articleไม่มี Web browser เปิดขึ้นมาให้กวนใจ เมื่อรันเทสด้วย Chrome Headless Mode
Next articleจัดกลุ่ม Selenium Keyword ให้เป็น Page Object กัน