การทดสอบตามแบบจำลองคืออะไร?

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

การทดสอบแบบจำลอง (Model Based Testing) ตรวจสอบพฤติกรรมการทำงานของซอฟต์แวร์เทียบกับการคาดการณ์ที่ทำโดยแบบจำลองเชิงสัมบูรณ์tracสร้างแบบจำลองของระบบ โดยสร้างกรณีทดสอบโดยอัตโนมัติจากเครื่องสถานะจำกัด แผนภูมิสถานะ หรือสัญลักษณ์ UML แทนที่จะทำด้วยมือ

  • 🧭 แนวคิดหลัก: แบบจำลองจะอธิบายพฤติกรรมที่คาดหวัง และกรณีทดสอบแต่ละกรณีจะถูกสร้างขึ้นจากแบบจำลองนั้น แทนที่จะเขียนขึ้นทีละกรณี
  • 🔀 สองกรอบงาน: การสร้างแบบออฟไลน์จะสร้างชุดคำสั่งก่อนการดำเนินการ ในขณะที่การสร้างแบบออนไลน์จะสร้างขั้นตอนต่างๆ ในระหว่างการทำงานแบบเรียลไทม์
  • 📐 สัญลักษณ์ของแบบจำลอง: เครื่องจักรสถานะจำกัด, แผนผังสถานะ, ตารางการตัดสินใจ, กราฟการไหลของข้อมูลและการไหลของการควบคุม และแผนภาพ UML
  • ⚙️ กระบวนการทำงาน: สร้างแบบจำลอง เลือกเกณฑ์การครอบคลุม และสร้างค่าสัมประสิทธิ์สหสัมพันธ์tracทำการทดสอบ t-test ให้เป็นรูปธรรมในรูปแบบสคริปต์ ดำเนินการ แล้วจึงกำหนดผลลัพธ์
  • 🛠️ เครื่องมือ: GraphWalker, fMBT, Conformiq, MaTeLo, MBTsuite และ Spec Explorer สร้างเส้นทางจากกราฟแบบมีทิศทางหรือแบบจำลองสถานะ
  • 🇧🇷 การแลกเปลี่ยน: ค่าบำรุงรักษาลดลงและความครอบคลุมเพิ่มขึ้น แต่เทคนิคนี้ต้องการทักษะการสร้างแบบจำลองและการลงทุนล่วงหน้าในการเรียนรู้

การทดสอบโดยใช้แบบจำลอง (Model Based Testing) คือการสร้างกรณีทดสอบโดยอัตโนมัติจากแบบจำลองพฤติกรรมของระบบ

การทดสอบตามแบบจำลองคืออะไร?

การทดสอบตามแบบจำลอง การทดสอบแบบจำลอง (Model-Based Testing: PSA) เป็นเทคนิคการทดสอบซอฟต์แวร์ที่ใช้ตรวจสอบพฤติกรรมการทำงานของซอฟต์แวร์ที่กำลังทดสอบเทียบกับผลการคาดการณ์จากแบบจำลอง แบบจำลองคือคำอธิบายพฤติกรรมของระบบ โดยแสดงในรูปของลำดับการป้อนข้อมูล การกระทำ เงื่อนไข ผลลัพธ์ และการไหลของข้อมูลจากอินพุตไปยังเอาต์พุต แบบจำลองที่ใช้งานได้ต้องเข้าใจได้ง่าย นำกลับมาใช้ใหม่ได้ และแบ่งปันได้ และต้องอธิบายระบบที่กำลังทดสอบได้อย่างแม่นยำ

มีแบบจำลองมากมายให้เลือกใช้ และแต่ละแบบจะอธิบายลักษณะการทำงานของระบบในแง่มุมที่แตกต่างกัน ตัวอย่างที่พบได้ทั่วไป ได้แก่:

การทดสอบโดยใช้แบบจำลอง (Model Based Testing) อธิบายถึงพฤติกรรมของระบบเมื่อตอบสนองต่อการกระทำที่กำหนดโดยแบบจำลอง โดยป้อนการกระทำเข้าไป แล้วตรวจสอบว่าระบบตอบสนองตามที่แบบจำลองคาดการณ์ไว้หรือไม่ หากพบความแตกต่างระหว่างสองสิ่งนี้ แสดงว่าเป็นข้อบกพร่องในซอฟต์แวร์หรือข้อผิดพลาดในแบบจำลอง และทั้งสองอย่างล้วนควรค่าแก่การค้นหา

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

ตัวอย่างการทดสอบตามแบบจำลอง

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

ตัวอย่างการทดสอบโดยใช้แบบจำลอง (Model Based Testing) ที่จำลองสถานะและการกระทำของการเขียนบทกวีในโปรแกรม Notepad

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

ประเภทของ MBT

มีเฟรมเวิร์กการทดสอบแบบจำลองอยู่สองประเภท และความแตกต่างระหว่างทั้งสองประเภทนั้นอยู่ที่ช่วงเวลาที่สร้างขั้นตอนการทดสอบ:

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

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

การทดสอบแบบจำลองทำงานอย่างไร

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

  • ขั้นตอนที่ 1: สร้างแบบจำลอง แปลข้อกำหนดหรือรายละเอียดให้เป็นนามธรรมtracแบบจำลองพฤติกรรมที่คาดหวัง โดยกำหนดสถานะ การเปลี่ยนผ่านระหว่างสถานะ และปัจจัยนำเข้าที่กระตุ้นให้เกิดการเปลี่ยนผ่านแต่ละครั้ง
  • ขั้นตอนที่ 2: เลือกเกณฑ์การคัดเลือกการทดสอบ เกณฑ์ต่างๆ จะบอกให้ตัวสร้างหยุดเมื่อใด เกณฑ์ที่ใช้กันทั่วไป ได้แก่ การครอบคลุมทุกสถานะ ซึ่งจะเยี่ยมชมทุกสถานะอย่างน้อยหนึ่งครั้ง การครอบคลุมทุกการเปลี่ยนผ่าน ซึ่งจะทดสอบลูกศรทุกตัวอย่างน้อยหนึ่งครั้ง และการครอบคลุมเส้นทางหรือการไหลของข้อมูลสำหรับการสำรวจที่ลึกยิ่งขึ้น
  • ขั้นตอนที่ 3: สร้างกล้ามเนื้อหน้าท้องtracกรณีทดสอบ t เครื่องมือนี้จะเดินตามแบบจำลองและปล่อยลำดับของค่าสัมประสิทธิ์การหักลบออกมาtracขั้นตอน t ขั้นตอนที่ตรงตามเกณฑ์ที่เลือกไว้ พร้อมทั้งผลลัพธ์ที่คาดหวังในแต่ละขั้นตอน
  • ขั้นตอนที่ 4: ทำให้กล้ามเนื้อหน้าท้องเป็นรูปธรรมtracการทดสอบ t เลเยอร์อะแดปเตอร์จะแมปค่า abs แต่ละค่าtracเพื่อก้าวไปสู่การกระทำที่เป็นรูปธรรมต่อระบบ เช่น การโต้ตอบกับส่วนติดต่อผู้ใช้ (UI) API การโทรหรือข้อความโปรโตคอล แผนที่นี้ping เขียนเพียงครั้งเดียวและนำกลับมาใช้ซ้ำในทุกการทดสอบที่สร้างขึ้น
  • ขั้นตอนที่ 5: ดำเนินการและกำหนดคำตัดสิน การทดสอบที่เป็นรูปธรรมจะดำเนินการกับระบบที่กำลังทดสอบ โดยแต่ละการตอบสนองที่สังเกตได้จะถูกเปรียบเทียบกับการทำนายของแบบจำลอง และจะมีการบันทึกผลว่าผ่านหรือไม่ผ่าน tracย้อนกลับไปยังองค์ประกอบโมเดลที่สร้างมันขึ้นมา

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

รุ่นต่างๆในการทดสอบ

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

เครื่อง จำกัด สถานะ

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

ระบบจะมีสถานะเฉพาะและสถานะปัจจุบัน ซึ่งถูกควบคุมโดยชุดข้อมูลป้อนเข้าที่ผู้ทดสอบป้อนเข้ามา

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

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

แบบจำลองเครื่องสถานะจำกัดที่แสดงสถานะขาออกและขาเข้าของระบบล็อกอินของพนักงาน

แผนภูมิรัฐ

แผนผังสถานะ (Statechart) เป็นส่วนขยายของเครื่องสถานะจำกัด (Finite State Machine) และสามารถใช้กับระบบที่ซับซ้อนและระบบเรียลไทม์ได้ แผนผังสถานะอธิบายพฤติกรรมต่างๆ ของระบบ มีจำนวนสถานะที่แน่นอน และพฤติกรรมของระบบจะถูกวิเคราะห์และแสดงในรูปของเหตุการณ์สำหรับแต่ละสถานะ ส่วนขยายที่สำคัญในทางปฏิบัติคือลำดับชั้น: แผนผังสถานะอนุญาตให้มีสถานะซ้อนกันและสถานะขนานกันได้ ดังนั้นเครื่องที่ต้องใช้สถานะแบบราบหลายสิบสถานะจึงสามารถวาดได้อย่างกะทัดรัด

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

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

แผนผังแสดงสถานะวงจรชีวิตของข้อบกพร่อง โดยแบ่งเป็นสถานะใหม่ แก้ไขแล้ว และเปิดใหม่

ภาษาการสร้างแบบจำลองรวม (UML)

ภาษาการสร้างแบบจำลองรวม (UML) UML เป็นภาษาสร้างแบบจำลองมาตรฐานอเนกประสงค์ UML ประกอบด้วยชุดเทคนิคการเขียนสัญลักษณ์กราฟิกที่ใช้ในการสร้างแบบจำลองภาพที่สามารถอธิบายพฤติกรรมของระบบที่ซับซ้อนมากได้

UML มีสัญลักษณ์เช่น:

  • กิจกรรม
  • นักแสดง
  • กระบวนการทางธุรกิจ
  • ชิ้นส่วน
  • ภาษาโปรแกรม

แผนภาพกิจกรรมและแผนภาพสถานะเครื่องจักรเป็นแผนภาพที่ผู้สร้างแบบทดสอบอ่านบ่อยที่สุด ดังที่แบบจำลอง UML ตัวอย่างด้านล่างแสดงให้เห็น

แผนภาพ UML ถูกใช้เป็นแบบจำลองต้นทางสำหรับการสร้างกรณีทดสอบ

เครื่องมือทดสอบตามแบบจำลอง

แบบจำลองบนกระดาษเพียงอย่างเดียวไม่สามารถสร้างอะไรได้ด้วยตัวเอง จำเป็นต้องมีเครื่องมือสร้าง (generator) เพื่อตรวจสอบแบบจำลองและสร้างเส้นทางการทดสอบ ซึ่งตลาดเครื่องมือนี้แบ่งออกเป็นเครื่องมือสร้างแบบโอเพนซอร์สและแพลตฟอร์มออกแบบการทดสอบเชิงพาณิชย์

  • กราฟวอล์คเกอร์ — เครื่องมือโอเพนซอร์สที่อ่านโมเดลที่มีรูปร่างเป็นกราฟแบบมีทิศทาง และสร้างเส้นทางการทดสอบจากโมเดลเหล่านั้น โดยมีตัวสร้างและเงื่อนไขการหยุดที่เลือกได้
  • เอฟเอ็มบีที — ชุดเครื่องมือทดสอบแบบจำลองโอเพนซอร์สจาก Intel ที่รองรับการสร้างและดำเนินการทดสอบกับแบบจำลองสถานะ
  • คอนฟอร์มิก — ผลิตภัณฑ์เชิงพาณิชย์สำหรับการออกแบบการทดสอบอัตโนมัติ ซึ่งสร้างกรณีทดสอบและสคริปต์จากแบบจำลองพฤติกรรมเชิงกราฟิก
  • MaTeLo และ MBTsuite — แพลตฟอร์มเชิงพาณิชย์ที่มุ่งเน้นแบบจำลองการใช้งานทางสถิติและการสร้างชุดทดสอบลงในเฟรมเวิร์กการทำงานอัตโนมัติที่มีอยู่
  • สเปค เอ็กซ์พลอเรอร์ - Microsoftส่วนขยายการทดสอบแบบจำลองสำหรับ Visual Studio ซึ่งได้รับการอ้างอิงอย่างกว้างขวางในเอกสารเกี่ยวกับการทดสอบโปรโตคอล

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

การทดสอบโดยใช้แบบจำลองเทียบกับการออกแบบการทดสอบแบบดั้งเดิม

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

แง่มุม การทดสอบตามแบบจำลอง การออกแบบการทดสอบแบบดั้งเดิม
แหล่งที่มาของกรณีทดสอบ สร้างขึ้นโดยอัตโนมัติจากแบบจำลองพฤติกรรม เขียนขึ้นโดยผู้ทดสอบแต่ละคนตามข้อกำหนด
ผลกระทบของการเปลี่ยนแปลงข้อกำหนด อัปเดตโมเดล สร้างการทดสอบที่ได้รับผลกระทบขึ้นใหม่ ค้นหาและแก้ไขกรณีทดสอบที่ได้รับผลกระทบแต่ละรายการด้วยตนเอง
คุ้มครอง วัดเทียบกับเกณฑ์ของแบบจำลอง เช่น สถานะทั้งหมด หรือการเปลี่ยนสถานะทั้งหมด วัดเทียบกับข้อกำหนด และขึ้นอยู่กับการตัดสินใจของผู้ทดสอบ
ค่าใช้จ่ายล่วงหน้า ระดับสูง: ทักษะการสร้างแบบจำลอง การตั้งค่าเครื่องมือ และเลเยอร์อะแดปเตอร์ ระดับต่ำ: ผู้ทดสอบสามารถเริ่มเขียนได้ทันที
เหมาะสมที่สุด ระบบที่มีสถานะคงที่ อายุการใช้งานยาวนาน และมีข้อกำหนดที่เสถียร โปรเจกต์ขนาดเล็ก, บทความพิเศษ และงานสำรวจ
โหมดความล้มเหลวหลัก โมเดลที่ไม่ถูกต้องหรือล้าสมัยจะสร้างการทดสอบที่ไม่ถูกต้องโดยไม่แจ้งให้ทราบล่วงหน้า ช่องว่างและข้อมูลซ้ำซ้อนสะสมมากขึ้นในชุดข้อมูลขนาดใหญ่

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

วิวัฒนาการของการทดสอบซอฟต์แวร์ ตั้งแต่การทดสอบด้วยตนเอง ไปจนถึงระบบอัตโนมัติ และการทดสอบโดยใช้แบบจำลอง

ความท้าทายของการทดสอบตามแบบจำลอง

การนำ MBT มาใช้ในองค์กรต้องใช้เงินลงทุนและความพยายามอย่างมาก ต่อไปนี้คือข้อเสียของ MBT ในองค์กรต่างๆ วิศวกรรมซอฟต์แวร์:

  • ผู้ทดสอบจำเป็นต้องมีทักษะการสร้างแบบจำลอง ซึ่งการออกแบบการทดสอบแบบดั้งเดิมไม่ได้ต้องการ
  • การเรียนรู้ขั้นตอนต่างๆ นั้นใช้เวลานาน และโครงการแรกมักจะมีค่าใช้จ่ายมากกว่าผลประโยชน์ที่ประหยัดได้
  • ตัวแบบเองอาจเข้าใจและตรวจสอบได้ยาก โดยเฉพาะอย่างยิ่งเมื่อมันมีขนาดใหญ่ขึ้น
  • แบบจำลองที่เบี่ยงเบนไปจากข้อกำหนดจะสร้างการทดสอบที่ผิดพลาดโดยมั่นใจเกินไป
  • ชั้นอะแดปเตอร์ที่เปลี่ยน ABStracขั้นตอนต่างๆ ในการนำไปปฏิบัติจริงจะต้องเขียนและดูแลรักษาแยกต่างหาก
  • ขนาดของโมเดลจะเติบโตอย่างรวดเร็ว ดังนั้นโมเดลสถานะที่ไม่จำกัดจึงอาจสร้างเส้นทางได้มากกว่าที่ทีมใดทีมหนึ่งจะสามารถดำเนินการได้

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

ข้อดีของการทดสอบโดยใช้แบบจำลอง

เมื่อเปรียบเทียบกับต้นทุนแล้ว ประโยชน์ของ MBT มีดังนี้:

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

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

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

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

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

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

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

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

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

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

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

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