การทดสอบการเปลี่ยนสถานะพร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

การทดสอบการเปลี่ยนสถานะ (State Transition Testing) เป็นเทคนิคแบบกล่องดำที่ใช้ตรวจสอบว่าแอปพลิเคชันเปลี่ยนสถานะอย่างไรเมื่อเงื่อนไขอินพุตเปลี่ยนแปลง บทช่วยสอนนี้จะอธิบายส่วนประกอบทั้งสี่ของแผนภาพ ความแตกต่างระหว่างแผนภาพสถานะและตาราง และตัวอย่างการใช้งานตู้เอทีเอ็มและระบบล็อกอินสำหรับผู้ทดสอบ

  • 🔄 แนวคิดหลัก: เทคนิคนี้ใช้ตรวจสอบพฤติกรรมของระบบเมื่ออินพุตเดียวกันให้ผลลัพธ์ที่แตกต่างกันโดยขึ้นอยู่กับเหตุการณ์ก่อนหน้า (ระบบสถานะจำกัด)
  • 🧩 องค์ประกอบพื้นฐานสี่ประการ: โมเดลทุกแบบสร้างขึ้นจากสถานะ การเปลี่ยนสถานะ เหตุการณ์ และการกระทำ
  • 🗺️ แผนภาพเทียบกับตาราง: แผนภาพแสดงการเปลี่ยนสถานะที่ถูกต้อง ในขณะที่ตารางแสดงการเปลี่ยนสถานะที่ไม่ถูกต้อง
  • 🏧 ตัวอย่างการปฏิบัติ: การล็อกรหัส PIN ของตู้ ATM และการเข้าสู่ระบบการจองเที่ยวบิน แสดงให้เห็นถึงความครอบคลุมที่แท้จริง
  • 🤖 การเปิดใช้งาน AI: เครื่องมือ AI จะสร้างแบบจำลองสถานะโดยอัตโนมัติจากข้อกำหนด และแจ้งเตือนการเปลี่ยนสถานะที่ขาดหายหรือไม่ถูกต้อง

การทดสอบการเปลี่ยนผ่านของรัฐ — รัฐต่างๆ

การทดสอบการเปลี่ยนสถานะคืออะไร

การทดสอบการเปลี่ยนสถานะ การทดสอบแบบกล่องดำ (Black-box testing) คือเทคนิคการทดสอบที่การเปลี่ยนแปลงเงื่อนไขอินพุตจะทำให้เกิดการเปลี่ยนแปลงสถานะหรือการเปลี่ยนแปลงเอาต์พุตในแอปพลิเคชันที่กำลังทดสอบ (Application Under Test: AUT) เทคนิคนี้ช่วยวิเคราะห์พฤติกรรมของแอปพลิเคชันภายใต้เงื่อนไขอินพุตต่างๆ และผู้ทดสอบสามารถป้อนค่าอินพุตทั้งบวกและลบพร้อมทั้งบันทึกพฤติกรรมของระบบได้

วิธีการนี้อิงตามแบบจำลองที่ใช้สร้างระบบและการทดสอบ ระบบใดก็ตามที่ให้ผลลัพธ์ที่แตกต่างกันสำหรับอินพุตเดียวกัน ขึ้นอยู่กับสิ่งที่เกิดขึ้นก่อนหน้านั้น ถือเป็นระบบสถานะจำกัด เทคนิคการทดสอบการเปลี่ยนสถานะมีประโยชน์ในกรณีที่คุณต้องการ... ทดสอบการเปลี่ยนระบบที่แตกต่างกัน.

เมื่อใดควรใช้การทดสอบการเปลี่ยนสถานะ

  • เมื่อผู้ทดสอบทำการทดสอบแอปพลิเคชันด้วยชุดค่าอินพุตที่จำกัด
  • เมื่อผู้ทดสอบกำลังทดสอบลำดับเหตุการณ์ที่เกิดขึ้นในแอปพลิเคชันที่กำลังทดสอบ (AUT) ซึ่งจะช่วยให้สามารถตรวจสอบพฤติกรรมของแอปพลิเคชันสำหรับลำดับค่าอินพุตได้
  • เมื่อระบบที่กำลังทดสอบขึ้นอยู่กับเหตุการณ์หรือค่าจากอดีต

เมื่อใดที่ไม่ควรพึ่งพาการทดสอบการเปลี่ยนผ่านระดับรัฐ

  • เมื่อไม่ได้ทำการทดสอบชุดค่าผสมอินพุตตามลำดับ
  • เมื่อการทดสอบมุ่งเป้าไปที่ฟังก์ชันการทำงานที่แตกต่างกัน เช่น การทดสอบเชิงสำรวจ

สี่ส่วนของแผนภาพการเปลี่ยนสถานะ

แบบจำลองการเปลี่ยนสถานะประกอบด้วยองค์ประกอบหลักสี่ส่วน ดังที่อธิบายไว้ด้านล่าง

1) รัฐ ที่ซอฟต์แวร์อาจเข้าถึงได้

การทดสอบการเปลี่ยนผ่านของรัฐ — รัฐต่างๆ

2) การเปลี่ยนแปลง จากรัฐหนึ่งไปยังอีกรัฐหนึ่ง

การทดสอบการเปลี่ยนสถานะ — การเปลี่ยนผ่าน

3) เหตุการณ์ ซึ่งเป็นตัวกระตุ้นให้เกิดการเปลี่ยนแปลง เช่น การปิดไฟล์หรือการถอนเงิน

การทดสอบการเปลี่ยนผ่านของรัฐ — กิจกรรม

4) การดำเนินการ ซึ่งเป็นผลมาจากการเปลี่ยนแปลง เช่น ข้อความแสดงข้อผิดพลาด หรือการได้รับเงินสด

การทดสอบการเปลี่ยนผ่านของรัฐ — ขั้นตอนการดำเนินการ

แผนภาพการเปลี่ยนสถานะเทียบกับตารางการเปลี่ยนสถานะ

มีสองวิธีหลักในการแสดงหรือออกแบบการเปลี่ยนสถานะ ได้แก่ แผนภาพการเปลี่ยนสถานะ และตารางการเปลี่ยนสถานะ

แง่มุม แผนภาพการเปลี่ยนสถานะ ตารางการเปลี่ยนสถานะ
เรียกอีกอย่างว่า แผนภูมิ/กราฟแสดงสถานะ ตารางสถานะ
การเป็นตัวแทน Boxตัวอักษร es แทนสถานะ ลูกศรแทนการเปลี่ยนสถานะ ตารางแสดงสถานะ (แถว) และเหตุการณ์ (คอลัมน์)
ดีที่สุดสำหรับการระบุ การเปลี่ยนผ่านที่ถูกต้อง การเปลี่ยนผ่านที่ไม่ถูกต้อง
แต่ละช่องแสดง - สภาวะที่เกิดขึ้นหลังจากเหตุการณ์เกิดขึ้น

วิธีการเปลี่ยนสถานะทางการเมือง (ตัวอย่าง)

ตัวอย่างที่ 1: การล็อกรหัส PIN ของตู้ ATM

ลองพิจารณาฟังก์ชันของระบบตู้เอทีเอ็มที่หากผู้ใช้ป้อนรหัสผ่านไม่ถูกต้องสามครั้ง บัญชีจะถูกล็อก

ในระบบนี้ หากผู้ใช้ป้อนรหัสผ่านที่ถูกต้องในสามครั้งแรก ผู้ใช้จะเข้าสู่ระบบได้สำเร็จ หากผู้ใช้ป้อนรหัสผ่านที่ไม่ถูกต้องในครั้งแรกหรือครั้งที่สอง ระบบจะขอให้ผู้ใช้ป้อนรหัสผ่านอีกครั้ง และสุดท้าย หากผู้ใช้ป้อนรหัสผ่านที่ไม่ถูกต้องเป็นครั้งที่สาม บัญชีจะถูกบล็อก

แผนภาพการเปลี่ยนสถานะ (ตัวอย่างที่ 1)

แผนภาพการเปลี่ยนสถานะรหัส PIN ของตู้ ATM

ในแผนภาพ เมื่อใดก็ตามที่ผู้ใช้ป้อนรหัส 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 ผู้ทดสอบต้องครอบคลุมและเข้าใจระบบอย่างมีประสิทธิภาพ ไม่สามารถใช้งานได้อย่างน่าเชื่อถือทุกครั้ง เช่น ไม่เหมาะกับระบบที่ไม่จำกัดจำนวนหรือไม่เป็นลำดับ
ช่วยให้ผู้ทดสอบตรวจสอบว่าเงื่อนไขทั้งหมดได้รับการครอบคลุมและผลลัพธ์ได้รับการบันทึกไว้ จำเป็นต้องกำหนดสถานะที่เป็นไปได้ทั้งหมด วิธีนี้ใช้ได้ผลกับระบบขนาดเล็ก แต่จะใช้ไม่ได้ผลกับระบบขนาดใหญ่เนื่องจากจำนวนสถานะเพิ่มขึ้นแบบทวีคูณ

คำถามที่พบบ่อย

การทดสอบการเปลี่ยนสถานะเป็นเทคนิคแบบกล่องดำที่ตรวจสอบว่าระบบเปลี่ยนสถานะอย่างไรเมื่อเงื่อนไขอินพุตเปลี่ยนแปลง เหมาะสำหรับระบบที่มีสถานะจำกัด ซึ่งอินพุตเดียวกันสามารถสร้างเอาต์พุตที่แตกต่างกันได้ขึ้นอยู่กับเหตุการณ์ก่อนหน้า

ส่วนประกอบทั้งสี่ได้แก่ สถานะ (สภาวะที่ซอฟต์แวร์สามารถอยู่ในได้), การเปลี่ยนสถานะ (การเคลื่อนที่ระหว่างสถานะต่างๆ), เหตุการณ์ (ตัวกระตุ้นที่ทำให้เกิดการเปลี่ยนสถานะ) และการกระทำ (ผลลัพธ์ของการเปลี่ยนสถานะ เช่น ข้อความหรือผลลัพธ์)

แผนภาพการเปลี่ยนสถานะใช้กล่องและลูกศร และเหมาะที่สุดสำหรับการระบุการเปลี่ยนสถานะที่ถูกต้อง ในขณะที่ตารางสถานะแสดงรายการสถานะเทียบกับเหตุการณ์ในรูปแบบตาราง และเหมาะที่สุดสำหรับการระบุการเปลี่ยนสถานะที่ไม่ถูกต้อง

ควรหลีกเลี่ยงการใช้วิธีนี้เมื่อข้อมูลนำเข้าไม่ได้เรียงลำดับ หรือเมื่อทำการทดสอบเชิงสำรวจฟังก์ชันการทำงานที่หลากหลาย นอกจากนี้ยังใช้ไม่ได้ผลกับระบบขนาดใหญ่มาก เนื่องจากจำนวนสถานะจะเพิ่มขึ้นแบบทวีคูณ

การทดสอบความครอบคลุมแบบ 0-switch จะทดสอบการเปลี่ยนสถานะที่ถูกต้องทุกครั้งหนึ่งครั้ง การทดสอบความครอบคลุมแบบ 1-switch จะทดสอบการเปลี่ยนสถานะที่ต่อเนื่องกันทุกคู่ การทดสอบความครอบคลุมแบบ switch ที่สูงขึ้นจะพบข้อบกพร่องที่เกี่ยวข้องกับลำดับได้มากขึ้น แต่ก็ต้องการกรณีทดสอบมากขึ้นเช่นกัน

นี่เป็นเทคนิคแบบกล่องดำ กรณีทดสอบได้มาจากพฤติกรรมภายนอกที่คาดหวังของสถานะและการเปลี่ยนสถานะ โดยไม่จำเป็นต้องมีความรู้เกี่ยวกับซอร์สโค้ดภายในของแอปพลิเคชัน

เครื่องมือ AI อ่านข้อกำหนดและสร้างแบบจำลองสถานะโดยอัตโนมัติ จากนั้นสร้างกรณีทดสอบที่ครอบคลุมเส้นทางที่ถูกต้องและการเปลี่ยนผ่านของขอบ ซึ่งจะช่วยลดความพยายามในการสร้างแบบจำลองด้วยตนเองและปรับปรุงความครอบคลุมของลำดับที่ซับซ้อน

ใช่ AI สามารถวิเคราะห์แบบจำลองสถานะและระบุการเปลี่ยนสถานะที่ขาดหายไป เข้าถึงไม่ได้ หรือไม่ถูกต้อง โดยการเปรียบเทียบกับรูปแบบพฤติกรรมที่คาดหวังping ผู้ทดสอบสามารถตรวจพบช่องโหว่ที่การตรวจสอบตารางด้วยตนเองมักมองข้ามไป

สรุปโพสต์นี้ด้วย: