การทดสอบมีค่า อย่างน้อยที่สุดพวกเขาบันทึกว่ามีคนคิดว่าพวกเขาควรใช้เวลาในการเขียนพวกเขาดังนั้นพวกเขาน่าจะมีคุณค่ากับใครซักคนหนึ่งครั้ง โชคดีที่พวกเขาจะมีการบันทึกคุณสมบัติและข้อบกพร่องทั้งหมดที่ทีมงานเคยทำ - แม้ว่าพวกเขาอาจจะเป็นเพียงวิธีการที่จะตีหมายเลขการทดสอบโดยพลการบางอย่างโดยไม่ต้องคิดอย่างรอบคอบ จนกว่าคุณจะดูพวกเขาคุณจะไม่ทราบว่าเป็นกรณีใดที่นี่
หากการทดสอบส่วนใหญ่ของคุณผ่านเวลาส่วนใหญ่แล้วเพียงแค่กัดกระสุนและลงทุนเวลาในการหาว่าการทดสอบไม่กี่ครั้งที่ล้มเหลวกำลังพยายามทำอยู่และแก้ไขหรือปรับปรุงพวกเขาเพื่อให้งานจะง่ายขึ้นในครั้งต่อไป ในกรณีดังกล่าวให้ข้ามไปที่ส่วนกำหนดความตั้งใจสำหรับการทดสอบแต่ละส่วนเพื่อรับคำแนะนำเกี่ยวกับการทดสอบที่ล้มเหลวจำนวนเล็กน้อย
ในทางกลับกันคุณอาจต้องเผชิญกับงานสร้างสีแดงในขณะนี้และการทดสอบหลายร้อยหรือหลายพันครั้งที่ยังไม่ผ่านการทดสอบมาเป็นระยะเวลานานและเจนกินส์ไม่ได้เป็นมิตรกับสิ่งแวดล้อมมาเป็นเวลานาน ณ จุดนี้สถานะการสร้าง Jenkins ไม่ได้ผลและตัวบ่งชี้สำคัญของปัญหาการเช็คอินของคุณไม่ทำงานอีกต่อไป คุณต้องแก้ไขสิ่งนี้ แต่ไม่สามารถที่จะหยุดยั้งความก้าวหน้าทั้งหมดในขณะที่คุณทำความเป็นระเบียบในห้องนั่งเล่นของคุณ
เพื่อรักษาสติของคุณในขณะที่ดำเนินการโบราณคดีที่จำเป็นเพื่อกำหนดค่าที่สามารถกู้คืนได้จากการทดสอบที่ล้มเหลวฉันขอแนะนำขั้นตอนต่อไปนี้:
ปิดใช้งานการทดสอบที่ล้มเหลวชั่วคราว
มีหลายวิธีที่คุณสามารถทำได้ขึ้นอยู่กับสภาพแวดล้อมของคุณซึ่งคุณไม่ได้อธิบายอย่างชัดเจนดังนั้นฉันจึงไม่สามารถแนะนำใด ๆ ได้
เฟรมเวิร์กบางตัวสนับสนุนแนวคิดของความล้มเหลวที่คาดไว้ หากคุณทำสิ่งนี้ถือว่ายอดเยี่ยมเพราะคุณจะเห็นการนับถอยหลังของการทดสอบที่เหลืออยู่ในหมวดหมู่นี้และคุณจะได้รับการแจ้งเตือนหากการทดสอบบางรายการเริ่มผ่านไปอย่างไม่คาดคิด
เฟรมเวิร์กบางตัวสนับสนุนกลุ่มการทดสอบและอนุญาตให้คุณบอกฮัดสันให้ใช้การทดสอบบางอย่างเท่านั้นหรือข้ามกลุ่มการทดสอบ ซึ่งหมายความว่าคุณสามารถเรียกใช้กลุ่มการทดสอบด้วยตนเองเป็นครั้งคราวเพื่อดูว่ามีกลุ่มใดกำลังผ่านไป
เฟรมเวิร์กบางตัวอนุญาตให้คุณใส่คำอธิบายประกอบหรือทำเครื่องหมายการทดสอบเดี่ยวเพื่อข้าม มันยากที่จะเรียกใช้พวกเขาเป็นกลุ่มในกรณีนี้ แต่จะหยุดพวกเขาจากการรบกวนคุณ
คุณอาจย้ายการทดสอบไปยังทรีต้นทางซึ่งปกติจะไม่รวมอยู่ในบิลด์
ในสุดโต่งคุณสามารถลบรหัสออกจาก HEAD ของระบบควบคุมเวอร์ชันได้ แต่สิ่งนี้จะทำให้ยากต่อการจดจำเมื่อขั้นตอนที่สามเสร็จสมบูรณ์
เป้าหมายคือการทำให้เจนกินส์ไปสู่กรีนเร็วที่สุดเท่าที่จะเป็นไปได้เพื่อให้คุณสามารถเริ่มเคลื่อนไหวในทิศทางที่ถูกต้องโดยเร็วที่สุด
ทำการทดสอบที่เกี่ยวข้อง
แก้ไขเพื่อเพิ่มการทดสอบใหม่ในขณะที่คุณเพิ่มหรือแก้ไขรหัสและมุ่งมั่นที่จะทำให้การทดสอบผ่านที่ผ่านมาทั้งหมด
การทดสอบอาจล้มเหลวด้วยเหตุผลหลายประการรวมถึงข้อเท็จจริงที่ว่าพวกเขาไม่ได้ทำการทดสอบที่เขียนขึ้นเป็นอย่างดี แต่เมื่อคุณได้รับเขียวเจนกิ้นส์ทำให้มันเป็นสิ่งที่สำคัญจริงๆ
ทำความคุ้นเคยกับการเขียนการทดสอบที่ดีและทำให้เป็นเรื่องใหญ่หากการทดสอบเริ่มต้นล้มเหลว
กำหนดเจตนาสำหรับการทดสอบแต่ละครั้ง
ผ่านการทดสอบคนพิการหนึ่งโดยหนึ่ง เริ่มด้วยโมดูลที่ส่งผลต่อโมดูลที่คุณเปลี่ยนบ่อยที่สุด กำหนดเจตนาของการทดสอบและสาเหตุของความล้มเหลว
มันทดสอบคุณสมบัติที่ถูกลบออกจากฐานรหัสโดยมีวัตถุประสงค์หรือไม่? จากนั้นคุณสามารถลบได้
มันเป็นข้อผิดพลาดที่ไม่มีใครสังเกตเห็นหรือยัง? คืนสถานะการทดสอบและแก้ไขข้อบกพร่อง
มันล้มเหลวหรือไม่เนื่องจากเป็นข้อสันนิษฐานที่ไม่ได้รับการยอมรับ (เช่นสมมติว่าข้อความบนปุ่มเป็นภาษาอังกฤษเสมอ แต่ตอนนี้คุณได้แปลใบสมัครของคุณเป็นหลายภาษา) จากนั้นหาวิธีทำให้การทดสอบมุ่งเน้นไปที่สิ่งเดียวและแยกออกจากการเปลี่ยนแปลงที่ไม่เกี่ยวข้องอย่างดีที่สุดเท่าที่จะทำได้
การทดสอบแผ่ขยายไปทั่วทั้งแอปพลิเคชันและแสดงถึงการทดสอบระบบหรือไม่ จากนั้นลบออกจากชุดการทดสอบ Jenkins หลักของคุณและเพิ่มลงในชุดการถดถอยที่ทำงานน้อยลง
สถาปัตยกรรมของแอพเปลี่ยนไปกว่าการจดจำดังนั้นการทดสอบจึงไม่มีประโยชน์อีกต่อไป? ลบมัน.
มีการเพิ่มการทดสอบเพื่อเพิ่มสถิติการครอบคลุมโค้ดอย่างตั้งใจ แต่จริงๆแล้วไม่มีอะไรมากไปกว่าการยืนยันว่ารหัสรวบรวมได้อย่างถูกต้องและไม่เข้าสู่วงวนไม่สิ้นสุดหรือไม่? มิฉะนั้นการทดสอบก็ยืนยันว่ากรอบการเยาะเย้ยที่คุณเลือกส่งกลับผลลัพธ์ที่คุณเพิ่งบอกไป? ลบมัน.
ด้วยเหตุนี้การทดสอบบางอย่างจะคงอยู่บางการแก้ไขถูกแบ่งออกเป็นหลายชิ้นอิสระชิ้นขนาดกัดและบางส่วนออก ตราบใดที่คุณยังคงมีความคืบหน้ากับข้อกำหนดใหม่ให้จัดสรรเวลาเล็กน้อยเพื่อจัดการกับหนี้ทางเทคนิคเช่นนี้เป็นสิ่งที่ต้องทำ