จะทำการทดสอบที่ล้มเหลวได้ที่ไหน


14

ฉันเพิ่งเปลี่ยนการตั้งค่าสาขาในที่เก็บ GitHub ของฉันดังนั้นสาขา [ถัดไป] ของฉันต้องผ่านการสร้าง CI ผ่านคำขอดึง

การสนทนาตามด้วยสมาชิกในทีมจำนวนหนึ่งเกี่ยวกับการทดสอบที่ล้มเหลว

เพื่อบริบทของ ...

ที่เก็บมีสาขา [master] ที่มีการประชาสัมพันธ์เพียงอย่างเดียวเมื่อมีการเปิดตัวดังนั้น [master] มีรหัสวันที่ออกล่าสุดโดยไม่คำนึงว่าสาขาใหญ่ผู้เยาว์โปรแกรมแก้ไขด่วนเบต้าหรือ alpha / รุ่นก่อนวางจำหน่าย

สาขา [ถัดไป] เป็นสาขา "ค่าเริ่มต้น" โดยที่เราต้องการเก็บรหัส "พร้อมใช้" ในทางเทคนิคสาขานั้นสามารถประชาสัมพันธ์ให้เป็น [master] ได้ตลอดเวลาและได้รับการปล่อยตัว

ส้อมแต่ละคนมีกิ่ง dev ของตัวเองและผู้สนับสนุน PR ถึง [ถัดไป]

เมื่อฉันตรวจทาน PR ที่ไม่สำคัญฉันจะรวมสาขา dev ของผู้มีส่วนร่วมในสาขา "review" ของฉันและถ้าฉันเห็นสิ่งที่ฉันสามารถแก้ไขได้อย่างรวดเร็วฉันจะยอมรับ / ผลักดันการเปลี่ยนแปลงและการทดสอบใหม่ (บางครั้งล้มเหลว) และ PR กลับไปที่สาขานักพัฒนาของผู้มีส่วนร่วม; เมื่อพวกเขารวมการเปลี่ยนแปลงของฉันทำการทดสอบความล้มเหลวใหม่ผ่านแล้วผลัก PR ของพวกเขาประสานและจากนั้นฉันจะรวมการประชาสัมพันธ์เป็น [ถัดไป]

แต่คำถามนี้ไม่เกี่ยวกับการผ่านการทดสอบก็เกี่ยวกับความล้มเหลวในคน


ความล้มเหลวในการทดสอบเอกสารสิ่งที่ต้องแก้ไข

ข้อบกพร่องที่รู้จักควรมีการทดสอบที่เขียนขึ้นเพื่อเราจะได้รู้ว่าสิ่งใดไม่ทำงาน

ในทางเทคนิครายการปัญหา GitHub (กรองสำหรับและ / หรือป้ายกำกับที่ ) ก็ทำเช่นกัน มันเป็นวิธีที่ดีที่จะยังมีพวงของความล้มเหลวในการทดสอบเพื่อข้อบกพร่องเอกสาร?

สร้างความล้มเหลวใน [ถัดไป] จะหมายความว่าเราจะไม่ปล่อยพร้อม ... แต่แล้ว "ถูกปล่อยพร้อม" เป็นบิตเช่น "พร้อม" ที่จะมีเด็ก - คุณไม่เคยค่อนข้างพร้อมสำหรับการนี้และบางสิ่งบางอย่าง (ของตัวแปรสำคัญ) ย่อมจะผิดพลาดไปกับการเปิดตัว


ดังนั้นเราจึงผลักดันการทดสอบผ่านไปที่ [ถัดไป] เท่านั้น จะทดสอบการทดสอบที่ล้มเหลวได้ที่ไหน ฉันหมายถึงนอกกระบวนการประชาสัมพันธ์ / การทบทวน?

ตัวอย่างเช่นผู้ใช้รายงานข้อผิดพลาดใหม่ในรายการปัญหาและฉันต้องการเขียนชุดทดสอบที่ล้มเหลว - เพื่อระบุสิ่งที่ต้องทำและตำแหน่งที่ทำให้ผู้ให้ข้อมูลใหม่รับได้ง่ายขึ้น และในที่สุดการแก้ไข PR

ฉันควรจะผลักดันการทดสอบที่ล้มเหลวเหล่านี้ที่ไหน? หรือเป็นความคิดที่ดีที่จะผลักดันการทดสอบที่ล้มเหลวได้ทุกที่


@PhilipKendall จุดดี! เรายังคงปรับกระบวนการของเรา ฉันไม่ชอบวิธีที่ VS ทดสอบการ "เพิกเฉย" ร่วมกับการทดสอบ "ไม่ลงรอยกัน" - หากการทดสอบระดับล่างล้มเหลวเราไม่ต้องการให้การทดสอบล้มเหลวครึ่งหนึ่ง ; สิ่งนี้ทำให้การทดสอบรายงานความล้มเหลวด้วยเหตุผลที่ถูกต้องและ "ไม่สามารถสรุปได้" เมื่อพวกเขาไม่สามารถทดสอบสิ่งที่พวกเขาเขียน เราไม่มีผู้คนจำนวนมาก (อีกต่อไป) ดังนั้นการเพิกเฉยต่อพวกเขาอาจเป็นตัวเลือก ... แต่แล้วมันเป็นการทดสอบที่ล้มเหลวหรือเปล่าถ้ามันถูกเพิกเฉย
Mathieu Guindon

ทำไมส่วนหนึ่งของกระบวนการตรวจสอบจึงทำให้คุณเขียนรหัสใด ๆ หากคุณเห็นข้อผิดพลาดจากนั้นคุณแสดงความคิดเห็นในการประชาสัมพันธ์และอาจปฏิเสธการประชาสัมพันธ์
James

@ James ดีฉันชอบเขียนรหัส .. นอกจากผู้ร่วมสมทบมากขึ้นฉันทำงาน GitHub และงานประชาสัมพันธ์ (ประชาสัมพันธ์) มากขึ้นและมากขึ้นกว่าการเข้ารหัสจริง!
Mathieu Guindon

คำตอบ:


11

สิ่งที่ฉันทำในสถานการณ์นี้คือการทำเครื่องหมายการทดสอบที่ล้มเหลวว่า "เพิกเฉย" ซึ่งเป็นวิธีที่คุณยังคงมีการทดสอบเพื่อที่คุณจะได้รู้ว่าคุณต้องแก้ไขอะไรในอนาคต แต่คุณจะไม่จบด้วยงานสร้างที่เสียหาย .

หากคุณติดแท็กการทดสอบแต่ละครั้งด้วยการอ้างอิงตัวติดตามปัญหาสำหรับการแก้ไขปัญหาซึ่งจะช่วยให้คุณสามารถผูกสิ่งต่างๆเข้าด้วยกันได้อย่างง่ายดาย


4

การเปิดเผยอย่างสมบูรณ์:ฉันเป็นหนึ่งในผู้เข้าร่วมในการอภิปราย

สาขาหลักของที่เก็บไม่ใช่สาขาหลัก การผสานเข้ากับต้นแบบไม่ได้ให้บริการ"จุดประสงค์ที่แท้จริง"และสาขานั้นไม่ได้ทำสิ่งที่สาขาควรทำ (คือย้าย )
คุณกำลังเหยียดหยามสาขานี้เป็นแท็กถึงรุ่นล่าสุด

แทนที่จะใช้สาขาให้ใช้แท็ก เมื่อคุณต้องการที่จะปล่อยคุณทำตามขั้นตอนที่จำเป็นใน "สาขาที่วางจำหน่าย" เช่นเดียวกับสาขาหัวข้อ จากนั้นคุณรวมเข้าไปใน [ถัดไป] และใส่แท็กบน

บทบาทที่ [ถัดไป] บรรลุคือของสาขาหลัก มีเพียงรหัสการวางจำหน่ายเท่านั้นที่มีอยู่ในนั้น สิ่งใดจะเป็น [พัฒนา] สาขา สาขาการพัฒนามีการทำงานที่เป็นที่จะต้องมีความเสถียร ซึ่งหมายความว่า: ลบ [master], repurpose [ถัดไป] ตามที่คุณทำและสร้างสาขาอื่นสำหรับงาน "ไม่เสถียร"

เนื่องจากเป็นข้อยกเว้นมากกว่ากฎที่จำเป็นต้องมีการทดสอบที่ล้มเหลวซึ่งเตือนถึงข้อบกพร่องที่โดดเด่นจึงไม่ควรมีปัญหามากเกินไปในการสร้างและทำลายสาขาที่ไม่เสถียรเท่าที่จำเป็น


1
การมีรุ่นล่าสุดใน [ต้นแบบ] ทำให้แยกสาขาออกได้ง่ายเพื่อแก้ไขปัญหา จากนั้นโปรแกรมแก้ไขด่วนสามารถประชาสัมพันธ์เข้าไปใน [ถัดไป] และจากนั้นไปที่ทุก ๆ dev dev .. หรือว่าฉันทำอะไรหายไป?
Mathieu Guindon

2
คุณสามารถทำได้git checkout -b HotFix ReleaseTag(นั่นคือถ้าฉันจำได้ว่าสาขาสร้างไวยากรณ์การชำระเงินอย่างถูกต้อง) สิ่งนี้ควรสร้างสาขา HotFix จาก ReleaseTag
Vogel612
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.