มีใครบ้างที่สามารถกำหนดระดับการทดสอบเหล่านี้ได้อย่างชัดเจนเนื่องจากฉันพบว่ามันยากที่จะแยกความแตกต่างเมื่อทำการทดสอบ TDD หรือหน่วย โปรดหากใครสามารถอธิบายได้อย่างละเอียดว่าจะใช้สิ่งเหล่านี้ได้อย่างไร?
มีใครบ้างที่สามารถกำหนดระดับการทดสอบเหล่านี้ได้อย่างชัดเจนเนื่องจากฉันพบว่ามันยากที่จะแยกความแตกต่างเมื่อทำการทดสอบ TDD หรือหน่วย โปรดหากใครสามารถอธิบายได้อย่างละเอียดว่าจะใช้สิ่งเหล่านี้ได้อย่างไร?
คำตอบ:
สั้น ๆ :
การทดสอบหน่วย - คุณทดสอบหน่วยแต่ละส่วนของรหัส คิดว่าแต่ละไฟล์หรือคลาส
การทดสอบการรวม - เมื่อรวมหลายหน่วยเข้าด้วยกันที่โต้ตอบคุณจะต้องทำการทดสอบการรวมเพื่อให้แน่ใจว่าการรวมหน่วยเหล่านี้เข้าด้วยกันไม่ได้ทำให้เกิดข้อผิดพลาด
การทดสอบการถดถอย - หลังจากรวม (และอาจแก้ไข) คุณควรเรียกใช้การทดสอบหน่วยของคุณอีกครั้ง นี่คือการทดสอบการถดถอยเพื่อให้แน่ใจว่าการเปลี่ยนแปลงเพิ่มเติมไม่ได้ทำลายหน่วยใด ๆ ที่ทดสอบไปแล้ว การทดสอบหน่วยที่คุณทำไปแล้วได้สร้างการทดสอบหน่วยที่สามารถรันซ้ำแล้วซ้ำอีกสำหรับการทดสอบการถดถอย
การทดสอบการยอมรับ - เมื่อผู้ใช้ / ลูกค้า / ธุรกิจได้รับฟังก์ชันพวกเขา (หรือแผนกทดสอบของคุณ) จะทำการทดสอบการยอมรับเพื่อให้แน่ใจว่าฟังก์ชันตรงตามข้อกำหนด
คุณอาจต้องการตรวจสอบการทดสอบกล่องขาวและกล่องดำ นอกจากนี้ยังมีการทดสอบประสิทธิภาพและโหลดและการทดสอบ "'ilities" ที่ต้องพิจารณา
การทดสอบหน่วย: เมื่อล้มเหลวจะบอกคุณว่าส่วนใดของรหัสของคุณที่ต้องแก้ไข
การทดสอบการผสานรวม: เมื่อล้มเหลวจะบอกคุณว่าส่วนต่างๆของแอปพลิเคชันของคุณไม่ทำงานร่วมกันตามที่คาดไว้
การทดสอบการยอมรับ: เมื่อล้มเหลวจะบอกคุณว่าแอปพลิเคชันไม่ได้ทำในสิ่งที่ลูกค้าคาดหวังให้ทำ
การทดสอบการถดถอย: เมื่อล้มเหลวจะบอกคุณว่าแอปพลิเคชันไม่ทำงานเหมือนที่เคยทำอีกต่อไป
นี่คือคำอธิบายง่ายๆสำหรับการทดสอบที่กล่าวถึงแต่ละข้อและเมื่อมีผลบังคับใช้:
การทดสอบ หน่วยการทดสอบหน่วยจะดำเนินการกับหน่วยที่มีอยู่ในตัว (โดยปกติจะเป็นคลาสหรือวิธีการ) และควรดำเนินการเมื่อใดก็ตามที่มีการใช้งานหน่วยหรือการอัปเดตหน่วยเสร็จสิ้น
ซึ่งหมายความว่าจะทำงานเมื่อใดก็ตามที่คุณเขียนคลาส / วิธีการแก้ไขข้อบกพร่องเปลี่ยนฟังก์ชันการทำงาน ...
การทดสอบการบูรณาการการทดสอบ การบูรณาการมีจุดมุ่งหมายเพื่อทดสอบว่าหน่วยต่างๆโต้ตอบกันได้ดีเพียงใด การทดสอบประเภทนี้ควรดำเนินการเมื่อใดก็ตามที่มีการสร้างรูปแบบใหม่ของการสื่อสารระหว่างหน่วยงานหรือลักษณะของการโต้ตอบเปลี่ยนไป
ซึ่งหมายความว่าจะทำงานเมื่อใดก็ตามที่มีการรวมหน่วยที่เขียนล่าสุดเข้ากับส่วนที่เหลือของระบบหรือเมื่อใดก็ตามที่มีการอัปเดตหน่วยที่โต้ตอบกับระบบอื่น ๆ (และทำการทดสอบหน่วยสำเร็จ)
การทดสอบการถดถอย Regression Test จะดำเนินการเมื่อใดก็ตามที่มีการเปลี่ยนแปลงในระบบเพื่อตรวจสอบว่าไม่มีการแนะนำจุดบกพร่องใหม่ ๆ
ซึ่งหมายความว่ามันทำงานหลังจากแพตช์อัปเกรดแก้ไขข้อบกพร่องทั้งหมด การทดสอบการถดถอยถือได้ว่าเป็นกรณีพิเศษของการทดสอบหน่วยรวมและการทดสอบการรวม
การทดสอบการยอมรับการทดสอบ การยอมรับจะดำเนินการเมื่อใดก็ตามที่เกี่ยวข้องเพื่อตรวจสอบว่าระบบย่อย (อาจเป็นทั้งระบบ) ตรงตามข้อกำหนดทั้งหมด
ซึ่งหมายความว่าส่วนใหญ่จะดำเนินการก่อนที่จะเสร็จสิ้นการส่งมอบใหม่หรือการประกาศว่าเสร็จสิ้นงานที่ใหญ่กว่า ดูสิ่งนี้เป็นการตรวจสอบขั้นสุดท้ายเพื่อดูว่าคุณบรรลุเป้าหมายจริงๆก่อนที่จะวิ่งไปหาลูกค้า / หัวหน้าและประกาศชัยชนะ
อย่างน้อยก็เป็นวิธีที่ฉันได้เรียนรู้แม้ว่าฉันแน่ใจว่ามีมุมมองที่ไม่เห็นด้วยอื่น ๆ ไม่ว่าจะด้วยวิธีใดฉันหวังว่าจะช่วยได้
ฉันจะพยายาม:
แบบทดสอบหน่วย:วิธีการเดียวของฉันทำงานถูกต้องหรือไม่? (ไม่มีการอ้างอิงหรือเลียนแบบการอ้างอิง)
การทดสอบการรวม:โมดูลที่พัฒนาแยกกันสองโมดูลของฉันทำงานเป็นหลักเมื่อประกอบเข้าด้วยกันหรือไม่
การทดสอบการถดถอย:ฉันทำอะไรผิดพลาดโดยการเปลี่ยน / เขียนโค้ดใหม่หรือไม่? (การรันการทดสอบหน่วย / การรวมกับทุกคอมมิตเป็นการทดสอบการถดถอย (อัตโนมัติ) ทางเทคนิค) มักใช้ในบริบทของ QA - ด้วยตนเองหรืออัตโนมัติ
การทดสอบการยอมรับ : การทดสอบทำโดยลูกค้าว่าเขา "ยอมรับ" SW ที่ส่งมอบ
ไม่สามารถแสดงความคิดเห็นได้ (ชื่อเสียงต่ำ: - |) ดังนั้น ...
@Andrejs เป็นจุดที่ดีเกี่ยวกับความแตกต่างระหว่างสภาพแวดล้อมที่เกี่ยวข้องกับการทดสอบแต่ละประเภท
โดยทั่วไปการทดสอบหน่วยจะรันบนเครื่องของนักพัฒนา (และอาจเป็นในระหว่างการสร้าง CI) โดยมีการจำลองการอ้างอิงกับทรัพยากร / ระบบอื่น ๆ
การทดสอบการบูรณาการตามความหมายจะต้องมี (ระดับหนึ่ง) ของการพึ่งพา; ทรัพยากรและระบบอื่น ๆ ถูกเรียกเพื่อให้สภาพแวดล้อมเป็นตัวแทนมากกว่า ข้อมูลสำหรับการทดสอบอาจถูกล้อเลียนหรือข้อมูลการผลิตจริงชุดย่อยที่สับสนเล็กน้อย
การทดสอบ UAT / การยอมรับจะต้องแสดงถึงประสบการณ์ในโลกแห่งความเป็นจริงแก่ QA และทีมธุรกิจที่ยอมรับซอฟต์แวร์ ดังนั้นจึงต้องการการบูรณาการเต็มรูปแบบและปริมาณข้อมูลที่เป็นจริงและชุดข้อมูลที่มาสก์ / คลุมเครือเต็มรูปแบบเพื่อมอบประสิทธิภาพที่สมจริงและประสบการณ์ของผู้ใช้ปลายทาง
นอกจากนี้ "ilities" อื่น ๆ ยังต้องการสภาพแวดล้อมให้ใกล้เคียงกับความเป็นจริงมากที่สุดเพื่อจำลองประสบการณ์ในการผลิตเช่นการทดสอบประสิทธิภาพความปลอดภัย ...