การทดสอบการปฏิบัติตามข้อกำหนด (Conformance Testing) ในการทดสอบซอฟต์แวร์
⚡ สรุปอย่างชาญฉลาด
การทดสอบความสอดคล้อง (Conformance Testing) รับรองว่าระบบซอฟต์แวร์เป็นไปตามมาตรฐานและข้อบังคับที่กำหนดโดยองค์กรต่างๆ เช่น IEEE, W3C หรือ ETSI ซึ่งครอบคลุมถึงประสิทธิภาพ ฟังก์ชัน ความทนทาน การทำงานร่วมกัน และพฤติกรรมโดยรวมของระบบ

การทดสอบความสอดคล้อง
การทดสอบความสอดคล้อง การทดสอบความสอดคล้อง (Conformance Testing) เป็นเทคนิคการทดสอบซอฟต์แวร์ที่ใช้เพื่อรับรองว่าระบบซอฟต์แวร์นั้นเป็นไปตามมาตรฐานและข้อบังคับที่กำหนดโดยองค์กรต่างๆ เช่น IEEE, W3C หรือ ETSI โดยจะตรวจสอบว่าระบบที่กำลังทดสอบนั้นสอดคล้องกับข้อกำหนดเฉพาะของมาตรฐานนั้นๆ ได้ดีเพียงใด การทดสอบความสอดคล้องนี้เรียกอีกอย่างว่า การทดสอบการปฏิบัติตามข้อกำหนด (Compliance Testing)
แม้ว่าจะเกี่ยวข้องกับแง่มุมทางเทคนิค แต่โดยเจตนารมณ์แล้วยังครอบคลุมถึง:
- ประสิทธิภาพ
- ฟังก์ชั่น
- ความแข็งแรง
- การทำงานร่วมกัน
- พฤติกรรมของระบบ
ประเภทของการทดสอบความสอดคล้อง
การทดสอบความสอดคล้องสามารถเป็นได้ทั้งเชิงตรรกะหรือเชิงกายภาพ และประกอบด้วยการทดสอบประเภทต่างๆ ดังต่อไปนี้:
- การทดสอบการปฏิบัติตามข้อกำหนด
- โหลดการทดสอบ
- การทดสอบความเครียด
- การทดสอบปริมาตร
แผนภาพด้านล่างแสดงให้เห็นว่าการทดสอบประเภทต่างๆ เหล่านี้ทำงานร่วมกันอย่างไรภายในโปรแกรมการปฏิบัติตามข้อกำหนดเดียว
เหตุใดเราจึงต้องมีการทดสอบความสอดคล้อง?
- เพื่อตรวจสอบว่าระบบตรงตามข้อกำหนดหรือไม่
- เพื่อตรวจสอบว่าเอกสารระบบครบถ้วนหรือไม่
- เพื่อตรวจสอบการพัฒนา การออกแบบ และการประเมินผลให้เป็นไปตามข้อกำหนด
เราต้องทดสอบอะไรบ้าง?
- มาตรฐานที่ใช้ดำเนินการ
- การเรียกของระบบที่จะพัฒนา
- ขอบเขตข้อกำหนด
- วัตถุประสงค์ข้อกำหนด
การทดสอบความสอดคล้องจะเริ่มต้นโดยฝ่ายบริหาร โดยให้ความมั่นใจว่าทีมงานเข้าใจมาตรฐาน ข้อกำหนด และขั้นตอนที่เกี่ยวข้อง
มาตรฐานและข้อกำหนดควรระบุไว้อย่างชัดเจนเพื่อหลีกเลี่ยงความคลุมเครือ หากไม่ระบุไว้ การทดสอบความสอดคล้องจะเป็นประโยชน์ในการระบุขั้นตอนที่จำเป็นเพื่อให้มาตรฐานและข้อกำหนดเหล่านั้นมีความเกี่ยวข้องและน่าเชื่อถือ
ควรทำการทดสอบความสอดคล้องเมื่อใดและอย่างไร
การทดสอบความสอดคล้องจะดำเนินการเมื่อต้องตรวจสอบความสอดคล้อง ความสมบูรณ์ และความถูกต้องโดยรวมของระบบเทียบกับข้อกำหนด วิธีการที่ใช้ไม่แตกต่างจากขั้นตอนวงจรชีวิตการพัฒนาทั่วไปมากนัก:
- การวิเคราะห์ข้อกำหนดข้อกำหนด
- การเตรียมแผนการทดสอบ
- การเตรียมกรณีทดสอบและระบุวัตถุประสงค์ของการทดสอบ
- จัดทำเอกสารสำหรับแบบทดสอบที่เตรียมไว้
มีรายละเอียดเพิ่มเติมบางประการในข้อกำหนดที่ต้องให้ความสนใจ โดยเฉพาะอย่างยิ่งในส่วนย่อย ซึ่งโดยทั่วไปมีสามประเภท ได้แก่ โปรไฟล์ ระดับ และโมดูล:
- บริษัท เป็นส่วนย่อยของข้อกำหนดที่รวมถึงฟังก์ชันการทำงานของระบบที่จำเป็นเพื่อตอบสนองความต้องการของผู้ใช้กลุ่มใดกลุ่มหนึ่งโดยเฉพาะ
- Levels เป็นชุดย่อยที่ซ้อนกันของข้อกำหนด โดยระดับ 1 ระบุข้อกำหนดพื้นฐาน และระดับ 2 ระบุระดับ 1 บวกกับฟังก์ชันเพิ่มเติมหรือฟังก์ชันใหม่
- โมดูล คือชุดของมาตรฐานและข้อกำหนดที่มีความสัมพันธ์กันอย่างมีนัยสำคัญ
กระบวนการทดสอบความสอดคล้อง
กระบวนการทดสอบความสอดคล้อง หรือกระบวนการทดสอบการปฏิบัติตามข้อกำหนด เป็นสิ่งจำเป็นเพื่อให้มั่นใจถึงประสิทธิภาพและการทำงาน และเพื่อหลีกเลี่ยงความเสี่ยงในอนาคตสำหรับแอปพลิเคชันซอฟต์แวร์ การทดสอบความสอดคล้องที่มีประสิทธิภาพจะดำเนินการตามขั้นตอนดังต่อไปนี้:
- การวิเคราะห์มาตรฐานและข้อกำหนด
- การเลือกเครื่องมือทดสอบและชุดทดสอบ
- การออกแบบขั้นตอนการทดสอบ
- การตรวจสอบความถูกต้องที่จำเป็น
- การนำนโยบายการทดสอบและการรับรองที่เกี่ยวข้องมาใช้
แผนภาพแสดงขั้นตอนการทดสอบความสอดคล้องและการปฏิบัติตามข้อกำหนดด้านล่างนี้ ช่วยให้เข้าใจลำดับขั้นตอนได้ง่ายขึ้น
หากนำเสนอในรูปแบบกรณีศึกษา กระบวนการเดียวกันนี้จะแสดงให้เห็นว่าผู้แสดงบทบาทใดเป็นผู้ดำเนินการในแต่ละขั้นตอน
การทดสอบความสอดคล้องเทียบกับการทดสอบการปฏิบัติตามข้อกำหนด
การทดสอบความสอดคล้องบางครั้งเรียกว่าการทดสอบการปฏิบัติตามข้อกำหนด แต่มีข้อแตกต่างพื้นฐานบางประการระหว่างทั้งสองอย่าง ตารางด้านล่างนี้เปรียบเทียบทั้งสองอย่าง
| การทดสอบความสอดคล้อง | การทดสอบการปฏิบัติตามข้อกำหนด |
| วิธีการทดสอบที่เป็นทางการและแม่นยำเทียบกับมาตรฐาน | วิธีการทดสอบแบบไม่เป็นทางการและมีความแม่นยำน้อยกว่าเมื่อเทียบกับมาตรฐาน |
| การรับรองความสอดคล้องนั้นใช้ได้เฉพาะกับระบบปฏิบัติการที่ได้รับการอนุมัติอย่างเป็นทางการจากหน่วยงานรับรองมาตรฐานเท่านั้น | ระบบปฏิบัติการที่ให้ API เดียวของ POSIX (Portable Operaกล่าวกันว่าอินเทอร์เฟซระบบ (ting System Interface) นั้นเป็นไปตามข้อกำหนด |
| ใช้สำหรับทดสอบระบบที่รองรับมาตรฐานที่กำหนดอย่างครบถ้วน | ใช้สำหรับการทดสอบระบบที่รองรับมาตรฐานเพียงบางส่วนเท่านั้น |
ข้อดีของการทดสอบความสอดคล้อง
- รับประกันการดำเนินการตามข้อกำหนดอย่างถูกต้อง
- รับประกันการพกพาและการทำงานร่วมกันได้
- จัดให้มีการใช้มาตรฐานอย่างเหมาะสม
- ทำให้มั่นใจได้ว่าอินเทอร์เฟซและฟังก์ชันต่างๆ ทำงานได้ตามที่คาดหวัง
- ช่วยระบุส่วนที่ต้องปฏิบัติตามและส่วนที่ไม่ต้องปฏิบัติตาม เช่น ไวยากรณ์และความหมาย
ข้อเสียของการทดสอบความสอดคล้อง
เช่นเดียวกับการทดสอบประเภทอื่นๆ การทดสอบความสอดคล้องมีขั้นตอนที่ยากต่อการดำเนินการและอาจเป็นความท้าทาย ซึ่งบางส่วนมีดังต่อไปนี้:
- การทดสอบความสอดคล้องที่มีประสิทธิภาพจำเป็นต้องระบุประเภทของระบบที่กำลังทดสอบ พร้อมทั้งวิธีการที่เหมาะสม
- การแบ่งประเภทข้อกำหนดออกเป็น โปรไฟล์ ระดับ และโมดูล
- การกำหนดค่าล่วงหน้า
- ออกแบบส่วนขยาย ตัวเลือก และแนวทางที่จำเป็นเพื่อให้กระบวนการทดสอบดำเนินไปได้อย่างประสบความสำเร็จ
การทดสอบความสอดคล้อง: มุมมองที่สำคัญ
การทดสอบความสอดคล้องมีบางส่วนที่ต้องให้ความสนใจและความรู้เพิ่มเติมเพื่อให้การดำเนินการประสบความสำเร็จ:
- วิธีการทดสอบที่เหมาะสมที่สุด
- การเลือกเครื่องมือทดสอบที่จะช่วยให้กระบวนการทดสอบเป็นไปโดยอัตโนมัติ
- เข้าใจอย่างชัดเจนว่าการทดสอบความสอดคล้องแสดงให้เห็นเฉพาะข้อบกพร่องเท่านั้น ไม่ใช่ความสอดคล้อง
- การออกแบบและดำเนินการโครงการทดสอบความสอดคล้อง
- กำหนดวิธีดำเนินการอย่างเป็นทางการ
- นโยบายและกฎระเบียบ
การทดสอบความสอดคล้องของระบบมือถือ
เช่นเดียวกับการทดสอบซอฟต์แวร์ประเภทอื่นๆ การทดสอบความสอดคล้อง (Conformance Testing) สามารถทำได้กับระบบมือถือเช่นกัน เมื่อประกอบระบบเสร็จแล้ว จะมีการตรวจสอบความพร้อมใช้งานก่อนการใช้งานจริงผ่านการทดสอบความสอดคล้อง
การทดสอบจะดำเนินการเพื่อให้เป็นไปตามมาตรฐานและสามารถทำงานร่วมกันได้ ขึ้นอยู่กับประเภทของเครือข่าย เช่น GSM หรือ CDMA การทดสอบเหล่านี้อาจรวมถึง:
- การทดสอบโปรโตคอล
- ความปลอดภัยและ การทดสอบความปลอดภัย
- การทดสอบซิมการ์ด
- การทดสอบคลื่นความถี่วิทยุ (RF)
- การทดสอบเสียง
- การทดสอบการดูดซึมจำเพาะ
ตัวอย่างการใช้ Case Diagram
แผนภาพกรณีการใช้งานต่อไปนี้แสดงวิธีการดำเนินการทดสอบความสอดคล้องสำหรับอุปกรณ์ที่ใช้งานจริง ระบบมือถือ.
สามารถอธิบายขั้นตอนการทดสอบซิมการ์ดได้เป็นสองขั้นตอน ขั้นตอนแรกคือ การตรวจสอบรหัสผ่าน, แสดงด้านล่าง.
ขั้นที่ 2 คือ กำลังโทรออกซึ่งมีผลลัพธ์สองอย่าง คือ การโทรสำเร็จ และ การโทรล้มเหลว
การทดสอบโปรโตคอลเป็นไปตามรูปแบบเดียวกัน ดังที่กรณีตัวอย่างนี้แสดงให้เห็น
แม่แบบกรณีทดสอบด้านล่างแสดงวิธีการเขียนกรณีทดสอบสำหรับการทดสอบโปรโตคอล
| รหัสทดสอบ | สถานการณ์ทดสอบ | ขั้นตอนการทดสอบ | ข้อมูลการทดสอบ | ผลลัพธ์ที่คาดหวัง | ผลลัพธ์ที่แท้จริง | สถานะ | หมายเหตุ |
| PT001 | โปรโตคอลไม่มีเดดล็อก | เริ่มต้นด้วยกระบวนการสื่อสาร | _ | ควรสร้างการสื่อสารให้ประสบความสำเร็จ | การสื่อสารก่อตั้งขึ้นเรียบร้อยแล้ว | ส่ง | _ |
| PT002 | "Pingคำสั่ง "ทำงานได้อย่างถูกต้องเมื่อหมดเวลา" | เข้าสู่ Ping คำสั่งเป็น 'Ping -w' ในพรอมต์คำสั่ง | Ping 1000 | ควรแสดงข้อความ “Transmit ประสบความสำเร็จ." | ข้อความแสดงให้เห็นว่า “Transmit ประสบความสำเร็จ." | ส่ง | _ |
| PT003 | นับจำนวนคำขอ 'echo' | เข้าสู่ Ping คำสั่งเป็น 'Ping -n' ในพรอมต์คำสั่ง | Ping 4 | ควรเริ่มต้น pingส่งค่า 0.0.0.4 พร้อมข้อมูล 32 ไบต์ และแสดงข้อความ “Transmit ประสบความสำเร็จ." | เริ่ม pingกำลังส่งข้อมูลไปยัง 0.0.0.4 ด้วยข้อมูลขนาด 32 ไบต์ แต่แสดงข้อความว่า “Transmit ล้มเหลว." | ล้มเหลว | ข้อผิดพลาดทางความหมายหรือทางหน้าที่ |
| PT004 | รัฐใดสามารถเข้าถึงได้จากรัฐใดก็ได้ | ออกจากสถานะหนึ่งแล้วกลับไปยังสถานะก่อนหน้าหรือสถานะถัดไป | _ | ควรเปลี่ยนสถานะได้สำเร็จ | เปลี่ยนสถานะได้สำเร็จ | ส่ง | _ |
แม่แบบลักษณะนี้ช่วยสร้างความสม่ำเสมอให้กับกระบวนการทดสอบ ขึ้นอยู่กับประเภทของเครือข่าย อาจมีการกำหนดและดำเนินการทดสอบหลายร้อยกรณีเพื่อยืนยันว่าระบบมือถือทำงานได้ตามข้อกำหนดที่ระบุไว้







