ในทีมขนาดเล็กมากการทดสอบกล่องดำและกล่องขาวทำโดยคนคนเดียวกันผู้ทดสอบควรทำอะไรก่อน
ในทีมขนาดเล็กมากการทดสอบกล่องดำและกล่องขาวทำโดยคนคนเดียวกันผู้ทดสอบควรทำอะไรก่อน
คำตอบ:
สิ่งที่จะต้องถูกต้องที่สุด
อย่างจริงจังการทดสอบกล่องสีขาว (เช่นการทดสอบภายในของรหัส) ควรจะทำด้วยการทดสอบหน่วยโดยนักพัฒนาที่เขียนรหัส การทดสอบหน่วยจะถูกสร้างขึ้นเมื่อเวลาผ่านไปและเป็นส่วนหนึ่งของกระบวนการสร้างดังนั้นเราจะไม่เสียเวลาของผู้ทดสอบที่ไม่ดีด้วยรหัสที่เรารู้ว่าใช้งานไม่ได้ตามที่ควร การทดสอบหน่วยกลายเป็นสิ่งสำคัญยิ่งสำหรับทีมของคุณที่มีขนาดเล็กลง - โดยเฉพาะอย่างยิ่งเนื่องจากคุณไม่มีกองทัพของผู้ทดสอบเพื่อสลัดปัญหา
การทดสอบแบบกล่องดำ (เช่นการทดสอบผ่านส่วนต่อประสานผู้ใช้ / ระบบ) เป็นสิ่งที่ผู้ทดสอบส่วนใหญ่ทำ
การทดสอบทั้งหมดจะต้องจัดลำดับความสำคัญเกี่ยวกับความสำคัญของฟังก์ชันสำหรับผลิตภัณฑ์สำเร็จรูป หากภารกิจคือการจัดหาเครื่องมือในการทำ X และผลิตภัณฑ์ไม่ได้ทำ X นั่นเป็นปัญหาใหญ่
การทดสอบกล่องดำเพื่อตรวจสอบคุณสมบัติ การทดสอบกล่องสีขาวหากจำเป็นหากสิ่งต่าง ๆ เสียหาย หากการทดสอบกล่องดำทั้งหมดผ่านและความครอบคลุมดีการทดสอบกล่องสีขาวนั้นไม่จำเป็น
กล่องดำ.
ส่วนประกอบของกล่องสีขาวมักจะขึ้นอยู่กับส่วนประกอบของกล่องดำดังนั้นฉันต้องการทดสอบกล่องดำก่อนแล้วจึงย้ายไปที่กล่องสีขาว
ก่อนอื่นคุณต้องทดสอบการคิดสีขาวในฐานะผู้เขียนโค้ด / ผู้พัฒนาเพื่อให้แน่ใจว่าสิ่งต่างๆจะใช้ได้ดี จากนั้นคุณทำการทดสอบกล่องดำโดยปกติจะพยายามคิดราวกับว่าคุณเป็นผู้ใช้โดยไม่ต้องนึกถึงโครงสร้างภายในของโปรแกรม บางครั้งคุณต้องคิดเหมือน coder / นักพัฒนาแม้ว่าคุณจะทำการทดสอบสีดำเพราะคุณอาจจะทดสอบโมดูลภายในที่เขียนโดยคนอื่นและคุณไม่สามารถเข้าถึงรหัส
หากคุณต้องการมีรอบการทดสอบที่ดีคุณควรมีคนอื่นทำทั้งสองอย่าง :
นักพัฒนาที่เน้นการทดสอบกล่องขาวส่วนใหญ่รู้ว่ามีการเปลี่ยนแปลงอะไรบ้างในรหัสเมื่อเร็ว ๆ นี้พื้นที่ใดมีความซับซ้อนมากขึ้น (และมีแนวโน้มว่าจะแตก) ฯลฯ และสามารถมุ่งเน้นความพยายามอย่างเหมาะสมในพื้นที่เหล่านี้
ในทางกลับกันเครื่องทดสอบ QA มุ่งเน้นไปที่การทดสอบกล่องดำสามารถเข้าถึงการทดสอบได้ง่ายขึ้นเหมือนผู้ใช้ หากไม่มีความรู้ภายในของรหัสพวกเขาสามารถใช้แนวทางใหม่และไม่ลำเอียงจากความรู้ว่าส่วนต่าง ๆ ของการแก้ไขนั้นถูกนำไปใช้อย่างไร พวกเขาจะตรวจจับข้อบกพร่องที่ผู้พัฒนาอาจมองข้ามหรือการถดถอยจากการเปลี่ยนแปลงรหัสที่ทำให้ส่วนอื่นของแอปพลิเคชันเสียหายโดยไม่ตั้งใจ
ในการตอบคำถามของคุณควรทำการทดสอบกล่องขาวก่อน แต่คุณต้องให้คนอื่นทำการทดสอบกล่องดำถ้าคุณต้องการให้มันมีประสิทธิภาพ
ฉันต้องการเริ่มต้นด้วยการทดสอบกล่องดำจากนั้นใช้ข้อมูลความครอบคลุมโค้ดหรือดีบักเกอร์เพื่อหาว่าฉันกำลังทำอะไรและวิเคราะห์สิ่งที่เกิดขึ้น
แต่คำตอบที่แท้จริงคือมันขึ้นอยู่กับ ฉันมีแนวโน้มที่จะดำน้ำในรหัสเร็วกว่านี้ (ก่อนหน้านี้) หากฉันทำการทดสอบ API แต่ต่อมาถ้าเป้าหมายของฉันคือดูสถานการณ์ขนาดใหญ่ถึงจุดสิ้นสุด
ฉันจะบอกว่าการทดสอบกล่องดำก่อนเพราะในฐานะผู้สนับสนุนของ TDD การทดสอบจะถูกเขียนก่อนรหัส (หรือกล่อง) อยู่แล้ว :)
การทดสอบกล่องสีขาว (เท่าที่ฉันเข้าใจ) มีประโยชน์มากกว่าในการตั้งค่าการดีบัก
การทดสอบกล่องดำเนื่องจากคุณกำลังเขียนการทดสอบก่อนที่จะมีรหัส ผู้ทดสอบจำเป็นต้องพัฒนาการทดสอบอัตโนมัติที่ใช้เวลานานควบคู่ไปกับการเขียนโค้ดของนักพัฒนาเพื่อให้มีประสิทธิภาพในทีมเล็ก ๆ
หากเขียนโค้ดไว้แล้วฉันขอแนะนำให้คุณใช้เวลาร่างร่างการทดสอบจากมุมมองกล่องดำเพื่อให้แน่ใจว่าคุณได้รับการระดมสมองก่อนที่จะทำให้สมองของคุณยุ่งเหยิงด้วยรหัสจริง อย่างไรก็ตามคุณสามารถสลับไปที่กล่องสีขาวและดูรหัสก่อนที่จะไกลเกินไปพร้อมกับการทดสอบจริงเพื่อให้ได้ความรู้สึกสำหรับพื้นที่เสี่ยงและจัดลำดับความสำคัญของการทดสอบเหล่านั้นที่คุณระดมสมองไว้ก่อนหน้านี้ ดูบางส่วนของรหัสที่ดูซับซ้อนหรือน่าสงสัย)
ทั้ง ฉันพยายามเขียนแบบทดสอบที่ดีโดยใช้BICEP ที่ถูกต้องโดยคำนึงถึงเงื่อนไขขอบเขตที่ถูกต้องไม่ว่าพวกเขาจะนึกถึงอะไร เหล่านั้นเป็นตัวย่อทั้งนำเสนอในทางปฏิบัติหน่วยทดสอบ
เป้าหมายของฉันคือเน้นการเขียนแบบทดสอบที่ดีไม่ใช่สีที่จะเขียนก่อน
ครั้งแรกที่ทำมันทดสอบกล่องสีขาว
การทดสอบกล่องดำครั้งที่สอง
> การทดสอบกล่องดำ
I. ผู้ทดสอบควรตรวจสอบการทำงานของแอพพลิเคชั่นเช่นกล่องข้อความปุ่มตัวเลือกกล่องรายการปุ่มคำสั่ง ... ฯลฯ
ครั้งที่สอง ผู้ทดสอบควรตรวจสอบแอปพลิเคชั่นที่ไม่สามารถใช้งานได้เช่นโลโก้ภาพการสะกดคำ ฯลฯ ..
สาม. ผู้ทดสอบควรตรวจสอบการไหลของใบสมัครทั้งหมด
หมายเหตุ: เพื่อตรวจสอบเงื่อนไขในเชิงบวกและเชิงลบ