หลังจากที่เราเริ่มเขียน Robot Framework Test Script ไปสักพัก ก็จะเริ่มมี Test Step ที่เรามักต้องทำซ้ำๆกัน เวลา เริ่มต้นและส่วนท้ายของ Test Script ซึ่งถ้าปล่อยให้เป็นแบบนี้ต่อไปคงไม่ดีแน่ Test Script ของเราก็ดูรก, อ่านยาก, มี code ซ้ำๆกันเต็มไปหมด และ Test Script เองก็มี Step ที่ไม่เกี่ยวกับการเทส ปนมาเพียบเลย

วันนี้ผมเลยมาขอเสนอให้ลองใช้ Setup และ Tear Down เพื่อช่วยลด Step เหล่านี้จาก Test Script ของเราดู โดย Setup และ Tear Down จะมีที่ให้เรากำหนดอยู่ 2 ที่หลักๆคือ

  1. กำหนดที่ Test Case เราจะเรียกว่า Test Setup และ Test Tear down
  2. กำหนดที่ Test Suite เราจะเรียกว่า Suite Setup และ Suite Tear down

Suite Setup และ Suite Tear down

จะต่างจาก Setup และ Tear down ปกติ คือ Suite Setup จะรันครั้งเดียวก่อนที่จะรันเทสเคสภายใต้ Test Suite นั้นๆ และ Suite Tear down จะรันครั้งเดียวหลังจากรันเทสเคสทั้งหมดภายใต้ Test Suite นั้นๆเสร็จแล้ว

ส่วนใหญ่เรามักจะใช้ในการเตรียม Test Environment ที่จะไม่มีผลกระทบระหว่างเทสเคส เช่น การเปิด Web Browser ก่อนจะเริ่มรัน เทส และ  ปิด Web Browser หลังจากรันเทสทั้งหมดเสร็จแล้ว

Setup และ Tear down

Setup จะเป็นตัวเรียกให้ Keyword ที่เรากำหนดไว้ รันก่อนที่ จะรันเทสเคสนั้นๆครับ เช่น ถ้าเราต้องการเทส Web Application เราก็จำเป็นต้องเปิดที่เว็บ Site ที่เราต้องการจะเทสก่อนเสมอ ซึ่ง Step ตรงนี้ เราก็สามารถยุบรวมไว้ใน Setup ได้ครับ เพราะเป็นส่วนที่ไม่เกี่ยวกับจุดประสงค์การเทสของเราเลย

Tear down จะเป็นตัวเรียกให้ Keyword ที่เรากำหนดไว้ รันหลักจากรันเทสเคสนั้นๆเสร็จสิ้นครับ เช่น หลังจากเทส Web Application เสร็จ เราก็ต้องล้างข้อมูลเช่น Cookie หรือข้อมูล User Account ต่างๆ

ตัวอย่าง Setup และ Tear down

ถ้าลองสังเกตุดูจะเห็นว่า Test Step จริงมีแค่ บรรทัดที่ 5, 6 เท่านั้นเอง
ตัวอย่าง Test Script ก่อนใช้ Setup และ Tear down 

ตัวอย่าง Test Script หลังจากที่ใช้ Setup และ Tear down

การใช้ Setup และ Tear down ในการรัน Test Web Application

ตัวอย่าง Keyword Setup

ประโยชน์หลักๆของ Setup และ Tear down

  • ลดความซ้ำซ้อนของแต่ละ Test Script ลง ช่วยให้เราดูแลง่ายขึ้น
  • ช่วยทำให้เราโฟกัส กับสิ่งที่เราต้องการจะเทส ในแต่ละ Test Case ได้จริงๆ โดยไม่มี Setup Step และ Tear Down Step มาทำให้ดูวุ่นวาย เกินความจำเป็น
  • ช่วย Clear Test Environment ให้สะอาดเสมอก่อนจากรันเทส และหลังจากรันเทสเสร็จ
  • ถึงเทสจะ Failed  แต่ Tear Down ก็ยังทำงานต่อ จึงมั่นใจได้ว่า Test Environment ของเราสะอาดเสมอก่อนจะรันเทส ข้อต่อไปฮับ

มาเริ่มดูแล Test Script กันตั้งแต่วันนี้
อย่าปล่อยให้เป็นภาระลูกหลานเลยครับ

Previous articleVariables พื้นฐานการเขียนเทสที่ QA ต้องรู้
Next articleจะเริ่มเขียนเทส Mobile App ยังไงดี มาทำความรู้จักกับ Appium กันครับ