ภาพรวมการทดสอบซอฟต์แวร์

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

การตรวจสอบซอฟต์แวร์

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

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

การตรวจสอบซอฟต์แวร์

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

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

เป้าหมายของการทดสอบคือ -

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

  • Fault- เมื่อมีข้อผิดพลาดเกิดข้อผิดพลาด ข้อผิดพลาดหรือที่เรียกว่าข้อผิดพลาดเป็นผลมาจากข้อผิดพลาดที่อาจทำให้ระบบล้มเหลว

  • Failure - ความล้มเหลวกล่าวว่าเป็นความไม่สามารถของระบบในการทำงานที่ต้องการ ความล้มเหลวเกิดขึ้นเมื่อมีข้อบกพร่องในระบบ

คู่มือ Vs การทดสอบอัตโนมัติ

การทดสอบสามารถทำได้ด้วยตนเองหรือใช้เครื่องมือทดสอบอัตโนมัติ:

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

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

  • Automatedการทดสอบนี้เป็นขั้นตอนการทดสอบที่ทำโดยใช้เครื่องมือทดสอบอัตโนมัติ ข้อ จำกัด ของการทดสอบด้วยตนเองสามารถเอาชนะได้โดยใช้เครื่องมือทดสอบอัตโนมัติ

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

มีเครื่องมือซอฟต์แวร์และฮาร์ดแวร์ที่ช่วยผู้ทดสอบในการทดสอบโหลดการทดสอบความเครียดการทดสอบการถดถอย

แนวทางการทดสอบ

การทดสอบสามารถทำได้โดยใช้สองวิธี -

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

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

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

การทดสอบกล่องดำ

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

ในวิธีการทดสอบนี้ผู้ทดสอบไม่ทราบการออกแบบและโครงสร้างของโค้ดส่วนวิศวกรทดสอบและผู้ใช้จะทำการทดสอบซอฟต์แวร์นี้

เทคนิคการทดสอบกล่องดำ:

  • Equivalence class- อินพุตแบ่งออกเป็นคลาสที่คล้ายกัน หากองค์ประกอบหนึ่งของคลาสผ่านการทดสอบจะถือว่าคลาสทั้งหมดผ่านการทดสอบ

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

  • Cause-effect graphing- ในทั้งสองวิธีก่อนหน้านี้จะมีการทดสอบค่าอินพุตครั้งละหนึ่งค่าเท่านั้น สาเหตุ (อินพุต) - เอฟเฟกต์ (เอาท์พุต) เป็นเทคนิคการทดสอบที่การรวมกันของค่าอินพุตจะถูกทดสอบอย่างเป็นระบบ

  • Pair-wise Testing- ลักษณะการทำงานของซอฟต์แวร์ขึ้นอยู่กับพารามิเตอร์หลายตัว ในการทดสอบแบบคู่พารามิเตอร์หลายตัวจะถูกทดสอบแบบคู่กันสำหรับค่าที่แตกต่างกัน

  • State-based testing- ระบบเปลี่ยนสถานะในการจัดเตรียมอินพุต ระบบเหล่านี้ได้รับการทดสอบตามสถานะและอินพุต

การทดสอบกล่องขาว

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

ในวิธีการทดสอบนี้ผู้ทดสอบจะทราบการออกแบบและโครงสร้างของโค้ด โปรแกรมเมอร์ของจรรยาบรรณจะทำการทดสอบโค้ดนี้

ด้านล่างนี้เป็นเทคนิคการทดสอบ White-box:

  • Control-flow testing- วัตถุประสงค์ของการทดสอบโฟลว์การควบคุมเพื่อตั้งค่ากรณีทดสอบซึ่งครอบคลุมข้อความและเงื่อนไขสาขาทั้งหมด เงื่อนไขสาขาได้รับการทดสอบว่าเป็นจริงและเท็จเพื่อให้ครอบคลุมข้อความทั้งหมดได้

  • Data-flow testing- เทคนิคการทดสอบนี้เน้นให้ครอบคลุมตัวแปรข้อมูลทั้งหมดที่รวมอยู่ในโปรแกรม จะทดสอบว่าตัวแปรถูกประกาศและกำหนดไว้ที่ใดและมีการใช้หรือเปลี่ยนแปลงตัวแปรที่ใด

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

การทดสอบตัวเองอาจกำหนดไว้ในระดับต่างๆของ SDLC กระบวนการทดสอบทำงานควบคู่ไปกับการพัฒนาซอฟต์แวร์ ก่อนที่จะกระโดดขึ้นไปในขั้นต่อไปจะมีการทดสอบขั้นตอนการตรวจสอบและการตรวจสอบ

ทำการทดสอบแยกกันเพื่อให้แน่ใจว่าไม่มีจุดบกพร่องหรือปัญหาที่ซ่อนอยู่ในซอฟต์แวร์ ซอฟต์แวร์ได้รับการทดสอบในระดับต่างๆ -

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

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

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

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

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

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

  • Functionality testing - ทดสอบการทำงานทั้งหมดของซอฟต์แวร์ตามข้อกำหนด

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

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

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

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

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

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

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

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

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

เอกสารการทดสอบจัดทำขึ้นในแต่ละขั้นตอน -

ก่อนการทดสอบ

การทดสอบเริ่มต้นด้วยการสร้างกรณีทดสอบ เอกสารต่อไปนี้จำเป็นสำหรับการอ้างอิง -

  • SRS document - เอกสารข้อกำหนดการใช้งาน

  • Test Policy document - ข้อมูลนี้จะอธิบายว่าควรทำการทดสอบไปไกลแค่ไหนก่อนที่จะปล่อยผลิตภัณฑ์

  • Test Strategy document - ข้อมูลนี้กล่าวถึงรายละเอียดของทีมทดสอบเมทริกซ์ความรับผิดชอบและสิทธิ / ความรับผิดชอบของผู้จัดการทดสอบและวิศวกรทดสอบ

  • Traceability Matrix document- เป็นเอกสาร SDLC ซึ่งเกี่ยวข้องกับกระบวนการรวบรวมความต้องการ เมื่อข้อกำหนดใหม่มาถึงข้อกำหนดเหล่านี้จะถูกเพิ่มเข้าไปในเมทริกซ์นี้ เมทริกซ์เหล่านี้ช่วยให้ผู้ทดสอบทราบแหล่งที่มาของข้อกำหนด สามารถติดตามไปข้างหน้าและข้างหลังได้

ในขณะที่กำลังทดสอบ

อาจจำเป็นต้องใช้เอกสารต่อไปนี้ขณะเริ่มการทดสอบและกำลังดำเนินการ:

  • Test Case document- เอกสารนี้ประกอบด้วยรายการการทดสอบที่ต้องดำเนินการ ซึ่งรวมถึงแผนการทดสอบหน่วยแผนการทดสอบการบูรณาการแผนการทดสอบระบบและแผนการทดสอบการยอมรับ

  • Test description - เอกสารนี้เป็นคำอธิบายโดยละเอียดเกี่ยวกับกรณีทดสอบและขั้นตอนการดำเนินการทั้งหมด

  • Test case report - เอกสารนี้ประกอบด้วยรายงานกรณีทดสอบอันเป็นผลมาจากการทดสอบ

  • Test logs - เอกสารนี้ประกอบด้วยบันทึกการทดสอบสำหรับรายงานกรณีทดสอบทุกฉบับ

หลังจากการทดสอบ

เอกสารต่อไปนี้อาจสร้างขึ้นหลังจากการทดสอบ:

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

การทดสอบเทียบกับการควบคุมคุณภาพการประกันคุณภาพและการตรวจสอบ

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

  • Software quality assurance- นี่คือวิธีการตรวจสอบกระบวนการพัฒนาซอฟต์แวร์ซึ่งมั่นใจได้ว่ามาตรการทั้งหมดได้รับการดำเนินการตามมาตรฐานขององค์กร การตรวจสอบนี้ทำขึ้นเพื่อให้แน่ใจว่ามีการปฏิบัติตามวิธีการพัฒนาซอฟต์แวร์ที่เหมาะสม

  • Software quality control- เป็นระบบรักษาคุณภาพของผลิตภัณฑ์ซอฟต์แวร์ อาจรวมถึงลักษณะที่ใช้งานได้และไม่ใช้งานได้ของผลิตภัณฑ์ซอฟต์แวร์ซึ่งช่วยเพิ่มความปรารถนาดีขององค์กร ระบบนี้ช่วยให้แน่ใจว่าลูกค้าได้รับผลิตภัณฑ์ที่มีคุณภาพตามความต้องการและผลิตภัณฑ์ที่ได้รับการรับรองว่า 'เหมาะสมกับการใช้งาน'

  • Software audit- เป็นการทบทวนขั้นตอนที่องค์กรใช้ในการพัฒนาซอฟต์แวร์ ทีมผู้ตรวจสอบซึ่งเป็นอิสระจากทีมพัฒนาจะตรวจสอบกระบวนการซอฟต์แวร์ขั้นตอนข้อกำหนดและด้านอื่น ๆ ของ SDLC วัตถุประสงค์ของการตรวจสอบซอฟต์แวร์คือการตรวจสอบซอฟต์แวร์และกระบวนการพัฒนาทั้งที่เป็นไปตามมาตรฐานกฎและข้อบังคับ