27Feb, 2024
Language blog :
Thai
Share blog : 
27 February, 2024
Thai

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

By

8 mins read
การเขียน 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:

Written by
Boom Natthapas
Boom Natthapas

Subscribe to follow product news, latest in technology, solutions, and updates

- More than 120,000 people/day visit to read our blogs

Other articles for you

13
July, 2024
JS class syntax
13 July, 2024
JS class syntax
เชื่อว่าหลายๆคนที่เขียน javascript กันมา คงต้องเคยสงสัยกันบ้าง ว่า class ที่อยู่ใน js เนี่ย มันคืออะไร แล้วมันมีหน้าที่ต่างกับการประกาศ function อย่างไร? เรามารู้จักกับ class ให้มากขึ้นกันดีกว่า class เปรียบเสมือนกับ blueprint หรือแบบพิมพ์เขียว ที่สามารถนำไปสร้างเป็นสิ่งของ( object ) ตาม blueprint หรือแบบพิมพ์เขียว( class ) นั้นๆได้ โดยภายใน class

By

4 mins read
Thai
13
July, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
13 July, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
ผู้ให้บริการเครือข่ายในสหรัฐฯ ได้เปิดตัว 5G ในหลายรูปแบบ และเช่นเดียวกับผู้ให้บริการเครือข่ายในยุโรปหลายราย แต่… 5G มันคืออะไร และทำไมเราต้องให้ความสนใจ บทความนี้ได้รวบรวม 15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G เพราะเราปฏิเสธไม่ได้เลยว่ามันกำลังจะถูกใช้งานอย่างกว้างขวางขึ้น 1. 5G หรือ Fifth-Generation คือยุคใหม่ของเทคโนโลยีเครือข่ายไร้สายที่จะมาแทนที่ระบบ 4G ที่เราใช้อยู่ในปัจจุบัน ซึ่งมันไม่ได้ถูกจำกัดแค่มือถือเท่านั้น แต่รวมถึงอุปกรณ์ทุกชนิดที่เชื่อมต่ออินเตอร์เน็ตได้ 2. 5G คือการพัฒนา 3 ส่วนที่สำคัญที่จะนำมาสู่การเชื่อมต่ออุปกรณ์ไร้สายต่างๆ ขยายช่องสัญญาณขนาดใหญ่ขึ้นเพื่อเพิ่มความเร็วในการเชื่อมต่อ การตอบสนองที่รวดเร็วขึ้นในระยะเวลาที่น้อยลง ความสามารถในการเชื่อมต่ออุปกรณ์มากกว่า 1 ในเวลาเดียวกัน 3. สัญญาณ 5G นั้นแตกต่างจากระบบ

By

4 mins read
Thai
13
July, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
13 July, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
ในปัจจุบันนี้ ปฏิเสธไม่ได้เลยว่าภาษาที่ถูกใช้ในการเขียนเว็บต่าง ๆ นั้น คงหนีไม่พ้นภาษา Javascript ซึ่งเป็นภาษาที่ถูกนำไปพัฒนาเป็น framework หรือ library ต่าง ๆ มากมาย ผู้พัฒนาหลายคนก็มีรูปแบบการเขียนภาษา Javascript ที่แตกต่างกัน เราเลยมีแนวทางการเขียนที่หลากหลาย มาแบ่งปันเพื่อน ๆ เกี่ยวกับการจัดการ Array ด้วยภาษา Javascript กัน เรามาดูตัวอย่างกันเลยดีกว่า โดยปกติแล้วการ copy ค่าจาก value type ธรรมดา สามารถเขียนได้ดังนี้

By

4 mins read
Thai

Let’s build digital products that are
simply awesome !

We will get back to you within 24 hours!Go to contact us
Please tell us your ideas.
- Senna Labsmake it happy
Contact ball
Contact us bg 2
Contact us bg 4
Contact us bg 1
Ball leftBall rightBall leftBall right
Sennalabs gray logo28/11 Soi Ruamrudee, Lumphini, Pathumwan, Bangkok 10330+66 62 389 4599hello@sennalabs.com© 2022 Senna Labs Co., Ltd.All rights reserved.