ในสายงานการพัฒนาแอปพลิเคชั่น ซอฟท์แวร์ หรือโปรแกรมต่าง ๆ นอกจากอาชีพชูโรงอย่าง Developer แล้ว ยังมีตำแหน่งยิบย่อยอื่น ๆ อีกหลายตำแหน่ง หนึ่งในนั้นก็คือ Tester หรือ QA (Quality Assurance) ซึ่งทำหน้าที่ตรวจสอบคุณภาพของ Application หรือ Software ที่ทีมกำลังพัฒนาอยู่ว่าสามารถใช้งานได้ดีมีคุณภาพตรงตาม requirement หรือไม่ หากมีข้อผิดพลาดตรงไหน ก็สามารถที่จะส่งให้ทีมพัฒนาแก้ไขได้ก่อนที่จะขึ้นระบบจริง (Go live) ให้ user จริง ๆ ได้ใช้งาน ซึ่งขั้นตอนในการ Test ระบบ หรือ QA มีขั้นตอนต่าง ๆ ที่เป็นวิธีในการปฏิบัติเพื่อให้การเทสระบบเป็นไปได้อย่างครอบคลุม หนึ่งในนั้นก็คือ การทำ Test Case
Test Case คือ การสร้างหัวข้อหรือกรณีทดสอบระบบ หรือ Software ตามขั้นตอน เงื่อนไข และตัวแปรต่าง ๆ ที่จะเกิดขึ้นต้องที่ application หรือ ระบบถูกใช้งานจริง โดย Test Case จะถูกออกแบบให้มีเป้าหมายเพื่อให้ระบบสามารถใช้งานได้ตรงตามความต้องการ (requirements) และเงื่อนไข (Conditions) มากที่สุด มากกว่าการที่ถูกสร้างขึ้นมาเพื่อตรวจสอบว่าฟังก์ชันนั้น ๆ ในระบบสามารถใช้งานได้เพียงแค่นั้น
เหตุผลที่จะต้องทำ Test Case ก็เพราะว่าถ้าหาก application หรือ software ถูกพัฒนาขึ้นมาแล้ว สามารถใช้งานได้ ระบบดี แต่ว่าไม่ได้ตรงตามกับ requirement ที่มีมาตั้งแต่แรก หรือไม่ได้ตอบโจทย์ความต้องการในการใช้งานของ user application หรือ software นั้น ๆ ก็ไม่สามารถบรรลุวัตถุประสงค์ของการสร้าง application หรือ software นั้น ๆ ได้ เพราะไม่ได้ช่วยแก้ไขปัญหาหรือเพิ่มประสิทธิภาพการทำงานตามที่ตั้งใจไว้ตั้งแต่แรก และ Test Case ยังทำหน้าที่เป็นเหมือนแผนที่นำทางให้กับบรรดา Tester ใน Test Level หรือระดับของการทดสอบระบบในระดับต่าง ๆ อีกด้วย
ก่อนที่เราจะไปรู้จักการเขียน Test Case เราอยากพาทุกคนไปรู้จักกับ Test Level หรือ การแบ่งระดับของการทดสอบระบบกันก่อน เพราะส่วนนี้จะช่วยให้สามารถวางแผนการเขียน Test Case ได้ออกมาตรงกับเป้าหมายมากขึ้น เราขอแบ่ง Test Level ง่าย ๆ ออกเป็น 3 ระดับตามคนที่รับผิดชอบการเทส ดังนี้
ซึ่ง Test Case ก็จะถูกวิเคราะห์ ออกแบบ และสร้างออกมาโดยผู้ที่เป็นคนเทสในแต่ละระดับ ตามวิธีการและขั้นตอนการเทสแต่ละคน
การยืนยันความถูกต้อง (Verification) ของการใช้งานระบบจะถูกใช้เป็นหลักการในการเขียน Test Case โดยอ้างอิงจาก ความต้องการ (Requirements) และเงื่อนไข (Conditions) เป็นหลัก โดย Test Case จะต้องถูกเขียนให้ครอบคลุมกับ requirements และ conditions ในทุก ๆ ข้อ ซึ่งอาจจะระดมคนในทีมที่เกี่ยวข้องเข้ามาร่วมกันแสดงความคิดเห็นในการเทสด้วยก็ได้ เพราะหลักการเขียน Test Case จะต้องยึดหลักความครอบคลุมให้มาที่สุด ยิ่งมีหลายมุมมองก็จะยิ่งทำให้เขียน Test Case ได้ครอบคลุมทุกกรณีมากยิ่งขึ้น
เพื่อให้มองเห็นภาพมากยิ่งขึ้น เราสามารถอธิบาย Test Case เป็นสมการเพื่อเป็นจุดตั้งต้นให้กับใครก็ตามที่กำลังจะต้องเริ่มเขียน Test Case โดยสามารถสรุปเป็นสมการได้ดังนี้
Test Case = Test Rule + Test Data
Test Rule คือ กฎของการเทส ที่เป็นการวิเคราะห์มาจากความต้องการ (Requirement) ว่าเราจะต้องทดสอบ Requirement ผ่านเงื่อนไขอะไรบ้าง Test Rule จะเป็นการรวบรวม สรุปเงื่อนไขต่าง ๆ ของความต้องการเพื่อนำมาเป็นตัวตั้งต้นในการออกแบบ Test Case ต่อไป
Test Data คือ ข้อมูลในการทดสอบ เพราะเมื่อเราได้เงื่อนไขจาก Requirement มาแล้ว ก็จะต้องเตรียมข้อมูล หรือ Data ที่จะมาใช้ทดสอบ โดยข้อมูลเหล่านั้นจะต้องเป็นข้อมูลที่เสมือนจริง หรือในบางเคสอาจจะใช้ข้อมูลจริง ๆ มาใช้เป็น Test Data เลยก็ได้ และที่สำคัญข้อมูลจะต้องมีปริมาณมากพอรวมไปถึงต้องเป็นข้อมูลที่มีคุณภาพ เพื่อการเทสนั้นจะได้ออกมาสมบูรณ์มากที่สุด
หากใครที่กำลังอยากเริ่มอาชีพสายไอทีแต่ไม่ได้จบสายตรงมาหรือยังรู้สึกว่าตัวเองมีความรู้ยังไม่มากพอที่จะเป็น Developer อาจจะเริ่มจากการเป็น Tester ดูก่อนก็ได้ เพราะเป็นอีกหนึ่งตำแหน่งที่ต้องเข้าใจทั้งความต้องการ (Requirement) เป็นอย่างดี