ในการเริ่มต้นผมไม่คิดว่านี่เป็นซ้ำของคำถามอื่น ๆในการทดสอบหน่วย สิ่งที่ฉันต้องการความช่วยเหลือคือการสื่อสารถึงคุณค่าของมันกับทีมโปรแกรมเมอร์นักวิเคราะห์ผู้จัดการและผู้ทดสอบ โดยการทดสอบอัตโนมัติฉันไม่คิดว่าฉันต้องแยกความแตกต่างระหว่างการทดสอบหน่วย (เช่น JUnit), BDD (เช่น JBehave, ฟิตเนส) และ UI (Selenium, Watir) เพราะฉันคิดว่าพวกเขาให้คุณค่าที่คล้ายคลึงกัน (แต่รู้สึกอิสระที่จะ เขียนคำตอบที่ไม่เห็นด้วย :))
ต่อไปนี้เป็นรายการที่ฉันระบุฉันกำลังมองหาคำตอบที่ช่วยขยายหรือปรับแต่ง:
- ประหยัดเวลา / ค่าใช้จ่าย : การเขียนแบบทดสอบอัตโนมัติอาจใช้เวลามากกว่ากรณีทดสอบแบบเป็นลายลักษณ์อักษร อย่างไรก็ตามการพิจารณาการทดสอบนั้นดำเนินการหลายครั้งงานส่วนเพิ่ม (เช่นราคา / เวลา) ในการดำเนินการทดสอบอัตโนมัตินั้นมีคำสั่งไม่มากนัก การทดสอบอัตโนมัตินั้นมีราคาถูกในการใช้งานช่วยให้การเปลี่ยนระบบเป็นไปอย่างสะดวก
- เอกสาร : ไม่มีวิธีที่แท้จริงที่จะรู้ว่าระบบทำงานอย่างไรกว่าการทดสอบ เอกสารอื่น ๆ มักจะล้าสมัยทันทีที่มีการเขียน แต่การทดสอบ (อย่างน้อยผู้ที่ผ่าน) เปิดเผยว่าสิ่งที่ใช้งานได้จริง สิ่งนี้เป็นจริงสำหรับทั้งเอกสารของผู้ใช้และ API
- คุณภาพของรหัส : การทดสอบการเขียนบังคับให้คุณ:
- พิจารณาลูกค้าเพราะการทดสอบเป็นลูกค้า
- แบ่งการอ้างอิงที่ทำให้รหัสทดสอบได้บ่อยครั้งหมายถึงการหาวิธีทำให้รหัสนั้นไม่ต้องใช้ระบบขนาดใหญ่อื่น ๆ