โปรแกรมเมอร์ควรช่วยผู้ทดสอบในการออกแบบการทดสอบหรือไม่?


17

โปรแกรมเมอร์ควรช่วยผู้ทดสอบมากน้อยเพียงใดในการออกแบบการทดสอบ

ฉันไม่คิดว่าพวกเขาจะช่วยได้เลย ความกังวลของฉันคือถ้าพวกเขาช่วยทดสอบในการออกแบบการทดสอบสำหรับรหัสของพวกเขาพวกเขาจะ 'ติด' ผู้ทดสอบด้วยอคติและจุดบอดของรหัสนั้น

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

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

คำตอบ:


12

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


5
นี่เป็นความคิดที่แปลก ใจของฉันมีมลภาวะมากมาย - ฉันเป็นผู้ทดสอบตามคำนิยามฉันเป็นคนที่มีจมูกยาวซึ่งมองไปรอบ ๆ ทุกอย่าง ฉันไม่เคยพบกับนักพัฒนาที่สามารถ "ทำให้สกปรก" ในใจของฉันเพียงแค่พูดถึงแนวคิดการทดสอบของตัวเอง - ความคิดในการทดสอบจะทำให้เกิดแนวคิดการทดสอบเพิ่มเติมในประสบการณ์ของฉัน และรู้ว่าสิ่งที่อคติและจุดด้อยของคุณมีความสามารถมากประโยชน์
testerab

1
-1 ผู้ทดสอบควรเปิดรับแนวคิดใด ๆ ที่สามารถทดสอบได้อย่างอิสระโดยสมบูรณ์หากแนวคิดนั้นมาจากผู้พัฒนาคนอื่นหรือถ้าเป็นความคิดของเขาเอง การไม่พูดถึงหัวข้อดังกล่าวระหว่างผู้ทดสอบและผู้พัฒนาคือเรื่องไร้สาระของ IMHO แนวคิดของการ "ทำให้คนอื่นเสียจิตใจ" คือมุมมองต่อคนที่ฉันไม่แบ่งปันหรือสนับสนุน
Doc Brown

11

ฉันคิดว่ามีที่ว่างสำหรับนักพัฒนาและผู้ทดสอบเพื่ออยู่ร่วมกันอย่างสงบสุขในขอบเขตของ QA :)

โดยเฉพาะอย่างยิ่งฉันคิดว่านักพัฒนาควรรับผิดชอบการทดสอบระดับแรก - การทดสอบหน่วยและการทดสอบการรวมพื้นฐานเพื่อให้แน่ใจว่าสิ่งที่พวกเขาใช้งานได้ในกรณีส่วนใหญ่ก่อนส่งมอบให้ผู้ทดสอบ

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


6

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

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

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


นั่นควรเป็นคำตอบที่ยอมรับได้ OP เลือกคำตอบที่สนับสนุนอคติของเขาเกี่ยวกับความสัมพันธ์ของ "devs and testers"
Doc Brown

5

วิธีที่ฉันเห็นก็คือมันไม่ใช่หน้าที่ของ QA ในการทดสอบรหัสของฉัน งานของผู้ทดสอบคือเพื่อให้แน่ใจว่ารหัสของฉันเป็นไปตามข้อกำหนดทั้งหมดสำหรับงานนั้น

เมื่อฉันส่งบางสิ่งไปยัง QA ฉันแน่ใจว่าพวกเขารู้ว่าฉันกำลังทำอะไรอยู่ไม่ใช่เฉพาะรหัสของฉัน ฉันไม่เคยผ่านอะไรไปยัง QA ที่มีข้อบกพร่อง 'กระดูกหัว' อยู่ มันทำให้ฉันเสียเวลาเวลาของพวกเขา ... และเวลาของทุกคน

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


5

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

ไม่มี "มลภาวะ" เว้นแต่ว่ารหัสของคุณเป็นสิ่งโสโครกดิบและนั่นอาจเป็นเหตุผลที่แตกต่างไปจากเดิมอย่างสิ้นเชิง

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

ในฐานะที่เป็นผู้ทดสอบขาดคำแนะนำจากทีมพัฒนาบางครั้งฉันก็ไปผิดวิธีที่สร้างรายงานบั๊กที่ดี แต่ไม่ได้ใช้เส้นทางรหัสที่มีความเสี่ยงสูงและปัญหาที่ใหญ่กว่าซึ่งอาจหลีกเลี่ยงได้จากการทำงานร่วมกันที่ดีขึ้น กับทีมพัฒนาส่งไปยังลูกค้า

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

ทีม QA มีแนวโน้มที่จะเห็นพื้นที่ที่มีขอบเขตการทดสอบ combinatorial ขนาดใหญ่กว่าตัวรวบรวมความต้องการหรือผู้พัฒนาระบบ แต่พวกเขาอาจไม่ทราบถึงส่วนประกอบของระบบที่มีความเปราะบางที่ได้รับประโยชน์จากการออกแบบ หรือการนำระบบไปใช้

จากประสบการณ์ของฉันการทำงานร่วมกันระหว่าง QA และการพัฒนาทำให้ผลิตภัณฑ์มีคุณภาพดีขึ้น ฉันจะไม่แนะนำให้ทำเพียง handoff กล่องดำ


3

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

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


3

ฉันชอบที่จะทบทวนแผนการทดสอบและแนะนำกรณีทดสอบเพิ่มเติมที่ QA อาจไม่ได้คิด ฉันไม่แน่ใจว่าจะ "ติดเชื้อผู้ทดสอบด้วยอคติของฉันเอง" ได้อย่างไร


2

ฉันพบว่าตัวเองอยู่ในตำแหน่งประหลาดที่ฉันต้องใช้และเขียนกรณีทดสอบใน Selenium หลังจากนั้นเพราะเรายังขาดเจ้าหน้าที่ QA ฉันเชื่อว่าการพัฒนาที่ขับเคลื่อนด้วยการทดสอบจะมีประโยชน์อย่างยิ่ง แต่ก็ยังไม่ได้ดัดแปลงในร้านของฉัน

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


0

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

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

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