การทดสอบแบบไดนามิกคืออะไร? ประเภท เทคนิค และตัวอย่าง
การทดสอบแบบไดนามิก
การทดสอบแบบไดนามิก เป็นวิธีการทดสอบซอฟต์แวร์ที่ใช้ทดสอบพฤติกรรมไดนามิกของโค้ดซอฟต์แวร์ วัตถุประสงค์หลักของการทดสอบแบบไดนามิกคือเพื่อทดสอบพฤติกรรมของซอฟต์แวร์ด้วยตัวแปรไดนามิกหรือตัวแปรที่ไม่คงที่ และค้นหาจุดอ่อนในสภาพแวดล้อมรันไทม์ของซอฟต์แวร์ จะต้องดำเนินการโค้ดเพื่อทดสอบพฤติกรรมไดนามิก
เราทุกคนรู้ดีว่าการทดสอบคือการตรวจสอบและยืนยัน และการทดสอบจะเสร็จสมบูรณ์ต้องใช้เวลา 2 Vs จาก 2 Vs การตรวจสอบเรียกว่าการทดสอบแบบคงที่ และ "V" อื่นๆ การตรวจสอบเรียกว่าการทดสอบแบบไดนามิก
ตัวอย่างการทดสอบแบบไดนามิก
มาทำความเข้าใจวิธีทำ Dynamic Testing ด้วยตัวอย่าง:
สมมติว่าเรากำลังทดสอบหน้าเข้าสู่ระบบโดยมีสองช่องว่า "ชื่อผู้ใช้" และ "รหัสผ่าน" และชื่อผู้ใช้นั้นจำกัดไว้เฉพาะตัวอักษรและตัวเลข
เมื่อผู้ใช้กรอก Username เป็น “Guru99” ระบบจะยอมรับเหมือนเดิม โดยที่เมื่อผู้ใช้เข้าสู่ Guru99@123 แอปพลิเคชันจะแสดงข้อความแสดงข้อผิดพลาด ผลลัพธ์นี้แสดงว่าโค้ดกำลังทำงานแบบไดนามิก ขึ้นอยู่กับการป้อนข้อมูลของผู้ใช้
การทดสอบแบบไดนามิกคือเมื่อคุณทำงานกับระบบจริงโดยให้ข้อมูลอินพุตและเปรียบเทียบลักษณะการทำงานจริงของแอปพลิเคชันกับลักษณะการทำงานที่คาดหวัง กล่าวอีกนัยหนึ่งคือการทำงานกับระบบโดยมีจุดประสงค์เพื่อค้นหาข้อผิดพลาด
จากข้อความข้างต้น เราสามารถพูดหรือสรุปได้ว่าการทดสอบแบบไดนามิกเป็นกระบวนการตรวจสอบแอปพลิเคชันซอฟต์แวร์ในฐานะผู้ใช้ปลายทางภายใต้สภาพแวดล้อมที่แตกต่างกันเพื่อสร้างซอฟต์แวร์ที่เหมาะสม
การทดสอบแบบไดนามิกทำอะไร?
จุดมุ่งหมายหลักของการทดสอบแบบไดนามิกคือเพื่อให้แน่ใจว่าซอฟต์แวร์ทำงานอย่างถูกต้องระหว่างและหลังการติดตั้งซอฟต์แวร์ เพื่อให้มั่นใจว่าแอปพลิเคชันมีความเสถียรโดยไม่มีข้อบกพร่องที่สำคัญใดๆ (คำกล่าวนี้จัดทำขึ้นเนื่องจากไม่มีซอฟต์แวร์ใดปราศจากข้อผิดพลาด การทดสอบเท่านั้นที่สามารถแสดงข้อบกพร่องและ ไม่ขาด)
วัตถุประสงค์หลักของการทดสอบแบบไดนามิกคือเพื่อให้มั่นใจว่ามีความสอดคล้องกับซอฟต์แวร์ มาพูดคุยเรื่องนี้ด้วยตัวอย่าง
ในแอปพลิเคชันธนาคาร เราจะพบหน้าจอต่างๆ เช่น แผนกบัญชีของฉัน การโอนเงิน Bill การชำระเงิน ฯลฯ หน้าจอทั้งหมดนี้มีช่องจำนวนเงินที่ยอมรับอักขระบางตัวได้
สมมติว่าฟิลด์บัญชีของฉันแสดงจำนวนเงินเป็น 25,000 และการโอนเงินเป็น $25,000 รวมถึง Bill หน้าจอการจ่ายเงินเป็น $25000 แม้ว่าจำนวนเงินจะเท่ากัน แต่การแสดงจำนวนเงินไม่เหมือนกัน ทำให้ซอฟต์แวร์ไม่สม่ำเสมอ
ความสม่ำเสมอไม่ได้จำกัดอยู่ที่ฟังก์ชันการทำงานเท่านั้น แต่ยังหมายถึงมาตรฐานที่แตกต่างกัน เช่น ประสิทธิภาพ การใช้งาน ความเข้ากันได้ ฯลฯ ดังนั้นจึงเป็นเรื่องสำคัญมากที่ต้องทำการทดสอบแบบไดนามิก
ประเภทของการทดสอบแบบไดนามิก
การทดสอบแบบไดนามิกแบ่งออกเป็นสองประเภท
- สีขาว Box การทดสอบ
- Black Box การทดสอบ
การแสดงรูปภาพด้านล่างนี้ทำให้เรามีแนวคิดเกี่ยวกับประเภทของการทดสอบแบบไดนามิก ระดับของการทดสอบ ฯลฯ
เราจะมาพูดคุยกันสั้นๆ เกี่ยวกับการทดสอบแต่ละประเภทและวัตถุประสงค์ของการทดสอบ
สีขาว Box การทดสอบ - สีขาว Box การทดสอบ เป็นวิธีการทดสอบซอฟต์แวร์ที่ผู้ทดสอบทราบโครงสร้าง/การออกแบบภายใน จุดมุ่งหมายหลักของไวท์ Box การทดสอบคือการตรวจสอบว่าระบบทำงานอย่างไรตามโค้ด ดำเนินการโดยนักพัฒนาหรือไวท์เป็นหลัก Box ผู้ทดสอบที่มีความรู้ด้านการเขียนโปรแกรม
Black Box การทดสอบ - Black Box การทดสอบ เป็นวิธีการทดสอบซึ่งมีโครงสร้าง/รหัส/การออกแบบภายใน ไม่ ผู้ทดสอบรู้จัก จุดประสงค์หลักของการทดสอบนี้เพื่อตรวจสอบการทำงานของระบบภายใต้การทดสอบและการทดสอบประเภทนี้จำเป็นต้องดำเนินการชุดการทดสอบที่สมบูรณ์และดำเนินการโดยผู้ทดสอบเป็นหลัก และไม่จำเป็นต้องมีความรู้ด้านการเขียนโปรแกรมใดๆ
เหตุการณ์ กล่องดำ (Black Box) การทดสอบแบ่งออกเป็นสองประเภทอีกครั้ง
พวกเขาเป็น
- การทดสอบสมรรถนะ
- การทดสอบแบบไม่ใช้งาน
การทดสอบการทำงาน:
การทดสอบการทำงานจะดำเนินการเพื่อตรวจสอบว่าคุณสมบัติทั้งหมดที่พัฒนาขึ้นนั้นเป็นไปตามข้อกำหนดการใช้งาน และดำเนินการโดยการดำเนินการกรณีทดสอบการทำงานที่เขียนโดยทีมงาน QA ในขั้นตอนการทดสอบการทำงาน ระบบจะถูกทดสอบโดยการป้อนข้อมูล ตรวจสอบผลลัพธ์ และ เปรียบเทียบผลลัพธ์จริงกับผลลัพธ์ที่คาดหวัง
การทดสอบการทำงานมีระดับต่างๆ กัน ซึ่งระดับที่สำคัญที่สุดคือ
- การทดสอบหน่วย – โดยทั่วไป Unit จะเป็นโค้ดชิ้นเล็กๆ ที่สามารถทดสอบได้ การทดสอบหน่วย ดำเนินการในแต่ละหน่วยของซอฟต์แวร์และดำเนินการโดยนักพัฒนา
- การทดสอบการผสานรวม - การทดสอบการผสานรวม คือการทดสอบที่ดำเนินการหลังการทดสอบหน่วยและดำเนินการโดยการรวมหน่วยทั้งหมดที่สามารถทดสอบได้และดำเนินการโดยนักพัฒนาหรือผู้ทดสอบ
- การทดสอบระบบ - การทดสอบระบบ เป็นการดำเนินการเพื่อให้แน่ใจว่าระบบทำงานได้ตามความต้องการหรือไม่ และโดยทั่วไปจะดำเนินการเมื่อระบบที่สมบูรณ์พร้อม โดยผู้ทดสอบจะดำเนินการเมื่อมีการเผยแพร่ Build หรือ Code ให้กับทีมงาน QA
- การทดสอบการยอมรับ – การทดสอบการยอมรับจะดำเนินการเพื่อตรวจสอบว่าระบบเป็นไปตามข้อกำหนดทางธุรกิจและพร้อมใช้งานหรือพร้อมสำหรับการปรับใช้ และโดยทั่วไปแล้วผู้ใช้ปลายทางจะเป็นผู้ดำเนินการ
การทดสอบแบบไม่ใช้งาน: การทดสอบ Non-Functional เป็นเทคนิคการทดสอบที่ไม่ได้มุ่งเน้นไปที่ลักษณะการทำงานและมุ่งเน้นไปที่คุณลักษณะที่ไม่สามารถทำงานได้ของระบบเป็นหลัก เช่น หน่วยความจำรั่ว ประสิทธิภาพ หรือความทนทานของระบบ การทดสอบแบบไม่ใช้งานจะดำเนินการในทุกระดับการทดสอบ
มีเทคนิคการทดสอบที่ไม่ใช้งานอยู่มากมายซึ่งสิ่งที่สำคัญที่สุดได้แก่
- การทดสอบประสิทธิภาพ - การทดสอบประสิทธิภาพ ดำเนินการตรวจสอบว่าเวลาตอบสนองของระบบเป็นปกติหรือไม่ตามข้อกำหนดภายใต้โหลดเครือข่ายที่ต้องการ
- การทดสอบการกู้คืน – การทดสอบการกู้คืนเป็นวิธีการตรวจสอบว่าระบบสามารถกู้คืนจากการขัดข้องและความล้มเหลวของฮาร์ดแวร์ได้ดีเพียงใด
- การทดสอบความเข้ากันได้ – ทำการทดสอบความเข้ากันได้เพื่อตรวจสอบว่าระบบทำงานอย่างไรในสภาพแวดล้อมที่แตกต่างกัน
- การทดสอบความปลอดภัย - การทดสอบความปลอดภัย ดำเนินการเพื่อตรวจสอบความแข็งแกร่งของแอปพลิเคชัน เช่น เพื่อให้แน่ใจว่ามีเพียงผู้ใช้/บทบาทที่ได้รับอนุญาตเท่านั้นที่เข้าถึงระบบ
- การทดสอบการใช้งาน - การทดสอบการใช้งาน เป็นวิธีการตรวจสอบการใช้งานระบบโดยผู้ใช้ปลายทาง เพื่อตรวจสอบความสะดวกสบายของผู้ใช้กับระบบ
เทคนิคการทดสอบแบบไดนามิก
เทคนิคการทดสอบแบบไดนามิก in เอส.ที.แอล ประกอบด้วยงานต่างๆ เช่น การวิเคราะห์ข้อกำหนดสำหรับการทดสอบ การวางแผนการทดสอบ การออกแบบและการใช้งานกรณีทดสอบ การตั้งค่าสภาพแวดล้อมการทดสอบ การดำเนินการกรณีทดสอบ การรายงานจุดบกพร่อง และสุดท้ายคือการปิดการทดสอบ งานทั้งหมดในเทคนิคการทดสอบแบบไดนามิกจะขึ้นอยู่กับความสำเร็จของงานก่อนหน้าในกระบวนการทดสอบ
ใน STLC เราสามารถพูดได้ว่ากระบวนการทดสอบแบบไดนามิกที่แท้จริงเริ่มต้นจากการออกแบบกรณีทดสอบ มาหารือเกี่ยวกับกิจกรรมแต่ละกิจกรรมโดยละเอียดกัน
ก่อนที่จะเข้าสู่กระบวนการ เรามาพูดคุยกันถึงกลยุทธ์ที่ต้องปฏิบัติตามสำหรับการทดสอบแบบไดนามิก
กลยุทธ์การทดสอบควรเน้นไปที่ทรัพยากรที่มีอยู่และกรอบเวลาเป็นหลัก ขึ้นอยู่กับปัจจัยเหล่านี้ วัตถุประสงค์ของการทดสอบ ขอบเขตของการทดสอบ ขั้นตอนหรือรอบของการทดสอบ ประเภทของสภาพแวดล้อม ข้อสันนิษฐานหรือความท้าทายที่อาจเผชิญ ความเสี่ยง ฯลฯ
เมื่อกำหนดกลยุทธ์และได้รับการยอมรับจากฝ่ายบริหารแล้ว การออกแบบกรณีทดสอบกระบวนการจริงจะเริ่มต้นขึ้น
การออกแบบการทดสอบและการใช้งานคืออะไร
ในระยะนี้เราจะระบุ
- คุณสมบัติที่จะทดสอบ
- สืบทอดเงื่อนไขการทดสอบ
- รับรายการความคุ้มครอง
- รับกรณีการทดสอบ
ทดสอบการตั้งค่าสภาพแวดล้อม
เราต้องแน่ใจว่าสภาพแวดล้อมการทดสอบควรคล้ายกับสภาพแวดล้อมการผลิตเสมอ ในขั้นตอนนี้ เราต้องติดตั้งการสร้างและจัดการเครื่องทดสอบ
ทดสอบการทำงาน
ในระหว่างขั้นตอนนี้ กรณีทดสอบจะถูกดำเนินการจริง
บันทึกรายงานข้อผิดพลาดแล้ว
ขึ้นอยู่กับการดำเนินการ หากผลลัพธ์ที่คาดหวังและผลลัพธ์จริงไม่เหมือนกัน กรณีการทดสอบจะต้องถูกทำเครื่องหมายว่าล้มเหลว และควรบันทึกจุดบกพร่อง
ข้อดีของการทดสอบแบบไดนามิก
- การทดสอบแบบไดนามิกสามารถเปิดเผยข้อบกพร่องที่เปิดเผยซึ่งถือว่ายากหรือซับซ้อนเกินไป และไม่สามารถครอบคลุมได้ผ่านการวิเคราะห์แบบคงที่
- ในการทดสอบแบบไดนามิก เราดำเนินการซอฟต์แวร์ตั้งแต่ต้นจนจบ เพื่อให้มั่นใจว่าซอฟต์แวร์ปราศจากข้อผิดพลาด ซึ่งจะช่วยเพิ่มคุณภาพของผลิตภัณฑ์และโครงการ
- การทดสอบแบบไดนามิกกลายเป็นเครื่องมือสำคัญในการตรวจจับภัยคุกคามด้านความปลอดภัย
ข้อเสียของการทดสอบแบบไดนามิก
- การทดสอบแบบไดนามิกใช้เวลานานเนื่องจากดำเนินการแอปพลิเคชัน/ซอฟต์แวร์หรือโค้ดที่ต้องใช้ทรัพยากรจำนวนมาก
- การทดสอบแบบไดนามิกจะเพิ่มต้นทุนของโครงการ/ผลิตภัณฑ์ เนื่องจากไม่ได้เริ่มในช่วงต้นของวงจรชีวิตซอฟต์แวร์ ดังนั้น ปัญหาใดๆ ที่ได้รับการแก้ไขในระยะหลังอาจส่งผลให้ต้นทุนเพิ่มขึ้นได้
สรุป
In วิศวกรรมซอฟต์แวร์, การตรวจสอบและการตรวจสอบความถูกต้องเป็นสองมาตรการที่ใช้ในการตรวจสอบว่าผลิตภัณฑ์ซอฟต์แวร์ตรงตามข้อกำหนดข้อกำหนด การทดสอบแบบคงที่เกี่ยวข้องกับการตรวจสอบ ในขณะที่การทดสอบแบบไดนามิกเกี่ยวข้องกับการตรวจสอบ ทั้งสองอย่างนี้ช่วยกันส่งมอบซอฟต์แวร์คุณภาพที่คุ้มต้นทุน