การตรวจสอบรหัสล่าช้าหลัง Deliver / Test Cycle


14

ในกระบวนการ Agile ของเราเรามี Sprints 2 สัปดาห์ งานจะถูกส่งเป็นรายวัน (งานสร้างรายวัน) และทีมทดสอบจะทำการทดสอบเสร็จในวันถัดไปหรือในวันเดียวกัน

นอกจากนี้เรายังมีบทวิจารณ์รหัส Dev ซึ่งต้องใช้เวลา (1-2 ชั่วโมง) ดังนั้นจึงมีกำหนด 3 ครั้งต่อสัปดาห์: จันทร์ - ศุกร์ นักพัฒนามารวมกันและแนะนำวิธีปรับปรุง / สร้างรหัสใหม่

ปัญหาของเราคือเมื่อรายการการดำเนินการเกิดขึ้นหลังจากการตรวจสอบโค้ดงานส่วนใหญ่ได้รับการทดสอบแล้ว ผู้ทดสอบไม่ต้องการทดสอบสิ่งที่ผ่านการทดสอบแล้ว พวกเขาไม่สนใจเกี่ยวกับการเปลี่ยนแปลง dev ภายใน

เราเข้าใจผิดเกี่ยวกับกระบวนการเปรียวหรือไม่? การตรวจสอบโค้ดไม่เข้ากันกับรอบการเปิดตัว / ทดสอบรายวันหรือไม่ เราไม่สามารถตรวจสอบโค้ดได้ทุกวันเนื่องจากใช้เวลาของทุกคน


ฉันพบข้อเสนอแนะบางอย่างที่อาจเป็นประโยชน์ - การตรวจสอบโค้ดใน Agile Teams - ตอนที่ II (พบได้จากการค้นหาโดย Google ที่รวดเร็วมาก - คุณอาจจะสามารถค้นหาเพิ่มเติมได้)
Dukeling

1
ผู้ทดสอบของคุณทำงานกับงานที่ "เปิดตัว" หรือไม่? คำจำกัดความของทีม "ปล่อย" ของคุณรวมถึงการตรวจสอบรหัสและการแก้ปัญหารายการการกระทำหรือไม่? หรือการตรวจสอบรหัสเกิดขึ้นนอกความหมายของทีมของคุณเสร็จแล้วหรือไม่
Kent A.

1
ทีมทดสอบของคุณไม่มีชุดการถดถอยอัตโนมัติหรือไม่?
Telastyn

5
คุณจะทำอย่างไร "บทวิจารณ์รหัส"? นี่เป็นกระบวนการที่ใช้เวลานานอย่างเป็นทางการซึ่งผู้ตรวจสอบต้องทำงานผ่านรายการตรวจสอบทั้งหมดของตัวชี้วัดคุณภาพ (ความพยายาม: หลายชั่วโมงคน) หรือไม่? หรือเป็นเพียงสมาชิกในทีมคนอื่น ๆ ที่กำลังดูรหัสและถามคำถามว่ามีอะไรบางอย่างที่ดูเหมือนว่าผิดปกติ (ความพยายาม: 10–30 นาทีสำหรับผู้เขียนโค้ดและผู้ตรวจสอบ)? ทำไมคุณถึงวิจารณ์โค้ด? เพื่อให้มั่นใจในคุณภาพของรหัส? เพื่อจับข้อบกพร่อง? เพื่อเผยแพร่ความรู้เกี่ยวกับระบบระหว่างคนหลายคน? กลไกการตรวจสอบโค้ดของคุณช่วยให้บรรลุเป้าหมายเหล่านี้หรือไม่หรือเป็นเพียงแค่ระบบราชการที่ไม่มีใครต้องการทำ
amon

ฉันชอบคำตอบทั้งหมด แต่ให้ฉันเพิ่มจุดที่ฉันคิดว่าสำคัญ คุณกำลังถามว่าคุณตีความตีความ Agile ผิดหรือไม่ แต่คุณไม่ได้บอกวิธีการใด คุณกำลังติดตามการต่อสู้? สำคัญที่สุด: คุณมีคำจำกัดความของ "เสร็จสิ้น" หรือไม่? ฉันถามเพราะฉันพบว่ามันแปลกมากที่คุณกำลังพิจารณาบางสิ่งที่ "ส่ง" ก่อนที่จะเสร็จสิ้นการทำงานจริง เสียงเหมือนรีวิวรหัสเป็นสิ่งที่ "พิเศษ" ที่คุณทำเพราะ
Lorenzo Dematté

คำตอบ:


8

ผู้ทดสอบไม่ต้องการที่จะทำการทดสอบซ้ำเหมือนเป็นการพูดว่า เป็นส่วนหนึ่งของงาน กระบวนการนี้สามารถปรับปรุงใหม่ได้เช่น: งานถูกสร้างขึ้น สร้างรหัสแล้ว ทดสอบรหัสแล้ว ตรวจสอบรหัสแล้ว พบข้อบกพร่องในรหัส งานใหม่ถูกสร้างขึ้นเพื่อแก้ไขข้อบกพร่องเหล่านี้ (เช่นรหัสถูก refactored) งานใหม่เหล่านี้ต้องการการทดสอบใหม่


2
+1 ในระเบียบวิธี Agile รีลีสรายวันอย่าเปิดงานใหม่ สร้างงานใหม่เพื่อแก้ไขปัญหาที่พบและกำหนดเวลาตามลำดับความสำคัญของทีมของคุณ งานใหม่ = การกระทำ QA ใหม่ (ซึ่งน่าจะหมายถึงการรันการทดสอบเดียวกันอีกครั้ง) หาก QA ไม่ชอบมีอาชีพอื่นอีกมากมาย
Kent A.

เห็นได้ชัดว่าใช้งานได้ แต่ดูเหมือนไม่มีประสิทธิภาพ
usr

7

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

นอกจากนี้ยังทำการทดสอบอัตโนมัติ การทดสอบด้วยตนเองคือ 1970


5

หากคุณพบว่ามันยากที่จะรับบทวิจารณ์โค้ดที่จะเกิดขึ้นในเวลาที่คุณมีอยู่ก่อนหน้า QA คุณควรพิจารณาให้บทวิจารณ์โค้ดนั้นมีน้ำหนักเบาขึ้นเช่นCode Review ใน Agile Teams ส่วนที่ IIที่ @Dukeling โพสต์กล่าวถึง

ฉันพบว่าแม้กระทั่งสิ่งที่ง่ายที่สุดที่อาจเรียกได้ว่าการตรวจสอบโค้ดให้ประโยชน์: ก่อนที่จะส่งรหัส (หรือกดใน DVCS) ให้โทรหาผู้พัฒนารายอื่น ๆ และดำเนินการตามการเปลี่ยนแปลงของคุณ อาจใช้เวลาห้าหรือสิบนาที เป้าหมายของการตรวจสอบรหัสนี้คือ "สิ่งนี้สมเหตุสมผลนักพัฒนาซอฟต์แวร์รายอื่นหรือไม่" เป้าหมายของเราคือการไม่ออกแบบให้ติดตั้งหรือออกแบบให้สอดคล้องกับความคิดเห็นส่วนตัวของผู้ตรวจสอบเกี่ยวกับวิธีการเขียน มันให้ประโยชน์เหล่านี้:

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

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


1

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

แต่สิ่งนี้จะต้องเกิดขึ้นก่อนรอบการทดสอบ จากนั้นจะมีการเปลี่ยนแปลงรหัสน้อยลงหลังการทดสอบเมื่อคุณทำบทวิจารณ์ที่ใหญ่ขึ้นกับทีมทั้งหมด


1

จากเสียงของผู้ทดสอบไม่ต้องการทดสอบซ้ำเพราะการทดสอบเป็นกระบวนการที่เจ็บปวด / แพง

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

ทำ refactor อย่างรวดเร็วตามความคิดเห็นของผู้พัฒนาหรือไม่? กดปุ่มสีแดงขนาดใหญ่ที่เรียกใช้ชุดการถดถอย / ควันของคุณและทำคู่มืออย่างรวดเร็วอีกครั้งเพื่อตรวจสอบปัญหาทางสายตาที่อาจเกิดขึ้น ง่าย!

เมื่อคุณอยู่ในสถานที่เช่นนั้นการทดสอบอีกครั้งจะไม่น่าเบื่อ - มันจะเป็นลักษณะที่สอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.