การเขียน Test Case และการทำ Manual Testing

ในการพัฒนาซอฟต์แวร์นั้น ตำแหน่ง Quality Assurance (QA) มีบทบาทสำคัญในการตรวจสอบว่าซอฟต์แวร์นั้นตรงตาม Requirements และความต้องการหรือไม่ การเขียน Test Case ที่ละเอียดและมีประสิทธิภาพเป็นส่วนสำคัญของหน้าที่ในการเป็น QA ซึ่งช่วยในการให้ความมั่นใจว่าซอฟต์แวร์มีคุณภาพตามที่ต้องการ ในบทความนี้เราจะมาดูวิธีการเขียน Test Case ที่ครอบคลุม และควรจะมีประสิทธิภาพเป็นอย่างไร และการทำ Manual Testing มีแบบไหนบ้าง ไปเริ่มกันเลย
Test Case คืออะไร ?
Test Case คือขั้นตอนที่ใช้ในการทดสอบซอฟต์แวร์เพื่อตรวจสอบว่าทำงานได้ตามที่คาดหวัง มีข้อผิดพลาดหรือปัญหาอะไรบ้างที่ต้องแก้ไข การทดสอบนี้มีจุดประสงค์เพื่อให้มั่นใจว่าซอฟต์แวร์สามารถทำงานได้ถูกต้อง และตรงตามความต้องการทั้งหมดที่กำหนดไว้
Standard Test Case ประกอบด้วยอะไรบ้าง ?
-
Test Case ID: รหัสหมายเลขสำหรับระบุ Test Case
-
Test Scenario: สถานการณ์ที่ต้องการทดสอบ
-
Prerequisites: เงื่อนไขที่ต้องตรวจสอบก่อนทำทดสอบ
-
Test Data: ข้อมูลที่ใช้ในการทดสอบ
-
Test Steps: ขั้นตอนการทดสอบ
-
Expected/Intended Results: ผลลัพธ์ที่คาดหวัง
-
Actual Results: ผลลัพธ์ที่เกิดขึ้นจริง
-
Test Status – Pass/Fail: สถานะของการทดสอบว่าผ่านหรือไม่ผ่าน
หลักสำคัญในการเขียน Test Case ที่ดี
1. ความเข้าใจในความต้องการของซอฟต์แวร์ (Requirements) และ ความต้องการของผู้ใช้ (User Stories)
ก่อนที่จะเริ่มการเขียน Test Case นั้น QA จะต้องทำความเข้าใจความต้องการของซอฟต์แวร์และความต้องการของผู้ใช้ก่อน สิ่งนี้จะช่วยในการวางแผนและขั้นตอนการทดสอบที่ละเอียดและครอบคลุมนั่นเอง
2. การกำหนดวัตถุประสงค์และสถานการณ์ในการทดสอบ (Test Scenarios)
การระบุวัตถุประสงค์และสถานการณ์ในการทดสอบ เป็นสิ่งสำคัญในการทดสอบประสิทธิภาพของซอฟต์แวร์ ว่าแต่ละการทดสอบต้องการทดสอบอะไรและต้องคำนึงว่าจะสามารถใช้งานได้ ในกรณีการใช้งานทั่วไป วัตถุประสงค์และ Test Scenarios จะช่วยให้เข้าใจว่าการทดสอบนั้นครอบคลุมการทำงานของซอฟต์แวร์หรือไม่
3. การระบุขั้นตอนการทดสอบ (Test Steps) ที่ชัดเจน
การระบุขั้นตอนการทดสอบที่ชัดเจนและละเอียด จะทำให้การทดสอบเป็นไปตามขั้นตอนที่ชัดเจน เข้าใจได้ง่าย และเป็นไปอย่างถูกต้อง ตามจุดประสงค์ของ Test Case นั้น
4. การเขียน Test Case ที่มีทั้งผลลัพธ์เชิงบวก (Positive) และผลลัพธ์เชิงลบ (Negative)
การทดสอบซอฟต์แวร์ ทั้งกรณีที่ทำงานตามสถานการณ์ปกติ (Positive) และกรณีที่ทำงานตามสถานการณ์ไม่ปกติ (Negative) เช่น กรอกข้อมูลผิดพลาด จะช่วยทำให้ Test Case มีความครอบคลุมและประสิทธิภาพ
5. ระบุผลลัพธ์ที่คาดหวัง (Expected Results) ให้ชัดเจน
การกำหนดผลลัพธ์ที่คาดหวัง จะช่วยให้ทีมพัฒนาและทีมทดสอบเข้าใจถึงผลลัพธ์ในแต่ละสถานการณ์ นอกจากนี้ยังเป็นหลักการที่สำคัญในการระบุว่าการทดสอบได้ผลลัพธ์เชิงบวก หรือเชิงลบตามที่คาดหวังหรือไม่
ตัวอย่าง Test Case
Test Case ID: #BST001
Test Scenario: To authenticate a successful user login on Gmail.com
Browser: Chrome v 86. Device: Samsung Galaxy Tab S7.
Prerequisites: A registered Gmail ID with a unique username and password.
Test Data: Legitimate username and password.
Test Steps:
-
The user navigates to Gmail.com.
-
The user enters a registered email address in the ’email’ field.
-
The user clicks the ‘Next’ button.
-
The user enters the registered password.
-
The user clicks ‘Sign In.’
Expected/Intended Results: Once username and password are entered, the web page redirects to the user’s inbox, displaying and highlighting new emails at the top.
Actual Results: As Expected
Test Status – Pass/Fail: Pass
หลังจากเรารู้จักกับการเขียน Test Case ไปแล้ว ต่อไปเราจะมารู้จักวิธีการทำ Manual Testing
Manual Testing คืออะไร ?
Manual Testing คือ การทดสอบซอฟต์แวร์หรือระบบด้วยตนเอง โดยที่ไม่ต้องใช้เครื่องมืออัตโนมัติ (Automation Testing Tools) นั่นเอง
หลักสำคัญของการทำ Manual Testing
1. ความครอบคลุม (Comprehensive)
สามารถรายงานผลการทดสอบครอบคลุมได้มากกว่าการทำ Automation Testing ซึ่งจะได้ผลลัพธ์แค่ ผ่านหรือไม่ผ่านเท่านั้น
2. รองรับการปรับเปลี่ยน (Adaptable)
สามารถระบุปัญหาที่อยู่นอกเหนือขอบเขตที่ได้วางแผนไว้ได้
3. ความเข้าถึงได้ (Approachable)
ผู้ที่ทำการทดสอบไม่จำเป็นต้องรู้จักหลักการทำงานของ Automate Testing ก็สามารถเตรียมการทดสอบและเริ่มทำการทดสอบได้
4. การป้องกัน (Preventative)
การทำการทดสอบซอฟต์แวร์ตั้งแต่ช่วงเริ่มต้นของการพัฒนา ช่วยตรวจจับและป้องกันปัญหาที่อาจเกิดขึ้น ก่อนที่ปัญหาจะมีความซับซ้อนมากขึ้น หรืออาจมีค่าใช้จ่ายในการกลับมาแก้ไขระหว่างการพัฒนา
5. ประสิทธิภาพ (Effective)
QA ต้องสามารถจัดการ และดำเนินการทดสอบได้อย่างราบรื่นและมีประสิทธิภาพ โดยจะต้องสอดคล้องกับเป้าหมายของการพัฒนา
รูปแบบการทำ Manual Testing
รูปแบบการทำ Manual Testing นั้นมีหลายวิธี โดยจะถูกใช้กับซอฟต์แวร์แต่ละประเภทต่างกันออกไป โดยทั่วไปแล้วจะมีรูปแบบ ดังนี้
Black-Box Testing
การทดสอบซอฟต์แวร์โดยมองจากมุมมองของผู้ใช้ทั่วไป การทดสอบนี้ไม่สนใจการทำงานภายในแต่เน้นไปที่การนำเข้าข้อมูล (Input) และการส่งออกข้อมูล (Output) ของซอฟต์แวร์
White-Box Testing
การทดสอบเน้นไปที่ความปลอดภัยและฟังก์ชันภายในของซอฟต์แวร์ QA ต้องเข้าใจการทำงานภายในและการทำงานของซอฟต์แวร์
Unit Testing
ประเมินประสิทธิภาพของหน่วยย่อยในซอฟต์แวร์ เพื่อยืนยันว่าฟังก์ชันทำงานตามที่คาดหวัง การทดสอบจะทำโดยนักพัฒนาหรือ QA เพื่อยืนยันว่าหน่วยย่อยที่แยกออกมาทำงานถูกต้อง
Integration Testing
เป็นการทดสอบว่าส่วนต่าง ๆ ของซอฟต์แวร์สามารถทำงานร่วมกันได้อย่างถูกต้อง ใช้ในการทดสอบการเชื่อมต่อ และการทำงานร่วมกันของส่วนต่าง ๆ ของซอฟต์แวร์
System Testing
การทดสอบเพื่อตรวจสอบประสิทธิภาพของซอฟต์แวร์ทั้งหมดจากจุดเริ่มต้นไปยังจุดสิ้นสุด ใช้ในการประเมินว่าซอฟต์แวร์ทำงานถูกต้องทั้งหมด
Usability Testing
การรวบรวมข้อมูลจากผู้ใช้ที่ไม่รู้ล่วงหน้าเกี่ยวกับซอฟต์แวร์ เพื่อประเมินความพึงพอใจในด้านการออกแบบและความสะดวกในการใช้งาน
User Acceptance Testing
เป็นการทดสอบให้ผู้ใช้งานดูว่าซอฟต์แวร์ตรงตามที่ออกแบบไว้ และสามารถทำงานได้ตามที่ต้องการ เพื่อยืนยันว่าซอฟต์แวร์ได้รับการยอมรับจากผู้ใช้
Conclusion
อย่างไรก็ตามการเขียน Test Case และการทำ Manual Testing นั้นจะแตกต่างกันออกไปขึ้นอยู่กับโครงสร้าง หรือกระบวนการขององค์กรนั้น ๆ โดยสิ่งสำคัญคือการนำหลักความรู้มาปรับใช้ให้เข้ากับงาน และการส่งมอบซอฟต์แวร์ที่มีคุณภาพดีที่สุดให้ถึงมือผู้ใช้นั่นเอง
References:


Subscribe to follow product news, latest in technology, solutions, and updates
Other articles for you



Let’s build digital products that are simply awesome !
We will get back to you within 24 hours!Go to contact us








