การทดสอบแบบ Agile - ภาพรวม
Agileเป็นวิธีการพัฒนาแบบวนซ้ำซึ่งทั้งกิจกรรมการพัฒนาและการทดสอบจะเกิดขึ้นพร้อมกัน การทดสอบไม่ใช่เฟสแยกต่างหาก การเข้ารหัสและการทดสอบจะทำแบบโต้ตอบและเพิ่มขึ้นทำให้ได้ผลิตภัณฑ์ที่มีคุณภาพซึ่งตรงตามความต้องการของลูกค้า นอกจากนี้การผสานรวมอย่างต่อเนื่องยังส่งผลให้เกิดการกำจัดข้อบกพร่องในระยะแรกและด้วยเหตุนี้เวลาความพยายามและการประหยัดต้นทุน
ประกาศ Agile
Agile Manifesto ได้รับการเผยแพร่โดยทีมนักพัฒนาซอฟต์แวร์ในปี 2544 โดยเน้นถึงความสำคัญของทีมพัฒนารองรับความต้องการที่เปลี่ยนแปลงและการมีส่วนร่วมของลูกค้า
The Agile Manifesto is −
เรากำลังเปิดเผยวิธีที่ดีกว่าในการพัฒนาซอฟต์แวร์โดยการทำและช่วยเหลือผู้อื่น ผ่านงานนี้เราได้มาถึงคุณค่า -
- บุคคลและปฏิสัมพันธ์กับกระบวนการและเครื่องมือ
- ซอฟต์แวร์ที่ใช้งานได้กับเอกสารที่ครอบคลุม
- การทำงานร่วมกันของลูกค้าในการเจรจาสัญญา
- การตอบสนองต่อการเปลี่ยนแปลงตามแผน
นั่นคือในขณะที่มีค่าในรายการทางด้านขวาเราให้ความสำคัญกับรายการทางด้านซ้ายมากขึ้น
Agile Testing คืออะไร?
Agile Testing คือการทดสอบซอฟต์แวร์ที่เป็นไปตามหลักการของการพัฒนาซอฟต์แวร์แบบ Agile
การทดสอบแบบ Agile เกี่ยวข้องกับสมาชิกทุกคนในทีมโครงการซึ่งมีความเชี่ยวชาญพิเศษจากผู้ทดสอบ การทดสอบไม่ใช่ขั้นตอนแยกต่างหากและเชื่อมโยงกับขั้นตอนการพัฒนาทั้งหมดเช่นข้อกำหนดการออกแบบและการเข้ารหัสและการสร้างกรณีทดสอบ การทดสอบจะเกิดขึ้นพร้อมกันผ่านวงจรชีวิตการพัฒนา
นอกจากนี้เมื่อผู้ทดสอบเข้าร่วมในวงจรการพัฒนาทั้งหมดร่วมกับสมาชิกในทีมข้ามสายงานการมีส่วนร่วมของผู้ทดสอบในการสร้างซอฟต์แวร์ตามความต้องการของลูกค้าด้วยการออกแบบและโค้ดที่ดีขึ้นจะเป็นไปได้
การทดสอบแบบ Agile ครอบคลุมทุกระดับของการทดสอบและการทดสอบทุกประเภท
เทียบกับการทดสอบ Agile การทดสอบน้ำตก
ในวิธีการพัฒนาแบบ Waterfall กิจกรรมวัฏจักรการพัฒนาเกิดขึ้นในขั้นตอนที่เป็นลำดับ ดังนั้นการทดสอบจึงเป็นขั้นตอนแยกต่างหากและจะเริ่มต้นหลังจากเสร็จสิ้นขั้นตอนการพัฒนาเท่านั้น
ต่อไปนี้เป็นจุดเด่นของความแตกต่างระหว่าง Agile Testing และ Waterfall Testing -
การทดสอบแบบ Agile | การทดสอบน้ำตก |
---|---|
การทดสอบไม่ใช่เฟสแยกต่างหากและเกิดขึ้นพร้อมกันกับการพัฒนา | การทดสอบเป็นเฟสแยกต่างหาก การทดสอบทุกระดับและประเภทสามารถเริ่มได้หลังจากการพัฒนาเสร็จสิ้นเท่านั้น |
ผู้ทดสอบและนักพัฒนาทำงานร่วมกัน | ผู้ทดสอบทำงานแยกจากนักพัฒนา |
ผู้ทดสอบมีส่วนร่วมในการกำหนดข้อกำหนด สิ่งนี้ช่วยในการแมปข้อกำหนดกับพฤติกรรมในสถานการณ์จริงและกำหนดกรอบเกณฑ์การยอมรับ นอกจากนี้กรณีการทดสอบการยอมรับเชิงตรรกะจะพร้อมตามข้อกำหนด | ผู้ทดสอบอาจไม่เกี่ยวข้องกับขั้นตอนข้อกำหนด |
การทดสอบการยอมรับจะกระทำหลังจากการทำซ้ำทุกครั้งและขอความคิดเห็นจากลูกค้า | การทดสอบการยอมรับจะดำเนินการเมื่อสิ้นสุดโครงการเท่านั้น |
การทำซ้ำทุกครั้งจะเสร็จสิ้นการทดสอบของตัวเองจึงทำให้สามารถใช้การทดสอบการถดถอยทุกครั้งที่ออกฟังก์ชันหรือตรรกะใหม่ ๆ | การทดสอบการถดถอยสามารถทำได้หลังจากเสร็จสิ้นการพัฒนาแล้วเท่านั้น |
ไม่มีความล่าช้าระหว่างการเข้ารหัสและการทดสอบ | เวลาปกติเกิดความล่าช้าระหว่างการเข้ารหัสและการทดสอบ |
การทดสอบอย่างต่อเนื่องด้วยระดับการทดสอบที่ทับซ้อนกัน | การทดสอบเป็นกิจกรรมตามกำหนดเวลาและระดับการทดสอบไม่สามารถทับซ้อนกันได้ |
การทดสอบเป็นแนวทางปฏิบัติที่ดีที่สุด | การทดสอบมักถูกมองข้าม |
หลักการทดสอบแบบ Agile
หลักการของการทดสอบ Agile คือ -
Testing moves the project forward- การทดสอบอย่างต่อเนื่องเป็นวิธีเดียวที่จะทำให้มั่นใจได้ว่ามีความคืบหน้าอย่างต่อเนื่อง Agile Testing ให้ข้อเสนอแนะอย่างต่อเนื่องและผลิตภัณฑ์ขั้นสุดท้ายตรงตามความต้องการของธุรกิจ
Testing is not a phase- ทีม Agile ทำการทดสอบร่วมกับทีมพัฒนาเพื่อให้แน่ใจว่าฟีเจอร์ต่างๆที่นำมาใช้ระหว่างการทำซ้ำนั้นทำได้จริง การทดสอบจะไม่ถูกเก็บไว้ในระยะต่อไป
Everyone tests- ในการทดสอบแบบ Agile ทีมงานทั้งหมดรวมถึงนักวิเคราะห์นักพัฒนาและผู้ทดสอบจะทดสอบแอปพลิเคชัน หลังจากการทำซ้ำทุกครั้งแม้แต่ลูกค้าก็ทำการทดสอบการยอมรับของผู้ใช้
Shortening Feedback Loops- ในการทดสอบแบบ Agile ทีมธุรกิจจะทำความรู้จักกับการพัฒนาผลิตภัณฑ์สำหรับการทำซ้ำแต่ละครั้ง พวกเขามีส่วนร่วมในการทำซ้ำทุกครั้ง ข้อเสนอแนะอย่างต่อเนื่องช่วยลดระยะเวลาตอบสนองของข้อเสนอแนะและทำให้ต้นทุนที่เกี่ยวข้องในการแก้ไขนั้นน้อยลง
Keep the Code Clean- ข้อบกพร่องได้รับการแก้ไขเมื่อมีการเพิ่มขึ้นภายในการทำซ้ำเดียวกัน สิ่งนี้ทำให้มั่นใจได้ว่าโค้ดจะสะอาดในทุกขั้นตอนของการพัฒนา
Lightweight Documentation - แทนที่จะเป็นเอกสารการทดสอบที่ครอบคลุมผู้ทดสอบ Agile -
ใช้รายการตรวจสอบที่ใช้ซ้ำได้เพื่อแนะนำการทดสอบ
เน้นที่สาระสำคัญของการทดสอบมากกว่ารายละเอียดที่บังเอิญ
ใช้รูปแบบเอกสาร / เครื่องมือที่มีน้ำหนักเบา
จับแนวคิดการทดสอบในกฎบัตรสำหรับการทดสอบเชิงสำรวจ
ใช้ประโยชน์จากเอกสารเพื่อวัตถุประสงค์หลายประการ
Leveraging one test artifact for manual and automated tests- สิ่งประดิษฐ์สคริปต์ทดสอบเดียวกันสามารถใช้สำหรับการทดสอบด้วยตนเองและเป็นอินพุตสำหรับการทดสอบอัตโนมัติ สิ่งนี้ช่วยขจัดความต้องการของเอกสารคู่มือการทดสอบและสคริปต์ทดสอบอัตโนมัติที่เทียบเท่า
“Done Done,” not just done - ใน Agile มีการกล่าวถึงฟีเจอร์ที่ไม่ได้ทำหลังจากการพัฒนา แต่หลังจากการพัฒนาและการทดสอบ
Test-Last vs. Test Driven- กรณีการทดสอบเขียนขึ้นพร้อมกับข้อกำหนด ดังนั้นการพัฒนาสามารถขับเคลื่อนได้ด้วยการทดสอบ แนวทางนี้เรียกว่า Test Driven Development (TDD) และ Acceptance Test Driven Development (ATDD) ซึ่งตรงกันข้ามกับการทดสอบในเฟสสุดท้ายในการทดสอบน้ำตก
กิจกรรมการทดสอบ Agile
กิจกรรมการทดสอบ Agile ในระดับโครงการ ได้แก่ -
การวางแผนการวางจำหน่าย (แผนการทดสอบ)
สำหรับการทำซ้ำทุกครั้ง
กิจกรรมการทดสอบ Agile ระหว่างการทำซ้ำ
การทดสอบการถดถอย
กิจกรรมการเปิดตัว (ที่เกี่ยวข้องกับการทดสอบ)
กิจกรรมการทดสอบ Agile ระหว่างการทำซ้ำ ได้แก่ -
- มีส่วนร่วมในการวางแผนการทำซ้ำ
- การประเมินงานจากมุมมองของการทดสอบ
- การเขียนกรณีทดสอบโดยใช้คำอธิบายคุณลักษณะ
- การทดสอบหน่วย
- การทดสอบการผสานรวม
- การทดสอบคุณสมบัติ
- การแก้ไขข้อบกพร่อง
- การทดสอบการผสานรวม
- การทดสอบการยอมรับ
- การรายงานสถานะความคืบหน้าของการทดสอบ
- การติดตามข้อบกพร่อง