การทดสอบการเปลี่ยนสถานะพร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
การทดสอบการเปลี่ยนสถานะ (State Transition Testing) เป็นเทคนิคแบบกล่องดำที่ใช้ตรวจสอบว่าแอปพลิเคชันเปลี่ยนสถานะอย่างไรเมื่อเงื่อนไขอินพุตเปลี่ยนแปลง บทช่วยสอนนี้จะอธิบายส่วนประกอบทั้งสี่ของแผนภาพ ความแตกต่างระหว่างแผนภาพสถานะและตาราง และตัวอย่างการใช้งานตู้เอทีเอ็มและระบบล็อกอินสำหรับผู้ทดสอบ
การทดสอบการเปลี่ยนสถานะคืออะไร
การทดสอบการเปลี่ยนสถานะ การทดสอบแบบกล่องดำ (Black-box testing) คือเทคนิคการทดสอบที่การเปลี่ยนแปลงเงื่อนไขอินพุตจะทำให้เกิดการเปลี่ยนแปลงสถานะหรือการเปลี่ยนแปลงเอาต์พุตในแอปพลิเคชันที่กำลังทดสอบ (Application Under Test: AUT) เทคนิคนี้ช่วยวิเคราะห์พฤติกรรมของแอปพลิเคชันภายใต้เงื่อนไขอินพุตต่างๆ และผู้ทดสอบสามารถป้อนค่าอินพุตทั้งบวกและลบพร้อมทั้งบันทึกพฤติกรรมของระบบได้
วิธีการนี้อิงตามแบบจำลองที่ใช้สร้างระบบและการทดสอบ ระบบใดก็ตามที่ให้ผลลัพธ์ที่แตกต่างกันสำหรับอินพุตเดียวกัน ขึ้นอยู่กับสิ่งที่เกิดขึ้นก่อนหน้านั้น ถือเป็นระบบสถานะจำกัด เทคนิคการทดสอบการเปลี่ยนสถานะมีประโยชน์ในกรณีที่คุณต้องการ... ทดสอบการเปลี่ยนระบบที่แตกต่างกัน.
เมื่อใดควรใช้การทดสอบการเปลี่ยนสถานะ
- เมื่อผู้ทดสอบทำการทดสอบแอปพลิเคชันด้วยชุดค่าอินพุตที่จำกัด
- เมื่อผู้ทดสอบกำลังทดสอบลำดับเหตุการณ์ที่เกิดขึ้นในแอปพลิเคชันที่กำลังทดสอบ (AUT) ซึ่งจะช่วยให้สามารถตรวจสอบพฤติกรรมของแอปพลิเคชันสำหรับลำดับค่าอินพุตได้
- เมื่อระบบที่กำลังทดสอบขึ้นอยู่กับเหตุการณ์หรือค่าจากอดีต
เมื่อใดที่ไม่ควรพึ่งพาการทดสอบการเปลี่ยนผ่านระดับรัฐ
- เมื่อไม่ได้ทำการทดสอบชุดค่าผสมอินพุตตามลำดับ
- เมื่อการทดสอบมุ่งเป้าไปที่ฟังก์ชันการทำงานที่แตกต่างกัน เช่น การทดสอบเชิงสำรวจ
สี่ส่วนของแผนภาพการเปลี่ยนสถานะ
แบบจำลองการเปลี่ยนสถานะประกอบด้วยองค์ประกอบหลักสี่ส่วน ดังที่อธิบายไว้ด้านล่าง
1) รัฐ ที่ซอฟต์แวร์อาจเข้าถึงได้
2) การเปลี่ยนแปลง จากรัฐหนึ่งไปยังอีกรัฐหนึ่ง
3) เหตุการณ์ ซึ่งเป็นตัวกระตุ้นให้เกิดการเปลี่ยนแปลง เช่น การปิดไฟล์หรือการถอนเงิน
4) การดำเนินการ ซึ่งเป็นผลมาจากการเปลี่ยนแปลง เช่น ข้อความแสดงข้อผิดพลาด หรือการได้รับเงินสด
แผนภาพการเปลี่ยนสถานะเทียบกับตารางการเปลี่ยนสถานะ
มีสองวิธีหลักในการแสดงหรือออกแบบการเปลี่ยนสถานะ ได้แก่ แผนภาพการเปลี่ยนสถานะ และตารางการเปลี่ยนสถานะ
| แง่มุม | แผนภาพการเปลี่ยนสถานะ | ตารางการเปลี่ยนสถานะ |
|---|---|---|
| เรียกอีกอย่างว่า | แผนภูมิ/กราฟแสดงสถานะ | ตารางสถานะ |
| การเป็นตัวแทน | Boxตัวอักษร es แทนสถานะ ลูกศรแทนการเปลี่ยนสถานะ | ตารางแสดงสถานะ (แถว) และเหตุการณ์ (คอลัมน์) |
| ดีที่สุดสำหรับการระบุ | การเปลี่ยนผ่านที่ถูกต้อง | การเปลี่ยนผ่านที่ไม่ถูกต้อง |
| แต่ละช่องแสดง | - | สภาวะที่เกิดขึ้นหลังจากเหตุการณ์เกิดขึ้น |
วิธีการเปลี่ยนสถานะทางการเมือง (ตัวอย่าง)
ตัวอย่างที่ 1: การล็อกรหัส PIN ของตู้ ATM
ลองพิจารณาฟังก์ชันของระบบตู้เอทีเอ็มที่หากผู้ใช้ป้อนรหัสผ่านไม่ถูกต้องสามครั้ง บัญชีจะถูกล็อก
ในระบบนี้ หากผู้ใช้ป้อนรหัสผ่านที่ถูกต้องในสามครั้งแรก ผู้ใช้จะเข้าสู่ระบบได้สำเร็จ หากผู้ใช้ป้อนรหัสผ่านที่ไม่ถูกต้องในครั้งแรกหรือครั้งที่สอง ระบบจะขอให้ผู้ใช้ป้อนรหัสผ่านอีกครั้ง และสุดท้าย หากผู้ใช้ป้อนรหัสผ่านที่ไม่ถูกต้องเป็นครั้งที่สาม บัญชีจะถูกบล็อก
แผนภาพการเปลี่ยนสถานะ (ตัวอย่างที่ 1)
ในแผนภาพ เมื่อใดก็ตามที่ผู้ใช้ป้อนรหัส PIN ถูกต้อง ระบบจะเปลี่ยนสถานะเป็น "ได้รับอนุญาตเข้าใช้งาน" หากป้อนรหัสผ่านผิด ระบบจะลองใหม่อีกครั้ง และหากป้อนผิดเป็นครั้งที่สาม ระบบจะเปลี่ยนสถานะเป็น "บัญชีถูกบล็อก"
ตารางการเปลี่ยนสถานะ (ตัวอย่างที่ 1)
| สถานะ | รหัส PIN ที่ถูกต้อง | PIN ไม่ถูกต้อง |
|---|---|---|
| S1) เริ่มต้น | S5 | S2 |
| S2) ความพยายามครั้งที่ 1 | S5 | S3 |
| S3) ความพยายามครั้งที่ 2 | S5 | S4 |
| S4) ครั้งที่ 3 | S5 | S6 |
| S5) ให้สิทธิ์การเข้าถึงแล้ว | - | - |
| S6) บัญชีถูกบล็อก | - | - |
ในตาราง เมื่อผู้ใช้ป้อนรหัส PIN ถูกต้อง สถานะจะเปลี่ยนเป็น S5 (อนุญาตให้เข้าถึงได้) หากผู้ใช้ป้อนรหัสผ่านผิด สถานะจะเปลี่ยนไปยังสถานะถัดไป และหลังจากป้อนผิดครั้งที่สาม สถานะจะเปลี่ยนเป็นบัญชีถูกบล็อก
ตัวอย่างที่ 2: การเข้าสู่ระบบการจองเที่ยวบิน
ในหน้าจอล็อกอินการจองเที่ยวบิน คุณต้องป้อนชื่อตัวแทนและรหัสผ่านที่ถูกต้องเพื่อเข้าใช้งาน ใบสมัครจองเที่ยวบิน.
กราฟการเปลี่ยนสถานะ
แอปพลิเคชันนี้อนุญาตให้ลองป้อนรหัสผ่านได้สามครั้ง หากผู้ใช้ป้อนรหัสผ่านผิดในครั้งที่สี่ ระบบจะปิดแอปพลิเคชันโดยอัตโนมัติ
แผนผังสถานะช่วยให้คุณระบุการเปลี่ยนสถานะที่ถูกต้องที่จะนำไปทดสอบ การทดสอบด้วยรหัสผ่านที่ถูกต้องและไม่ถูกต้องเป็นสิ่งจำเป็น และสำหรับ... สถานการณ์ทดสอบการล็อกอินในครั้งที่ 2, 3 หรือ 4 สามารถทดสอบได้ คุณสามารถใช้ตารางสถานะเพื่อตรวจสอบการเปลี่ยนสถานะระบบที่ไม่ถูกต้องได้
ในตารางสถานะ สถานะที่ถูกต้องทั้งหมดจะแสดงอยู่ทางด้านซ้าย และเหตุการณ์ที่ทำให้เกิดสถานะเหล่านั้นจะแสดงอยู่ด้านบน แต่ละช่องจะแสดงสถานะที่ระบบเปลี่ยนไปเมื่อเกิดเหตุการณ์นั้นขึ้น ตัวอย่างเช่น ในสถานะ S1 หากป้อนรหัสผ่านถูกต้อง ระบบจะเปลี่ยนไปที่ S6 (ได้รับอนุญาตเข้าถึง) หากป้อนรหัสผ่านผิดในครั้งแรก ระบบจะเปลี่ยนไปที่ S3 (ลองครั้งที่ 2) เช่นเดียวกัน คุณสามารถกำหนดสถานะอื่นๆ ได้ทั้งหมด
วิธีการนี้จะเน้นสถานะที่ไม่ถูกต้องสองสถานะ สมมติว่าคุณอยู่ในสถานะ S6 (เข้าสู่ระบบแล้ว) และคุณเปิดหน้าจองเที่ยวบินอีกครั้งและป้อนรหัสผ่านสำหรับเจ้าหน้าที่คนเดียวกัน จำเป็นต้องทดสอบการตอบสนองของระบบในสถานการณ์เช่นนี้
ข้อดีและข้อเสียของเทคนิคการเปลี่ยนสถานะ
| ข้อดี | ข้อเสีย |
|---|---|
| แสดงพฤติกรรมของระบบในรูปแบบภาพหรือตาราง ช่วย...ping ผู้ทดสอบต้องครอบคลุมและเข้าใจระบบอย่างมีประสิทธิภาพ | ไม่สามารถใช้งานได้อย่างน่าเชื่อถือทุกครั้ง เช่น ไม่เหมาะกับระบบที่ไม่จำกัดจำนวนหรือไม่เป็นลำดับ |
| ช่วยให้ผู้ทดสอบตรวจสอบว่าเงื่อนไขทั้งหมดได้รับการครอบคลุมและผลลัพธ์ได้รับการบันทึกไว้ | จำเป็นต้องกำหนดสถานะที่เป็นไปได้ทั้งหมด วิธีนี้ใช้ได้ผลกับระบบขนาดเล็ก แต่จะใช้ไม่ได้ผลกับระบบขนาดใหญ่เนื่องจากจำนวนสถานะเพิ่มขึ้นแบบทวีคูณ |






