บุคคลหนึ่งที่เรียกกันโดยทั่วไปว่า “Tester” ก็คือ ผู้ทดสอบระบบ ผู้ทดลองใช้งานระบบที่พัฒนาโดยโปรแกรมเมอร์ ฟังดูแล้วก็เหมือนไม่มีอะไรที่ยุ่งยากซับซ้อนสักเท่าไหร่ (มั้ง) ในความเข้าใจของผู้เขียนเมื่อตอนยังเป็นบัณฑิตจบใหม่ต๊อกต๋อยนั้น ก็คงจะเหมือนที่คนอื่น ๆ เข้าใจว่า “Tester” มีหน้าที่ทดลองใช้งานระบบว่าใช้งานได้หรือไม่ หรือคอยจับผิดโปรแกรมเมอร์ว่าซุก Bug อะไรไว้หรือเปล่า (หึหึ) จนกระทั่งกาลครั้งหนึ่งเมื่อผู้เขียนได้มาเป็น “Tester” ถึงได้รู้ว่าจริง ๆ งานทดสอบระบบนั้น ก็มีขั้นตอนกระบวนการทำงานต่าง ๆ รวมถึงเรื่องราวชวนงงของคุณ “Tester” เช่น….
Test script | Test case | Test scenario
Test case คือ กรณีที่ใช้ในการทดสอบ ซึ่ง Test case จะอิงกับ Busines requirement ที่ได้จากลูกค้า ตัวอย่างเช่น การเขียน Test case สำหรับทดสอบระบบ Log in จะสามารถเขียนได้ดังนี้
กรณีระบุ Username และ Password ถูกต้อง ระบบจะแสดงหน้า My Dashbord
ภาพที่ 1 ตัวอย่าง Test case
ทั้งนี้การเขียน Test case จะต้องมีการกำหนดสถานการณ์จำลองที่จะต้องเกิด ซึ่งต้องครอบคลุมถึงกรณีที่เป็น Negative หรือกรณีที่ทำรายการผิด กรอกข้อมูลผิดพลาดเพื่อทดสอบ Response ที่ระบบจะแจ้งเตือนแก่ user สถานการณ์ดังกล่าวเราเรียกว่า Test scenario ตัวอย่างของการเขียน Test case ที่เป็น Negative case ได้แก่
กรณีระบุ Email Address หรือ Password ไม่ถูกต้อง ระบบจะแสดงข้อความแจ้งเตือนเพื่อให้ระบุค่าให้ถูกต้อง
ภาพที่ 2 ตัวอย่าง Test case
ส่วน Test script คือ ขั้นตอนในการทดสอบ หรือการบอก Step ของ Activity ต่าง ๆ ที่จะกระทำกับระบบแล้วเกิดผลลัพธ์ เช่น User ต้องกรอกข้อมูลลงในฟิลด์ก่อน แล้วคลิกปุ่ม submit ตัวอย่างเช่น
ภาพที่ 3 ตัวอย่าง Test script
ซึ่งเอกสาร Test script จะเป็นตัวที่บ่งบอกผลการทดสอบระบบทั้งหมดนั่นเอง
ประเภทของการทำ Test
ประเภทของการ Test มีเยอะมาก ๆ ซึ่ง “Tester” มือใหม่ที่มีประสบการณ์อันน้อยนิด ผู้เขียนขอพูดถึงเฉพาะประเภทที่ผู้เขียนเคยได้ยิน และที่ผู้เขียนเคยใช้ได้แก่
- Unit Test
Unit Test เป็นการทดสอบการทำงานของแต่ละ Module การทำ Unit Test นั้นต้องอาศัยความรู้ในเรื่องของ Coding และ Programming design ซึ่งผู้ที่ทำ Unit Test คือโปรแกรมเมอร์ นั่นเอง เรียกง่าย ๆ ว่า พอโปรแกรมเมอร์พัฒนาระบบในแต่ละ Module เสร็จ ก็จะต้องทำการทดสอบการทำงานของ Module นั้น ๆ ก่อนที่จะถึงมือ “Tester” แต่!!! ถ้า Tester มีความรู้ความสามารเกี่ยวกับ Coding และ Programming design ก็สามารถร่วมมือกับโปรแกรมเมอร์ทำ Unit Test ได้นะเอออออ
- Integration Testing
Integration Testing ก็คือการทำเอา Module ต่าง ๆ มาประกอบกันเป็นระบบ ซึ่งการทดสอบในขั้นตอนนี้จะเป็นการทดสอบการทำงานร่วมกันของ Module หรือ Function อื่น ๆ ที่ผ่านการทำ Unit Test มาแล้ว “Tester” จะต้องทำการทดสอบตาม Test script ที่ทำไว้ ซึ่งถ้าหากเกิดข้อผิดพลาดก็จะส่ง Issue กลับไปให้โปรแกรมเมอร์แก้ไขต่อไป
- Acceptance Testing
หลังจากที่ได้ทำ Integration Testing ไปแล้ว ขั้นตอนนี้เป็นการทดสอบในลักษณะ End-to-End ก่อนจะนำระบบขึ้นใช้งานจริง (Go live) โดยจะส่งให้ลูกค้าเป็นผู้ทดสอบ
วิธีการ Test
- Manual Test
เป็นวิธีเก่าก่อน และยังคงยืนยาวมาถึงในปัจจุบันของการ Test ก็คือ การ Manual Test หรือจำลองว่าเราคือ User กรอกข้อมูล ทำรายการทีละขั้นตอนตาม Test Script (ถ้าเป็นระบบใหญ่ มีการทำงานเยอะล่ะก็ ถึงขั้นมือหงิกกันเลยทีเดียว)
- Automation Test
Automation Test คือการ Test โดยใช้ Tool สำหรับ Test ทำงานด้วยตัวของมันเอง ซึ่งจะช่วยลดเวลาในการ Manual Test แต่อาจจะต้องมีการใช้ Coding เพื่อเขียน Script ที่ใช้สำหรับ Run ซึ่ง Tool ที่ผู้เขียนใช้ได้แก่ Robot Framework จ้า!!! มาทำความรู้จักกับ Robot Framework เบื้องต้น
ทั้งหมดนี้ก็เป็นเพียงเรื่องราวเบื้องต้นของการทำ Testing โดยคุณ “Tester” ซึ่งจริง ๆ แล้วยังมีเรื่องชวนงง และเรื่องน่าสนใจอื่น ๆ อีกมากมาย ดังนั้น ถ้าอยากหายงงคุณ “Tester” ก็ต้องขยันอัพเดทข้อมูลใหม่ ๆ อยู่เสนอนะจ๊ะ
________________________________________________________________________
บทความอื่น ๆ ที่เกี่ยวกับ Robot framework
- มาทำความรู้จักกับ Robot framework เบื้องต้น
- การติดตั้ง Robot framework
- ถอด Test Script ให้เป็น Robot Script (Robot Framework)
- เขียน Script ใน Robot framework อย่างไร? เมื่อใน 1 case มีมากกว่า 1 Scenario
________________________________________________________________________
เรียบเรียงโดย
ทัศนีย์ คัดเจริญ
Quality Assurance
Leave a Reply