การทดสอบแบบ 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 ระหว่างการทำซ้ำ ได้แก่ -

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