คุณรู้จักการทดสอบซอฟต์แวร์ประเภทใด ฉันเคยได้ยินเกี่ยวกับการพัฒนาที่ขับเคลื่อนด้วยการทดสอบการทดสอบหน่วย ฯลฯ แต่ไม่เข้าใจความสำคัญและความแตกต่างของพวกเขา ตัวอย่างเช่นเหตุใดเราจึงใช้การทดสอบการถดถอยหรือการทดสอบการยอมรับ พวกเขาให้ประโยชน์อะไรบ้าง?
คุณรู้จักการทดสอบซอฟต์แวร์ประเภทใด ฉันเคยได้ยินเกี่ยวกับการพัฒนาที่ขับเคลื่อนด้วยการทดสอบการทดสอบหน่วย ฯลฯ แต่ไม่เข้าใจความสำคัญและความแตกต่างของพวกเขา ตัวอย่างเช่นเหตุใดเราจึงใช้การทดสอบการถดถอยหรือการทดสอบการยอมรับ พวกเขาให้ประโยชน์อะไรบ้าง?
คำตอบ:
ประเภทกว้าง ๆ ในใจของฉันจะเป็น:
การทดสอบกล่องดำ คุณไม่ได้เห็นโค้ดและเพิ่งทดสอบสุ่มสี่สุ่มห้าในระดับเดียวกับสิ่งที่อยู่ในแอปพลิเคชันหรือระบบที่ซ่อนอยู่จากคุณ ดังนั้นในกรณีนี้ผู้คนจะไม่ทราบทุกกรณีที่เกิดข้อผิดพลาดและต้องเดาด้วยเงื่อนไขขอบเขตต่าง ๆ ที่อาจจะหรืออาจจะไม่ชัดเจนในการค้นหาทุกกรณี
การทดสอบกล่องสีขาว คุณจะเห็นรหัสและสามารถตรวจสอบได้ว่ามีการใช้เส้นทางรหัสใดเพื่อให้ครอบคลุมขอบเขตรหัสเป็นเมตริกเพื่อให้แน่ใจว่าตรรกะทั้งหมดจะถูกใช้ในระบบ แนวคิดในที่นี้คือการรู้ว่าโค้ดดูเหมือนจะเป็นแนวทางในการทดสอบอย่างไรเพื่อที่จะไม่เป็นเรื่องลึกลับเหมือนการทดสอบกล่องดำ
การทดสอบกล่องสีเทาเป็นลูกผสมของสองรายการก่อนหน้า
เขตแดนมีแนวโน้มที่จะเป็นสิ่งที่เราสามารถเห็นในการทดสอบกล่องสีขาวเนื่องจากมีเงื่อนไขต่าง ๆ ที่จะเห็นในรหัสที่เราเขียนการทดสอบเพื่อตีเช่นถ้าคุณมีโปรแกรมที่ขอหมายเลขและมีคนเข้า X วิธีนี้จะจัดการ ควรจะเห็นบางแห่งในรหัส
การจำแนกประเภททั่วไปของการทดสอบจะเป็น:
การทดสอบหน่วย โดยทั่วไปแล้วสิ่งเหล่านี้เป็นการทดสอบที่เล็กที่สุดที่ทดสอบบางอย่างที่ค่อนข้างเฉพาะเจาะจงเช่นวิธีนี้จัดการกับกรณีขอบเขตนี้หรือไม่? โปรดทราบว่าการฉีดพึ่งพาอาจใช้ที่นี่สำหรับกรณีที่เกี่ยวข้องกับวัตถุจำลองเพื่อลดการพึ่งพาใด ๆ สำหรับการทดสอบ
บูรณาการการทดสอบ เหล่านี้คือการทดสอบที่มีการเชื่อมต่อส่วนประกอบสองสามอย่างและการทดสอบจะทำงานเพื่อให้แน่ใจว่าส่วนประกอบทำงานร่วมกันได้ดี โปรดทราบว่าในขณะที่การทดสอบหน่วยอาจทำงานได้อย่างอิสระนี่คือที่การทดสอบว่าสิ่งต่าง ๆ มารวมกันได้ดีเพียงใดเนื่องจากอาจมีการสื่อสารที่ผิดพลาดระหว่างเลเยอร์ที่ทำให้การทดสอบเหล่านี้มีประโยชน์ในการจับ gotchas ต่างๆ การทดสอบEnd-to-Endนั้นใช้สำหรับการทดสอบการรวมที่ส่วนประกอบทั้งหมดของห่วงโซ่ถูกทดสอบจาก "จุดปลายด้านหนึ่งของแอปพลิเคชันไปยังอีกแบบ" (อะไรก็ตามที่มีความหมาย)
ทดสอบการถดถอย สิ่งเหล่านี้จะเป็นการทดสอบที่ทำในอดีตที่ทำอีกครั้งเพื่อให้แน่ใจว่าสิ่งที่ได้รับการแก้ไขจะคงที่อยู่และข้อผิดพลาดจะไม่ถูกนำไปใช้กับโค้ดอีกครั้ง
ทดสอบการใช้งาน สิ่งเหล่านี้คือการทดสอบที่ทำขึ้นเพื่อดูว่าผู้ใช้ปลายทางสามารถทำงานร่วมกับซอฟต์แวร์เพื่อทำงานต่าง ๆ ได้ดีเพียงใด บางสิ่งอาจเป็นแบบอัตโนมัติเพื่อทำให้บางสิ่งเร็วขึ้นหรือปรับ UI เพื่อให้บางสิ่งง่ายขึ้น
การทดสอบการยอมรับของผู้ใช้ สิ่งเหล่านี้จะเป็นการทดสอบที่ทำโดยผู้ใช้ขั้นปลายเพื่อให้พวกเขาสามารถเห็นมือแรกว่ามีอะไรทำงานได้บ้างและยอมรับว่าซอฟต์แวร์ตอบสนองความต้องการทางธุรกิจที่ร้องขอมาตั้งแต่แรก
การทดสอบตามหน้าที่เป็นการทดสอบทุกประเภทตามข้อกำหนดการใช้งานของซอฟต์แวร์ภายใต้การทดสอบ นี่เป็นการทดสอบกล่องดำเสมอ
การทดสอบประสิทธิภาพ. สิ่งเหล่านี้คือการทดสอบที่ทำขึ้นเพื่อให้แน่ใจว่าระบบสามารถรองรับปริมาณการโหลดที่แน่นอนโดยไม่ทำให้ช้าเกินไป ตัวอย่างเช่นการทดสอบเว็บฟาร์มใหม่ของเซิร์ฟเวอร์สามารถจัดการผู้ใช้ 100 คนที่กดปุ่มไซต์ทั้งหมดในเวลาเดียวกันจะเป็นตัวอย่างของการทดสอบประสิทธิภาพ สิ่งเหล่านี้อาจเรียกว่า "การทดสอบโหลด" หรือ "การทดสอบความเครียด" โดยทั่วไปความคิดที่นี่คือการผลักระบบให้ถึงขีด จำกัด หรือตรวจสอบว่าระบบสามารถจัดการการฉายภาพจากแผนกอื่น เหตุผลสำหรับการทดสอบเหล่านี้คือบ่อยครั้งที่มีการตั้งค่าการกำหนดค่ามากมายเพื่อปรับให้เหมาะสมซึ่งอาจใช้เวลามากกว่าการทำงานเล็กน้อยในการค้นหาปัญหาคอขวดและปัญหาที่อยู่ คอขวดที่นี่อาจเป็นหน่วยความจำ I / O, CPU หรือแบนด์วิดท์เครือข่ายที่ทำให้ระบบไม่ตอบสนองตามที่คาดไว้
ทดสอบขับเคลื่อนการพัฒนาเป็นวิธีการและไม่ได้หมายถึงเฉพาะชนิดของการทดสอบ แต่ที่ทดสอบก่อนที่จะเขียนรหัสเพื่อให้การทดสอบเป็นสิ่งที่ผลักดันการพัฒนามากกว่าพฤติกรรม , โดเมนหรือคุณลักษณะเป็นตัวอย่างอื่น ๆ บางอย่างในแง่ของ กระบวนการ.
การบูรณาการอย่างต่อเนื่องเป็นการฝึกการทดสอบบางอย่างเช่นการทดสอบหน่วยการรวมและการถดถอยอย่างสม่ำเสมอเพื่อที่ว่าหากมีการเปลี่ยนแปลงการทดสอบจะถูกจับได้เร็วที่สุด
ทำการทดสอบการถดถอยเพื่อให้แน่ใจว่าการเปลี่ยนแปลงใหม่ในระบบจะไม่ทำลายฟังก์ชันการทำงานใด ๆ ที่มีอยู่ซึ่งไม่ควรได้รับผลกระทบจากการเปลี่ยนแปลง
การทดสอบการยอมรับมักทำโดยลูกค้า / ลูกค้า / ผู้ใช้ทางธุรกิจมักจะมีระดับสูงกว่าการทดสอบรูปแบบอื่น ๆ และดำเนินการเพื่อให้ผู้ที่ร้องขอการเปลี่ยนแปลงมีความสุขกับพวกเขาและจะช่วยให้คุณสามารถส่งเสริมการเปลี่ยนแปลงใน ระบบการผลิต