Screen Shot 2558-04-07 at 6.39.46 PM
หนึ่งวิธีการสร้างชุด Automated test ให้มันมีความน่าเชื่อถือ และ เสถียร
คือ การทดสอบเฉพาะส่วนที่แก้ไขเท่านั้น !!

ลองคิดดูสิว่า
ถ้าจำนวน test case ของคุณเยอะมากๆ
มันย่อมใช้เวลานานใช่ไหม ?

ลองคิดต่อไปสิว่า
ถ้ามี test case ที่มัน fail แล้วคุณต้องแก้ไขให้ผ่าน
คุณจะต้องทำอย่างไร ?
ต้องทำการทดสอบทุกๆ test case อีกหรือไม่ ?
หรือทดสอบเพียง test case ที่มัน fail ก็พอ ?

ในการสร้างชุด Automated test ด้วย Robotframework นั้น

ถ้าเกิดปัญหาข้างต้น สามารถแก้ไขได้หลายวิธี เช่น

  • การใช้ tagging สำหรับแยกกลุ่ม test case ออกจากกัน ซึ่งต้องไปแก้ไขทุกๆ test case ก็คงไม่สนุกเท่าไร
  • การเลือกเฉพาะ test suite และ test case ที่ต้องการ ก็จะลำบากไปนะ

แต่ก็ยังมีวิธีที่น่าสนใจอีกวิธีหนึ่ง ที่น่าสนใจ
ซึ่งเป็นความสามารถของ Robot Framework ตั้งแต่ version 2.8 ขึ้นมานะครับ
คือ การให้ run เฉพาะ test case ที่มัน fail หรือ ไม่ผ่านก่อนหน้าได้
ซึ่งมันคือ วิธีการที่สร้างมาเพื่อแก้ไขปัญหาจริงๆ แบบตรงไปตรงมากันเลย

ขั้นตอนการใช้งานก็ง่ายมากๆ ดังตัวอย่าง

คำอธิบาย
ประกอบไปด้วย 2 test case คือ

  • Stable test แน่นอนว่ายังไงก็ผ่าน
  • Unstable test เป็น test case ที่ทำการ random ข้อมูล 0 กับ 1 ดังนั้น โอกาสของการทำงานผ่านและไม่ผ่านอยู่ที่ 50%

ขั้นตอนที่ 1

ทำการทดสอบชุดของ test case ด้วยคำสั่ง

$pybot --output original.xml *.txt

คำอธิบาย
ทำการบันทึกผลการทดสอบไว้ในไฟล์ original.xml
ในผลการทดสอบจะมีบาง test case ที่ไม่ผ่าน
ทดสอบไปจนกว่าจะไม่ผ่านนะ ดังรูป

Screen Shot 2558-04-07 at 1.05.18 PM

ขั้นตอนที่ 2

ให้ทำการแก้ไข test case เหล่านั้น
แล้วทำการทดสอบใหม่ ด้วยคำสั่ง

$pybot --rerunfailed original.xml --output rerun.xml *.txt

คำอธิบาย
จะทำการทดสอบเฉพาะ test case ที่ไม่ผ่านก่อนหน้านี้เท่านั้น
ส่วน test case ใดที่ผ่านก่อนหน้านี้ จะไม่ถูกทำการทดสอบ
สามารถดูได้จากผลการทดสอบ ดังรูป

Screen Shot 2558-04-07 at 1.06.18 PM

ขั้นตอนที่ 3

ในตอนนี้ผลการทดสอบประกอบไปด้วย 2 ไฟล์คือ

  1. original.xml
  2. rerun.xml

ดังนั้น เราจะต้องทำการ merge หรือรวมผลการทดสอบทั้งสองไฟล์เข้าด้วยกัน
ด้วยคำสั่ง

$rebot --merge original.xml rerun.xml

เพียงเท่านี้เราก็จะได้ผลการทดสอบแบบเต็มๆ ดังรูป

Screen Shot 2558-04-07 at 1.07.01 PM

คำอธิบาย
เห็นในช่อง Message ของ test case Unstable test ไหมครับ
มันจะทำการแก้ไขค่า และ บันทึกการทำงานทั้งผ่านและไม่ผ่านไว้ด้วย
ซึ่งทำให้เราเห็นว่า Robot framework มันทำงานอย่างไร

ความสามารถนี้ของ Robotframework
น่าจะพอมีประโยชน์ไม่มากก็น้อย
สำหรับการทดสอบระบบงานแบบอัตโนมัตินะครับ

ลองคิดดูสิว่า
ถ้าคุณมี test case จำนวนมากๆ แต่ว่ามี failure test case ที่น้อยๆ
วิธีการนี้ มันช่วยให้คุณทดสอบได้รวดเร็วขึ้นไหมนะ ?