ให้ลำดับความสำคัญตรงก่อน ...
ในบทบาทของคุณในฐานะลูกค้าข้อกังวลหลักของคุณไม่ใช่การทดสอบหน่วย
หากคุณใช้ซัพพลายเออร์ที่ผลิตซอฟต์แวร์ให้กับคุณคุณไม่ควรกังวลหากพวกเขาใช้วิธีการหนึ่งหรืออย่างอื่น เงินเดิมพันของคุณคือการหาทางออกที่จะช่วยให้คุณบรรลุเป้าหมาย สิ่งเดียวที่คุณควรใส่ใจคือว่าดีหรือไม่ นั่นเป็นเหตุผลที่เรามีการทดสอบการยอมรับเพราะมันอยู่ในความรับผิดชอบของคุณเพื่อให้แน่ใจว่าคุณได้รับสิ่งที่คุณต้องการ ในช่วงเวลาสำคัญของการยอมรับของลูกค้าว่าเงินจะถูกทำธุรกรรมจากกระเป๋าของ บริษัท ของคุณลงในกระเป๋าของซัพพลายเออร์
คุณสามารถเรียกร้องการทดสอบหน่วยตามความต้องการที่ส่งมอบได้ แต่มีปัญหาหลายอย่างที่เกิดขึ้นกับพวกเขาสิ่งที่ร้ายแรงที่สุดคือไม่มีวิธีที่แน่นอนในการกำหนดตัวชี้วัด:
- จำนวนหน่วยทดสอบที่ยอมรับได้คือเท่าใด
ควรมีการทดสอบ 10 ข้อ? วิธีการประมาณ 100 การทดสอบ? มีการทดสอบประมาณ 1,000 ครั้ง ที่จริงแล้วมันค่อนข้างยากที่จะกำหนดในการเริ่มต้นจำนวนการทดสอบที่คุณจะต้อง จำนวนจริงไม่สามารถกำหนดได้จริง ๆ ... เช่นปัญหาการหยุด ... แต่เราไม่ได้แก้ปัญหานั้น
คุณเพียงแค่ต้องการซอฟต์แวร์ที่มีการทดสอบหน่วยเพื่อให้คุณสามารถพัฒนาต่อไป การทดสอบหน่วยยังไม่ได้บอกสิ่งที่คุณเสีย แต่ก็เหมาะสมอย่างยิ่งที่จะบอกคุณเมื่อรหัสนั้นมีข้อผิดพลาดในการถดถอย
- ระดับการครอบคลุมโค้ดที่ยอมรับได้คืออะไร
"100% แน่นอน!" คุณคิด น่าเสียดายที่เมตริกนั้นทำให้เข้าใจผิด แม้ว่าคุณจะมีรหัสครอบคลุม 100% คุณแน่ใจหรือไม่ว่าสิ่งต่าง ๆ ได้ผลตามที่คาดหวัง เป็นไปได้ที่จะได้รับความคุ้มครอง 100% แต่ไม่สามารถทำได้
สิ่งที่คุณต้องทำจริง ๆ ก็คือการทดสอบเชิงสำรวจคือหาคนที่เก่งในการทำสิ่งต่าง ๆ และให้พวกเขาทำการทดสอบ เพื่อค้นหาข้อบกพร่องที่นักพัฒนาซอฟต์แวร์ไม่เคยคิดมาก่อน
บางครั้ง 100% ก็ไม่สามารถบรรลุได้ด้วยการทดสอบหน่วยบริสุทธิ์หากคุณมีข้อบกพร่องด้านประสิทธิภาพที่จำเป็นและใช้รูปแบบการออกแบบที่ยากต่อการทดสอบ (ค้นหา "ซิงเกิล" และ "tdd" ในเครื่องมือค้นหาที่คุณชื่นชอบและคุณจะพบตัวอย่าง)
คุณต้องการให้ซอฟต์แวร์ที่ส่งมอบทำงานและเอกสารข้อกำหนดการรับประกันของคุณเป็นเพียงการรับประกันเท่านั้น
คุณจะต้องทดสอบในระดับที่สูงขึ้น
เอกสารข้อกำหนดของคุณจะต้องได้รับการยืนยันอย่างใด แต่ละจุดจะต้องผ่านกับซัพพลายเออร์ของคุณมีเป้าหมายที่ชัดเจนและเกณฑ์การยอมรับ องค์กร QA ที่ทำงานได้ดี (หรือผู้ทดสอบที่ยอดเยี่ยมหากคุณมีงบ จำกัด และมีขอบเขต จำกัด ) จะให้กรณีทดสอบเพื่อตรวจสอบเกณฑ์การยอมรับเหล่านี้ คุณต้องการใครสักคนที่จะตรวจสอบเกณฑ์การยอมรับเหล่านั้น
มีหลายวิธีในการตรวจสอบเป้าหมายของคุณและถ้ามีคนบอกฉันว่าคุณไม่สามารถกำหนดเป้าหมายคุณภาพประสิทธิภาพและประสิทธิภาพใด ๆ ได้ฉันจะโจมตีพวกเขาในหัวด้วยหนังสือเล่มใหญ่และเล่มหนาในการทดสอบเชิงสำรวจประสิทธิภาพและการใช้งานตามลำดับ อาจเป็นเรื่องง่ายเกินกว่าที่จะกำหนดเป้าหมายได้ แต่ความรู้และการสื่อสารจะช่วยให้คุณกำหนดเป้าหมายได้อย่างสมจริง
ฉันไม่ใช่ทนายความ แต่สัญญาโครงการส่วนใหญ่ (ซึ่งโดยทั่วไปเป็นแม่ของข้อกำหนดทั้งหมดสำหรับโครงการ) ฉันได้อ่านมักจะมีเกณฑ์อัตราส่วนข้อบกพร่องที่กำหนดว่ามีข้อบกพร่องจำนวนเท่าใดที่ถือว่ายอมรับได้ โดยทั่วไปแล้วข้อบกพร่องจะถูกกำหนดผ่านความรุนแรงการแสดงการหยุดที่พบโดย QA นั้นมีความอดทนต่ำในขณะที่สิวเล็กน้อยนั้นมีความอดทนสูง ในโครงการจริงเป็นการยากที่จะเรียกร้องให้ซอฟต์แวร์ต้องมีข้อบกพร่อง 0 รายการ กำหนดเวลามักจะหยุดการฝึกซ้อมนั้น ในสถานการณ์เหล่านี้คุณต้องเริ่มต่อรองขอบเขต
ซอฟต์แวร์ที่ให้มาส่วนใหญ่ที่ฉันเคยเห็นมักจะไม่ได้รับพร้อมกับการทดสอบหน่วย คุณสามารถโต้แย้งว่าซัพพลายเออร์ควรมีความเป็นมืออาชีพมากพอที่จะส่งมอบสิ่งนี้อย่างไรก็ตามเหตุผลหลักที่คุณต้องการทดสอบหน่วยที่ส่งมอบให้กับคุณคือเพื่อให้แน่ใจว่าคุณจะไม่ได้รับข้อผิดพลาดในการถดถอย ในชีวิตจริงกับโครงการที่มีกำหนดส่งงานที่แน่นหนาทั้งซัพพลายเออร์และลูกค้าจะลดขอบเขตและการทดสอบหน่วยโดยปกติแล้วจะออกไปนอกหน้าต่างและถูกลบออกจากรายการของสิ่งที่ต้องส่งมอบที่ต้องการ
เป็นเรื่องน่าเศร้าที่ซอฟต์แวร์โอเพ่นซอร์สระดับสูงมาพร้อมกับการทดสอบหน่วย แต่ผู้พัฒนาซอฟต์แวร์มืออาชีพทำไม่ได้ใช่ไหม
ดังนั้นเมื่อฉันในฐานะลูกค้าจะได้รับการดูแลเกี่ยวกับการทดสอบหน่วย?
ฉันจะยืนยันว่าครั้งเดียวที่คุณจะสนใจการทดสอบหน่วยอย่างแท้จริงคือถ้าซอฟต์แวร์ที่ส่งมอบเป็นองค์ประกอบแบบพอเพียงที่ไม่ได้ดำเนินการเป็นโปรแกรมแบบสแตนด์อะโลนซึ่งการทดสอบที่ยากที่สุดที่คุณสามารถทำได้คือการทดสอบหน่วย . ไลบรารีคลาสจะเป็นผลิตภัณฑ์ชนิดหนึ่งที่สามารถจัดส่งพร้อมกับการทดสอบหน่วย