การทดสอบซอฟต์แวร์ หรือการทดสอบซอฟต์แวร์ เรียกอีกอย่างว่าการทดสอบแอปพลิเคชัน
การทดสอบซอฟต์แวร์โดยพื้นฐานแล้วเป็นกระบวนการขนาดใหญ่ที่ประกอบด้วยกระบวนการที่เชื่อมต่อกันหลายกระบวนการ วัตถุประสงค์หลักของการทดสอบซอฟต์แวร์คือการวัดความสมบูรณ์ของซอฟต์แวร์พร้อมกับความสมบูรณ์ในแง่ของข้อกำหนดพื้นฐาน การทดสอบซอฟต์แวร์เกี่ยวข้องกับการตรวจสอบและทดสอบซอฟต์แวร์ผ่านกระบวนการทดสอบต่างๆ วัตถุประสงค์ของกระบวนการเหล่านี้อาจรวมถึง:
การตรวจสอบความสมบูรณ์ของซอฟต์แวร์กับข้อกำหนดด้านการทำงาน/ธุรกิจ
ระบุจุดบกพร่อง/ข้อผิดพลาดทางเทคนิค และตรวจสอบให้แน่ใจว่าซอฟต์แวร์ปราศจากข้อผิดพลาด
การประเมินความสามารถในการใช้งาน ประสิทธิภาพ ความปลอดภัย การแปล ความเข้ากันได้ และการติดตั้ง
ซอฟต์แวร์ที่ผ่านการทดสอบจะต้องผ่านการทดสอบทั้งหมดจึงจะสมบูรณ์หรือเหมาะสมกับการใช้งาน วิธีการทดสอบซอฟต์แวร์ประเภทต่างๆ บางประเภท ได้แก่ การทดสอบกล่องสีขาว การทดสอบกล่องดำ และการทดสอบกล่องสีเทา นอกจากนี้ ซอฟต์แวร์สามารถทดสอบโดยรวม ในส่วนประกอบ/หน่วย หรือภายในระบบที่ใช้งานจริง
การทดสอบกล่องดำเป็นเทคนิคการทดสอบซอฟต์แวร์ที่มุ่งเน้นการวิเคราะห์การทำงานของซอฟต์แวร์ โดยเกี่ยวข้องกับการทำงานภายในของระบบ การทดสอบกล่องดำได้รับการพัฒนาขึ้นเพื่อเป็นวิธีการวิเคราะห์ความต้องการ ข้อมูลจำเพาะ และกลยุทธ์การออกแบบระดับสูงของลูกค้า
เครื่องมือทดสอบ Black Box Testing จะเลือกชุดของการดำเนินการโค้ดและเงื่อนไขอินพุตที่ถูกต้องและไม่ถูกต้อง และตรวจสอบการตอบสนองเอาต์พุตที่ถูกต้อง
การทดสอบกล่องดำเรียกอีกอย่างว่าการทดสอบการทำงานหรือการทดสอบกล่องปิด
เสิร์ชเอ็นจิ้นเป็นตัวอย่างง่ายๆ ของแอปพลิเคชันภายใต้การทดสอบกล่องดำ ผู้ใช้เครื่องมือค้นหาป้อนข้อความลงในแถบค้นหาของเว็บเบราว์เซอร์ จากนั้นเสิร์ชเอ็นจิ้นจะค้นหาและดึงผลลัพธ์ข้อมูลผู้ใช้ (เอาต์พุต)
ประโยชน์ของการทดสอบกล่องดำรวมถึง:
การทดสอบกล่องดำยังมีข้อเสียดังต่อไปนี้:
ระหว่างการทดสอบไวท์บ็อกซ์ โค้ดจะถูกรันด้วยค่าอินพุตที่เลือกไว้ล่วงหน้าเพื่อตรวจสอบความถูกต้องของค่าเอาต์พุตที่เลือกไว้ล่วงหน้า การทดสอบกล่องขาวมักเกี่ยวข้องกับการเขียนโค้ดสตับ (ชิ้นส่วนของโค้ดที่ใช้แทนที่คุณลักษณะเฉพาะ สตับสามารถจำลองพฤติกรรมของโค้ดที่มีอยู่ เช่น ขั้นตอนบนเครื่องระยะไกล) และไดรเวอร์
ประโยชน์ของการทดสอบกล่องขาวประกอบด้วย:
ข้อเสียรวมถึง:
การทดสอบหน่วยเป็นส่วนประกอบของวงจรชีวิตการพัฒนาซอฟต์แวร์ (SDLC) ซึ่งขั้นตอนการทดสอบที่ครอบคลุมนั้นใช้กับส่วนที่เล็กที่สุดของโปรแกรมซอฟต์แวร์สำหรับความเหมาะสมหรือลักษณะการทำงานที่ต้องการ
การทดสอบหน่วยเป็นขั้นตอนการวัดและประเมินผลคุณภาพที่ใช้ในกิจกรรมการพัฒนาซอฟต์แวร์ขององค์กรส่วนใหญ่ โดยทั่วไป การทดสอบหน่วยจะประเมินว่ารหัสซอฟต์แวร์สอดคล้องกับเป้าหมายโดยรวมของซอฟต์แวร์/แอปพลิเคชัน/โปรแกรมได้ดีเพียงใด และความเหมาะสมของรหัสนั้นส่งผลต่อหน่วยย่อยอื่นๆ อย่างไร การทดสอบหน่วยสามารถทำได้ด้วยตนเอง - โดยนักพัฒนาหนึ่งคนขึ้นไป - หรือผ่านโซลูชันซอฟต์แวร์อัตโนมัติ
ระหว่างการทดสอบ แต่ละยูนิตจะถูกแยกออกจากโปรแกรมหลักหรืออินเทอร์เฟซ โดยทั่วไปแล้วการทดสอบหน่วยจะดำเนินการหลังจากการพัฒนาและก่อนการปรับใช้ จึงช่วยอำนวยความสะดวกในการผสานรวมและการตรวจหาปัญหาล่วงหน้า ขนาดหรือขอบเขตของหน่วยจะแตกต่างกันไปขึ้นอยู่กับภาษาการเขียนโปรแกรม แอปพลิเคชันซอฟต์แวร์ และวัตถุประสงค์ในการทดสอบ
การทดสอบการทำงานเป็นกระบวนการทดสอบที่ใช้ภายในการพัฒนาซอฟต์แวร์ ซึ่งซอฟต์แวร์ได้รับการทดสอบเพื่อให้แน่ใจว่าเป็นไปตามข้อกำหนดทั้งหมด เป็นวิธีการตรวจสอบซอฟต์แวร์เพื่อให้แน่ใจว่ามีฟังก์ชันการทำงานที่จำเป็นทั้งหมดที่ระบุไว้ในข้อกำหนดการทำงาน
การทดสอบการทำงานส่วนใหญ่จะใช้เพื่อตรวจสอบว่าชิ้นส่วนของซอฟต์แวร์ให้ผลลัพธ์เดียวกันกับที่ผู้ใช้ปลายทางหรือธุรกิจต้องการ โดยปกติแล้ว การทดสอบการทำงานเกี่ยวข้องกับการประเมินและเปรียบเทียบซอฟต์แวร์แต่ละฟังก์ชันกับข้อกำหนดทางธุรกิจ ซอฟต์แวร์ได้รับการทดสอบโดยป้อนอินพุตที่เกี่ยวข้องเพื่อให้ผลลัพธ์สามารถประเมินเพื่อดูว่าสอดคล้อง เกี่ยวข้อง หรือแตกต่างจากข้อกำหนดพื้นฐานอย่างไร นอกจากนี้ การทดสอบการทำงานยังตรวจสอบความสามารถในการใช้งานของซอฟต์แวร์ เช่น การตรวจสอบให้แน่ใจว่าฟังก์ชันการนำทางทำงานตามที่กำหนด
การทดสอบการถดถอยเป็นประเภทของการทดสอบซอฟต์แวร์ที่ใช้เพื่อระบุว่าปัญหาใหม่เป็นผลมาจากการเปลี่ยนแปลงซอฟต์แวร์หรือไม่
ก่อนใช้การเปลี่ยนแปลง โปรแกรมจะได้รับการทดสอบ หลังจากใช้การเปลี่ยนแปลงแล้ว โปรแกรมจะถูกทดสอบซ้ำในพื้นที่ที่เลือกเพื่อตรวจสอบว่าการเปลี่ยนแปลงนั้นสร้างจุดบกพร่องหรือปัญหาใหม่หรือไม่ หรือการเปลี่ยนแปลงจริงเป็นไปตามวัตถุประสงค์ที่ตั้งใจไว้หรือไม่
การทดสอบการถดถอยเป็นสิ่งจำเป็นสำหรับแอปพลิเคชันซอฟต์แวร์ขนาดใหญ่ เนื่องจากมักเป็นการยากที่จะทราบว่าการเปลี่ยนแปลงส่วนหนึ่งของปัญหาได้สร้างปัญหาใหม่ให้กับส่วนอื่นของแอปพลิเคชันหรือไม่ ตัวอย่างเช่น การเปลี่ยนแปลงแบบฟอร์มการขอสินเชื่อธนาคารอาจส่งผลให้รายงานธุรกรรมรายเดือนล้มเหลว ในกรณีส่วนใหญ่ ปัญหาอาจดูเหมือนไม่เกี่ยวข้องกัน แต่จริงๆ แล้วอาจเป็นสาเหตุของความยุ่งยากใจในหมู่นักพัฒนาแอปพลิเคชัน
สถานการณ์อื่นๆ ที่ต้องมีการทดสอบการถดถอย ได้แก่ การตรวจสอบว่าการเปลี่ยนแปลงบางอย่างบรรลุเป้าหมายที่ตั้งไว้หรือไม่ หรือการทดสอบหาอันตรายใหม่ๆ ที่เกี่ยวข้องกับปัญหาที่ปรากฏขึ้นอีกครั้งหลังจากช่วงเวลาที่ไม่มีปัญหา
การทดสอบการถดถอยสมัยใหม่นั้นได้รับการจัดการเป็นหลักผ่านเครื่องมือทดสอบเชิงพาณิชย์แบบพิเศษที่ถ่ายภาพสแน็ปช็อตของซอฟต์แวร์ที่มีอยู่ซึ่งจะถูกเปรียบเทียบหลังจากใช้การเปลี่ยนแปลงเฉพาะ แทบจะเป็นไปไม่ได้เลยที่ผู้ทดสอบโดยมนุษย์จะทำงานได้อย่างมีประสิทธิภาพเหมือนกับผู้ทดสอบซอฟต์แวร์อัตโนมัติ โดยเฉพาะอย่างยิ่งกับแอปพลิเคชันซอฟต์แวร์ขนาดใหญ่และซับซ้อนภายในสภาพแวดล้อมไอทีขนาดใหญ่ เช่น ธนาคาร โรงพยาบาล บริษัทผู้ผลิต และผู้ค้าปลีกรายใหญ่
การทดสอบภาวะวิกฤตหมายถึงการทดสอบซอฟต์แวร์หรือฮาร์ดแวร์เพื่อตรวจสอบว่าประสิทธิภาพของซอฟต์แวร์นั้นน่าพอใจหรือไม่ภายใต้สภาวะที่รุนแรงและไม่เอื้ออำนวย ซึ่งอาจเกิดขึ้นได้จากปริมาณการใช้งานเครือข่ายที่หนาแน่น การโหลดกระบวนการ การโอเวอร์คล็อก การโอเวอร์คล็อก และความต้องการใช้ทรัพยากรสูงสุด
ระบบส่วนใหญ่ได้รับการพัฒนาภายใต้สภาวะการทำงานปกติ ดังนั้น แม้ว่าเกินขีดจำกัด ข้อผิดพลาดจะเล็กน้อยหากระบบได้รับการทดสอบความเค้นระหว่างการพัฒนา
การทดสอบความเครียดใช้ในบริบทต่อไปนี้:
การทดสอบอัตโนมัติ (ซอฟต์แวร์ทดสอบอัตโนมัติ) เป็นวิธีการทดสอบโค้ดที่ใช้เครื่องมือซอฟต์แวร์พิเศษที่รันการทดสอบโดยอัตโนมัติ จากนั้นจึงเปรียบเทียบผลการทดสอบจริงกับผลลัพธ์ที่คาดไว้
การทดสอบอัตโนมัติมีบทบาทสำคัญในการนำส่งอย่างต่อเนื่อง (CD) การผสานรวมอย่างต่อเนื่อง (CI) DevOps และ DevSecOps ประโยชน์หลักของการทดสอบอัตโนมัติประกอบด้วย:
ในการพัฒนาซอฟต์แวร์ มีประโยชน์อย่างยิ่งที่จะทำการทดสอบอัตโนมัติในระหว่างกระบวนการสร้างเพื่อให้แน่ใจว่าแอปพลิเคชันปราศจากข้อผิดพลาดในการสร้างและทำงานตามที่ตั้งใจไว้
การใช้เวลาในการทำให้การทดสอบซอฟต์แวร์เป็นแบบอัตโนมัติจะช่วยประหยัดเวลาของนักพัฒนาได้ในที่สุด โดยลดความเสี่ยงที่การเปลี่ยนแปลงโค้ดจะทำให้ฟังก์ชันการทำงานที่มีอยู่เสียหาย
การทดสอบเป็นขั้นตอนที่สำคัญมากในกระบวนการพัฒนา ตรวจสอบให้แน่ใจว่าจุดบกพร่องทั้งหมดได้รับการแก้ไขแล้ว และผลิตภัณฑ์ ซอฟต์แวร์ หรือฮาร์ดแวร์ ทำงานได้ตามที่ตั้งใจไว้หรือใกล้เคียงกับประสิทธิภาพเป้าหมายมากที่สุด การทดสอบอัตโนมัติ แทนการทดสอบด้วยตนเอง เป็นสิ่งสำคัญในการส่งมอบซอฟต์แวร์ที่คุ้มค่าคุ้มราคาอย่างสม่ำเสมอ ซึ่งตรงตามความต้องการของผู้ใช้ในเวลาที่เหมาะสมโดยมีข้อบกพร่องน้อยที่สุด
การทดสอบด้วยตนเองยังคงทำในหลาย ๆ ครั้งระหว่างการพัฒนา แต่ส่วนใหญ่จะทำโดยนักพัฒนาหรือวิศวกรฮาร์ดแวร์เอง เพื่อดูว่าการเปลี่ยนแปลงที่พวกเขาทำมีผลตามที่ต้องการหรือไม่
Ercole Palmeri
การพัฒนาทักษะยนต์ปรับผ่านการระบายสีจะช่วยเตรียมเด็กๆ ให้พร้อมสำหรับทักษะที่ซับซ้อนมากขึ้น เช่น การเขียน หากต้องการสี...
ภาคกองทัพเรือเป็นมหาอำนาจทางเศรษฐกิจระดับโลกอย่างแท้จริง ซึ่งได้มุ่งหน้าสู่ตลาดมูลค่า 150 พันล้าน...
เมื่อวันจันทร์ที่แล้ว Financial Times ได้ประกาศข้อตกลงกับ OpenAI FT อนุญาติให้ทำข่าวระดับโลก...
ผู้คนนับล้านชำระค่าบริการสตรีมมิ่ง โดยจ่ายค่าธรรมเนียมการสมัครสมาชิกรายเดือน เป็นความเห็นทั่วไปที่คุณ...