การทดสอบซอฟต์แวร์ - ระดับ

มีระดับที่แตกต่างกันในระหว่างขั้นตอนการทดสอบ ในบทนี้มีคำอธิบายสั้น ๆ เกี่ยวกับระดับเหล่านี้

ระดับของการทดสอบรวมถึงวิธีการต่างๆที่สามารถใช้ได้ในขณะที่ทำการทดสอบซอฟต์แวร์ ระดับหลักของการทดสอบซอฟต์แวร์คือ -

  • การทดสอบการทำงาน

  • การทดสอบแบบไม่ใช้งาน

การทดสอบการทำงาน

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

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

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

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

การทดสอบหน่วย

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

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

ข้อ จำกัด ของการทดสอบหน่วย

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

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

การทดสอบการผสานรวม

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

ซีเนียร์ วิธีการทดสอบการรวม
1

Bottom-up integration

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

2

Top-down integration

ในการทดสอบนี้โมดูลระดับสูงสุดจะได้รับการทดสอบก่อนและต่อเนื่องโมดูลระดับล่างจะถูกทดสอบหลังจากนั้น

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

การทดสอบระบบ

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

การทดสอบระบบมีความสำคัญเนื่องจากเหตุผลดังต่อไปนี้ -

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

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

  • แอปพลิเคชันได้รับการทดสอบในสภาพแวดล้อมที่ใกล้เคียงกับสภาพแวดล้อมการใช้งานจริงที่จะนำแอปพลิเคชันไปใช้งาน

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

การทดสอบการถดถอย

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

การทดสอบการถดถอยมีความสำคัญเนื่องจากสาเหตุต่อไปนี้ -

  • ลดช่องว่างในการทดสอบเมื่อต้องทดสอบแอปพลิเคชันที่มีการเปลี่ยนแปลง

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

  • ลดความเสี่ยงเมื่อทำการทดสอบการถดถอยบนแอปพลิเคชัน

  • ความครอบคลุมของการทดสอบจะเพิ่มขึ้นโดยไม่กระทบต่อระยะเวลา

  • เพิ่มความเร็วในการทำตลาดผลิตภัณฑ์

การทดสอบการยอมรับ

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

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

ทีมทดสอบจะลดการทำงานของแอปพลิเคชันในการผลิต นอกจากนี้ยังมีข้อกำหนดทางกฎหมายและสัญญาสำหรับการยอมรับระบบ

การทดสอบอัลฟ่า

การทดสอบนี้เป็นขั้นตอนแรกของการทดสอบและจะดำเนินการระหว่างทีม (ผู้พัฒนาและทีม QA) การทดสอบหน่วยการทดสอบการรวมและการทดสอบระบบเมื่อรวมเข้าด้วยกันเรียกว่าการทดสอบอัลฟา ในช่วงนี้จะมีการทดสอบประเด็นต่อไปนี้ในแอปพลิเคชัน -

  • สะกดผิดพลาด

  • ลิงค์เสีย

  • ทิศทางที่มีเมฆมาก

  • แอปพลิเคชันจะได้รับการทดสอบบนเครื่องที่มีคุณสมบัติต่ำสุดเพื่อทดสอบเวลาในการโหลดและปัญหาเวลาแฝงใด ๆ

การทดสอบเบต้า

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

  • ผู้ใช้จะติดตั้งเรียกใช้แอปพลิเคชันและส่งข้อเสนอแนะไปยังทีมโครงการ

  • ข้อผิดพลาดในการพิมพ์โฟลว์แอปพลิเคชันที่สับสนและถึงขั้นขัดข้อง

  • ทีมงานโครงการสามารถแก้ไขปัญหาได้ก่อนปล่อยซอฟต์แวร์ให้กับผู้ใช้งานจริง

  • ยิ่งคุณแก้ไขปัญหาที่แก้ปัญหาของผู้ใช้จริงได้มากเท่าใดคุณภาพของแอปพลิเคชันของคุณก็จะยิ่งสูงขึ้นเท่านั้น

  • การมีแอปพลิเคชันคุณภาพสูงขึ้นเมื่อคุณเผยแพร่สู่สาธารณะจะเพิ่มความพึงพอใจให้กับลูกค้า

การทดสอบแบบไม่ใช้งาน

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

ประเภทการทดสอบที่ไม่ใช้งานที่สำคัญและใช้กันทั่วไปบางประเภทจะกล่าวถึงด้านล่าง

การทดสอบประสิทธิภาพ

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

  • เครือข่ายล่าช้า

  • การประมวลผลฝั่งไคลเอ็นต์

  • การประมวลผลธุรกรรมฐานข้อมูล

  • โหลดบาลานซ์ระหว่างเซิร์ฟเวอร์

  • การแสดงผลข้อมูล

การทดสอบประสิทธิภาพถือเป็นหนึ่งในประเภทการทดสอบที่สำคัญและจำเป็นในแง่ต่อไปนี้ -

  • ความเร็ว (เช่นเวลาตอบสนองการแสดงข้อมูลและการเข้าถึง)

  • Capacity

  • Stability

  • Scalability

การทดสอบประสิทธิภาพสามารถเป็นได้ทั้งเชิงคุณภาพหรือเชิงปริมาณและสามารถแบ่งออกเป็นประเภทย่อยต่างๆเช่น Load testing และ Stress testing.

โหลดการทดสอบ

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

โดยส่วนใหญ่แล้วการทดสอบโหลดจะดำเนินการโดยใช้เครื่องมืออัตโนมัติเช่น Load Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk Performer, Visual Studio Load Test เป็นต้น

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

การทดสอบความเครียด

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

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

  • การปิดหรือรีสตาร์ทพอร์ตเครือข่ายแบบสุ่ม

  • การเปิดหรือปิดฐานข้อมูล

  • การรันกระบวนการต่างๆที่ใช้ทรัพยากรเช่น CPU หน่วยความจำเซิร์ฟเวอร์เป็นต้น

การทดสอบการใช้งาน

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

จากข้อมูลของ Nielsen ความสามารถในการใช้งานสามารถกำหนดได้จากปัจจัย 5 ประการ ได้แก่ ประสิทธิภาพในการใช้งานความสามารถในการเรียนรู้ความสามารถในการจำข้อผิดพลาด / ความปลอดภัยและความพึงพอใจ ตามที่เขาพูดความสามารถในการใช้งานของผลิตภัณฑ์จะดีและระบบสามารถใช้งานได้หากมีปัจจัยข้างต้น

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

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

นอกเหนือจากคำจำกัดความที่แตกต่างกันของการใช้งานแล้วยังมีมาตรฐานและแบบจำลองคุณภาพและวิธีการบางอย่างที่กำหนดความสามารถในการใช้งานในรูปแบบของคุณลักษณะและคุณลักษณะย่อยเช่น ISO-9126, ISO-9241-11, ISO-13407 และมาตรฐาน IEEE 610.12 เป็นต้น

UI เทียบกับการทดสอบการใช้งาน

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

ในทางกลับกันการทดสอบการใช้งานทำให้มั่นใจได้ว่า GUI ที่ดีและใช้งานง่ายซึ่งสามารถจัดการได้อย่างง่ายดาย การทดสอบ UI ถือได้ว่าเป็นส่วนย่อยของการทดสอบการใช้งาน

การทดสอบความปลอดภัย

การทดสอบความปลอดภัยเกี่ยวข้องกับการทดสอบซอฟต์แวร์เพื่อระบุข้อบกพร่องและช่องว่างจากมุมมองด้านความปลอดภัยและช่องโหว่ ด้านล่างนี้เป็นประเด็นหลักที่การทดสอบความปลอดภัยควรตรวจสอบ -

  • Confidentiality

  • Integrity

  • Authentication

  • Availability

  • Authorization

  • Non-repudiation

  • ซอฟต์แวร์มีความปลอดภัยจากช่องโหว่ที่ทราบและไม่รู้จัก

  • ข้อมูลซอฟต์แวร์มีความปลอดภัย

  • ซอฟต์แวร์เป็นไปตามกฎระเบียบด้านความปลอดภัยทั้งหมด

  • การตรวจสอบอินพุตและการตรวจสอบความถูกต้อง

  • การโจมตีการแทรก SQL

  • ข้อบกพร่องในการฉีด

  • ปัญหาการจัดการเซสชัน

  • การโจมตีด้วยสคริปต์ข้ามไซต์

  • บัฟเฟอร์ล้นช่องโหว่

  • การโจมตีแบบข้ามผ่านไดเรกทอรี

การทดสอบการพกพา

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

  • การถ่ายโอนซอฟต์แวร์ที่ติดตั้งจากคอมพิวเตอร์เครื่องหนึ่งไปยังอีกเครื่องหนึ่ง

  • การสร้างไฟล์ปฏิบัติการ (.exe) เพื่อเรียกใช้ซอฟต์แวร์บนแพลตฟอร์มต่างๆ

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

  • ซอฟต์แวร์ควรได้รับการออกแบบและเข้ารหัสโดยคำนึงถึงความต้องการในการพกพา

  • มีการทดสอบหน่วยกับส่วนประกอบที่เกี่ยวข้อง

  • ทำการทดสอบการผสานรวมแล้ว

  • สร้างสภาพแวดล้อมการทดสอบแล้ว