เรากำลังพยายามตั้งค่ากระบวนการทดสอบของเรา เราสงสัยว่าผู้ทดสอบของเราควรพัฒนาแบบทดสอบการถดถอยอัตโนมัติหรือหากนักพัฒนาควรทำเช่นนั้น
แล้วการทดสอบอัตโนมัติประเภทอื่น ๆ ล่ะ? ผู้ทดสอบควรพัฒนามันหรือไม่?
เรากำลังพยายามตั้งค่ากระบวนการทดสอบของเรา เราสงสัยว่าผู้ทดสอบของเราควรพัฒนาแบบทดสอบการถดถอยอัตโนมัติหรือหากนักพัฒนาควรทำเช่นนั้น
แล้วการทดสอบอัตโนมัติประเภทอื่น ๆ ล่ะ? ผู้ทดสอบควรพัฒนามันหรือไม่?
คำตอบ:
ฉันบอกว่าผู้ทดสอบควรพัฒนาการทดสอบอัตโนมัติ - พวกเขามีวิธี "นอกตาคู่" ของรหัสและจะ (หรือที่ควรจะเป็นเพียงแค่ 'อาจ'?) จุดบกพร่องที่คุณไม่ได้คิดให้จัดการคนเดียว .
บวกกับความเข้าใจในความต้องการของฟังก์ชั่นอาจสูงกว่าความเข้าใจของนักพัฒนาดังนั้นนั่งอยู่ระหว่างความรู้ระดับต่ำของฮาร์ดคอร์ของโปรแกรมเมอร์ แต่ไม่สูงกว่าปริญญาตรี
หากคุณสามารถทำให้เป็นอัตโนมัติให้เป็นไปโดยอัตโนมัติ
ปล่อยให้ผู้ทดสอบเป็นอิสระเพื่อค้นหาสิ่งที่คุณไม่สามารถทำให้เป็นอัตโนมัติได้ และเมื่อพวกเขาพบข้อผิดพลาดใหม่ถ้ามันสามารถเป็นอัตโนมัติและเพิ่มในการทดสอบอัตโนมัติเพิ่มมัน
ในความเห็นของฉันผู้พัฒนาและผู้ทดสอบมีหน้าที่รับผิดชอบในการทดสอบประเภทต่างๆ
นักพัฒนาขณะที่เขียนตรรกะควรเขียนการทดสอบหน่วยและการรวมเข้าด้วยกัน สิ่งนี้จะช่วยให้ผู้พัฒนามั่นใจได้ว่าสิ่งที่พวกเขาเขียนนั้นได้ผลตามที่ตั้งใจไว้ นอกจากนี้การทดสอบเหล่านี้จะยังคงอยู่รอบ ๆ เพื่อให้ผู้พัฒนาสามารถเรียกใช้เมื่อทำการเปลี่ยนแปลงในอนาคต เมื่อตรรกะเสร็จสมบูรณ์ผู้พัฒนาสามารถมั่นใจได้ว่าสิ่งที่เขียนนั้นทำงานได้เนื่องจากพวกเขาเข้าใจข้อกำหนดและสามารถส่งผ่านไปยังผู้ทดสอบได้
ผู้ทดสอบจากจุดนี้ควรรับผิดชอบในการเขียนการทดสอบทั่วทั้งระบบเพื่อให้แน่ใจว่าตรรกะทางธุรกิจทำงานได้ตามที่ต้องการ
เนื่องจาก devs นั้นมักแนบกับรหัสมากเกินไปผู้ทดสอบควรจะสามารถช่วยล้างการทดสอบของ dev แต่ไม่ใช่ในทางกลับกัน
จากประสบการณ์ของฉันการตั้งค่าผู้ทดสอบและดำเนินการกรณีทดสอบโดยอัตโนมัตินั้นแตกต่างจากวิธีที่ผู้พัฒนาทำ ผู้ทดสอบจะพิจารณาเพิ่มเติมเกี่ยวกับวิธีการรับข้อมูลมากที่สุดจากกรณีทดสอบวิธีการดำเนินการทดสอบอย่างรวดเร็ววิธีการดูแลรักษาการทดสอบและอื่น ๆ ที่สำคัญที่สุดผู้ทดสอบจะเห็นความครอบคลุมของการทดสอบที่นักพัฒนาจะพลาด
หากทรัพยากรการทดสอบทดสอบต่ำผู้พัฒนาสามารถช่วยได้ - แต่ผู้ทดสอบควรตรวจสอบงานของพวกเขาอย่างรอบคอบ ผู้พัฒนาระบบควรทำงานกับอุปกรณ์ติดตั้งและเครื่องมือทดสอบก่อนที่จะเขียนกรณีทดสอบจริงและผู้พัฒนาระบบไม่ควรเขียนกรณีทดสอบสำหรับรหัสของตนเอง การมีนักพัฒนาช่วยในการทดสอบจะได้รับประโยชน์ - มันจะเปิดเผย devs ให้กับชิ้นส่วนอื่น ๆ ของผลิตภัณฑ์และการทดสอบสามารถช่วยให้พวกเขากลายเป็นนักพัฒนาที่ดีขึ้น อย่างไรก็ตามเช่นเดียวกับผลงานของนักพัฒนารุ่นเยาว์ที่ไม่เคยไปโดยปราศจากการตรวจสอบโค้ดงาน QA ของนักพัฒนาซอฟต์แวร์ควรได้รับการตรวจสอบคุณภาพจากคนที่มีการทดสอบประสบการณ์มากกว่า
แก้ไขเพื่อเพิ่ม: ฉันเป็น SDET ที่มีประสบการณ์ 5 ปี ฉันทำงานกับผู้พัฒนาที่ดีที่มีประสบการณ์มากกว่า 10 ปีในแต่ละครั้งและเมื่อเร็ว ๆ นี้ได้ทำงานกับพวกเขาเพื่อให้ผ่านคอขวดทดสอบ
สิ่งหนึ่งที่ฉันอยากเห็นจริงๆคือเครื่องมืออัตโนมัติที่เป็นของแข็งสำหรับผู้ทดสอบซึ่งจะช่วยให้พวกเขาบันทึกความคืบหน้าของพวกเขาได้อย่างมีประสิทธิภาพผ่านสคริปต์ทดสอบแล้วอนุญาตให้สคริปต์นั้นทำงานโดยอัตโนมัติในอนาคต โดยเฉพาะอย่างยิ่งหากสิ่งนี้ยังช่วยให้สคริปต์เดียวกันทำงานในเวอร์ชันของระบบปฏิบัติการที่แตกต่างกันโดยที่ผู้ทดสอบไม่ต้องดำเนินการทั้งหมดด้วยมือ
โชคไม่ดีที่แน่นอนสำหรับผลิตภัณฑ์ที่ฉันทำงานไม่มีเครื่องมือในตลาดที่ค่อนข้างใช้งานได้ แต่มันก็คุ้มที่จะนึกถึงสิ่งนี้และนึกถึงสิ่งที่มีอยู่ในตลาดในกรณีที่มีบางอย่างที่เหมาะกับสิ่งที่คุณกำลังทำอยู่
หนึ่งความแตกต่างที่สำคัญที่เป็นสิ่งสำคัญมากที่นี่คือ: มีการทดสอบเพียงแค่การตรวจสอบหรือพวกเขาจะทดสอบ ?
นี้บล็อกโพสต์โดยไมเคิลโบลตันอธิบายได้ดีกว่า แต่ในสาระสำคัญ: พวกเขากำลังมองไปสู่พฤติกรรมที่ยืนยันเพียงหรือพวกเขากำลังมองหาที่จะมีปัญหาเกี่ยวกับระบบหรือไม่
ฉันคิดว่ามันยังมีประโยชน์ในการพิจารณาAgile Testing Quadrants (Brian Marick เดิมอธิบายเหล่านี้ แต่ฉันเจอพวกเขาใน Lisa Crispin และหนังสือ "Agile Testing" ของ Janet Gregory: แม้ว่าคุณจะไม่ได้ใช้วิธีการพัฒนาแบบ Agile ก็ตาม ความแตกต่างระหว่างการทดสอบที่วิจารณ์ผลิตภัณฑ์และการทดสอบที่สนับสนุนทีมนั้นมีค่าจริง ๆ เมื่อพิจารณาเรื่องระบบอัตโนมัติและพยายามพัฒนาแผนการสำหรับใครทำอะไรและทำไม
ตัวอย่างเช่นการตรวจสอบหน่วยงานที่เขียนโดยนักพัฒนาทำหน้าที่เป็นตัวตรวจจับการเปลี่ยนแปลงทำให้คุณสามารถจับความถดถอยได้เร็วขึ้นเมื่อทำการทดสอบซ้ำเป็นประจำซึ่งเป็นการทดสอบที่สนับสนุนทีม การตรวจสอบการถดถอยระดับระบบที่เป็นแบบอัตโนมัติเพื่อให้สามารถเรียกใช้ซ้ำได้อย่างรวดเร็วและยังสนับสนุนทีมโดยจับการถดถอยก่อนและเสริมการทดสอบหน่วยที่ทำโดยนักพัฒนา นั่นจะช่วยให้ผู้ทดสอบของคุณเสียเวลาในการทำการทดสอบที่วิจารณ์ผลิตภัณฑ์มากขึ้นเช่นการทดสอบเชิงสำรวจ หรืออาจใช้การตรวจสอบอัตโนมัติเพื่อทดสอบผลิตภัณฑ์
สิ่งอื่น ๆ ที่ฉันชอบเกี่ยวกับการนำเสนอของ Lisa Crispin ที่ฉันเชื่อมโยงคือมันชี้ให้เห็นว่าระบบอัตโนมัติยังสามารถใช้เพื่อสนับสนุนการทดสอบด้วยตนเอง - การสร้างข้อมูลทดสอบ ตัวอย่าง.
การพิจารณาบทความทั้งสองนี้จะช่วยให้คุณวิเคราะห์ประเภทการทดสอบที่คุณต้องการทำให้ง่ายขึ้นในการเลือกสิ่งที่อาจเหมาะสำหรับระบบอัตโนมัติและพิจารณาว่าบิตของระบบอัตโนมัติแบบใดที่เหมาะกับการทดสอบมากขึ้น โดยนักพัฒนา