กรอบการทำงานอัตโนมัติการทดสอบ Agile
⚡ สรุปอย่างชาญฉลาด
การทดสอบอัตโนมัติแบบ Agile ใช้การตรวจสอบอัตโนมัติภายในสปรินต์สั้นๆ ซึ่งข้อกำหนดเปลี่ยนแปลงทุกสัปดาห์ และชุดทดสอบที่สร้างขึ้นสำหรับการปล่อยเวอร์ชันแบบ Waterfall ที่เสถียร จะกลายเป็นภาระในการบำรุงรักษามากกว่าจะเป็นตาข่ายนิรภัย

การทดสอบระบบอัตโนมัติแบบ Agile
การทดสอบอัตโนมัติแบบ Agile การทดสอบอัตโนมัติคือการใช้ระบบอัตโนมัติในการพัฒนาซอฟต์แวร์แบบ Agile จุดประสงค์คือเพื่อให้การพัฒนาซอฟต์แวร์มีประสิทธิภาพและประสิทธิผลมากขึ้น พร้อมทั้งรักษาคุณภาพและควบคุมเวลาและทรัพยากรที่ใช้ไปในแต่ละรอบการพัฒนา เนื่องจากการทดสอบถูกเขียนขึ้นควบคู่ไปกับการพัฒนาฟีเจอร์ การทดสอบอัตโนมัติจึงขึ้นอยู่กับการประสานงานระหว่างนักพัฒนาและผู้ทดสอบเป็นอย่างมาก
นับตั้งแต่ระเบียบวิธี Agile เริ่มต้นขึ้นเพื่อขจัดความยุ่งยากและใช้เวลานานของแบบจำลอง Waterfall อิทธิพลของมันก็ปรากฏให้เห็นในหลายๆ ด้าน การทดสอบอัตโนมัติ เช่นกัน ทั้งสองศาสตร์นี้ต้องนำมาผสมผสานกันอย่างรอบคอบ:
การใช้ระบบอัตโนมัติในวิธีการแบบ Waterfall เทียบกับการใช้ระบบอัตโนมัติในวิธีการแบบ Agile
ในวงจรชีวิตการทดสอบซอฟต์แวร์แบบดั้งเดิม การทดสอบอัตโนมัติจะทำได้ก็ต่อเมื่อแอปพลิเคชันนั้นเสร็จสมบูรณ์แล้ว มีความเสถียรและข้อกำหนดต่างๆ ได้รับการกำหนดไว้เรียบร้อยแล้วมันตั้งสมมติฐานว่า ใช้เวลาค่อนข้างนานต้องใช้ผู้เชี่ยวชาญด้านระบบอัตโนมัติที่มีทักษะสูงและค่าใช้จ่ายในการติดตั้งที่ค่อนข้างสูง จุดประสงค์หลักคือการลดต้นทุนในระยะยาวและยืนยันว่าไม่มีข้อบกพร่องใหม่เกิดขึ้นรอบๆ กรณีทดสอบที่มีอยู่
การทดสอบอัตโนมัติไม่ใช่ลักษณะของการสำรวจค้นหาเนื่องจากบทบาทหลักของมันคือการประหยัดเวลาและลดต้นทุน ไม่ได้ออกแบบมาเพื่อค้นหาข้อบกพร่องใหม่ๆ ที่เกิดขึ้นโดยไม่คาดคิด การทดสอบอัตโนมัติส่วนใหญ่ยืนยันพฤติกรรมที่มีอยู่แล้ว
ดังนั้น สภาพแวดล้อมทั้งสองแบบจึงสร้างความต้องการที่แตกต่างกันอย่างมากสำหรับชุดทดสอบ:
| ปัจจัย | ระบบอัตโนมัติในกระบวนการน้ำตก | ระบบอัตโนมัติใน Agile |
|---|---|---|
| สถานะแอปพลิเคชัน | มีความเสถียรและได้รับการตรวจสอบอนุมัติก่อนเริ่มเขียนสคริปต์ | มีการเปลี่ยนแปลงในทุกสปรินต์ บ่อยครั้งในระหว่างการเขียนสคริปต์ |
| เวลาว่าง | ขั้นตอนการทำงานอัตโนมัติโดยเฉพาะ | อะไรก็ตามที่สามารถทำได้ภายในระยะเวลา 1-4 สัปดาห์ |
| ใครเป็นผู้เขียนบท | ทีมผู้เชี่ยวชาญด้านระบบอัตโนมัติแยกต่างหาก | ทีมส่งมอบงาน ผู้ทดสอบ และนักพัฒนาทำงานร่วมกัน |
| เป้าหมายหลัก | ลดต้นทุนในระยะยาวสำหรับชุดการวิเคราะห์ถดถอยขนาดใหญ่ | ได้รับผลตอบรับอย่างรวดเร็วเกี่ยวกับส่วนเพิ่มที่เพิ่งสร้างเสร็จ |
| ความเสี่ยงในการบำรุงรักษา | ต่ำ เนื่องจากความต้องการเปลี่ยนแปลงช้า | สูง เนื่องจากข้อกำหนดเปลี่ยนแปลงอยู่ตลอดเวลา |
วิธีการนำระบบอัตโนมัติมาใช้ในระเบียบวิธี Agile
ตามนิยามของวิธีการแบบ Agile นั้น จะขจัดขั้นตอนการจัดทำเอกสารที่น่าเบื่อออกไป เพื่อให้สามารถนำแนวคิดใหม่ๆ ไปใช้ได้รวดเร็ว และผู้คนสามารถโต้ตอบกันได้อย่างอิสระ โดยให้ความสำคัญกับการทำงานเชิงสำรวจมากกว่าการทำเอกสาร:
มีความขัดแย้งอย่างแท้จริงระหว่างปรัชญาพื้นฐานของวิธีการแบบ Agile และการทดสอบอัตโนมัติ ทีม Agile แก้ปัญหานี้โดยการจำกัดขอบเขตของสิ่งที่พวกเขาทำการทดสอบอัตโนมัติ แทนที่จะลดจำนวนการทดสอบอัตโนมัติลง: การตรวจสอบจะถูกเขียนขึ้นในสปรินต์เดียวกับฟีเจอร์ ผลักดันลงไปยังระดับยูนิตและ API ซึ่งเป็นระดับที่บำรุงรักษาได้ง่ายที่สุด และเรียกใช้ในทุกๆ บิลด์
ประเด็นพื้นฐานสำหรับการทดสอบอัตโนมัติแบบ Agile
ก่อนที่จะทุ่มกำลังการทำงานของสปรินต์ไปกับการทำงานอัตโนมัติ ให้พิจารณาประเด็นต่างๆ ที่เป็นตัวตัดสินว่าสคริปต์นั้นจะสามารถทำงานให้เสร็จได้หรือไม่:
- เวลาในการออกแบบและเขียนโค้ด: สคริปต์ทุกตัวต้องได้รับการออกแบบ เขียนโค้ด และตรวจสอบเหมือนกับโค้ดที่ใช้งานจริง
- การตรวจสอบความถูกต้องเทียบกับข้อมูลทดสอบ: สคริปต์ที่เสร็จสมบูรณ์แล้วจะต้องได้รับการตรวจสอบความถูกต้องด้วยข้อมูลทดสอบที่มีอยู่ก่อนที่ใครจะสามารถเชื่อถือได้
- วัตถุประสงค์ของการทดสอบ: การทดสอบการทำงานและการทดสอบการถดถอยมีค่าใช้จ่ายในการบำรุงรักษาและอายุการใช้งานที่แตกต่างกัน
- Sprint ความยาว: สปรินต์หนึ่งรอบจะใช้เวลาหนึ่งถึงสี่สัปดาห์ โดยส่วนใหญ่มักใช้เวลาสองสัปดาห์ ซึ่งแทบจะไม่เหลือเวลาสำหรับการเขียนสคริปต์จำนวนมากเลย
ปัจจัยที่สองคือการเปลี่ยนแปลงข้อกำหนด โดยนิยามแล้ว Agile คือเทคนิคสำหรับการตอบสนองต่อการเปลี่ยนแปลงที่เกิดจากลูกค้า ดังนั้นจึงเอื้อต่อการปรับเปลี่ยนบ่อยครั้งตลอดกระบวนการพัฒนา
ในทางตรงกันข้าม การทดสอบแบบอัตโนมัติมีประโยชน์มากที่สุดสำหรับข้อกำหนดที่ค่อนข้างคงที่ มันไม่เหมาะกับความเปลี่ยนแปลงอย่างต่อเนื่องของวิธีการแบบ Agile ซึ่งเป็นเหตุผลว่าทำไมการเลือกสิ่งที่จะทำการอัตโนมัติจึงมีความสำคัญมากกว่าปริมาณของสิ่งที่ทำการอัตโนมัติ
เครื่องมืออัตโนมัติแบบเปรียว
การเลือกที่เกี่ยวข้อง เครื่องมืออัตโนมัติ ปัจจัยสำคัญอีกประการหนึ่งในการนำการทดสอบอัตโนมัติมาใช้ในวิธีการแบบ Agile คือ เครื่องมือทดสอบอัตโนมัติที่มีลิขสิทธิ์ ตัวอย่างเช่น กำหนดเกณฑ์การเข้าถึงด้านความปลอดภัยที่เข้มงวดสำหรับผู้ใช้ประเภทและระดับต่างๆ ซึ่งจำกัดว่าใครบ้างที่สามารถเข้าถึงทรัพยากรของกรอบการทำงานการทดสอบอัตโนมัตินั้นได้
ในทางตรงกันข้าม วิธีการแบบ Agile เน้นการทำงานร่วมกันอย่างเปิดเผยและการมีปฏิสัมพันธ์อย่างอิสระระหว่างสมาชิกในทีม นโยบายการเข้าถึงที่จำกัดจะขัดขวางความสามัคคีนั้น และอาจส่งผลให้เกิดผลลัพธ์ที่ไม่เป็นประโยชน์หรือไม่เอื้อต่อความสำเร็จของโครงการ
สิ่งสำคัญอันดับแรกคือการส่งมอบสคริปต์การทดสอบอัตโนมัติที่มีคุณภาพภายในระยะเวลาที่กระบวนการแบบ Agile กำหนด เลือกกรณีทดสอบที่เหมาะสมอย่างรอบคอบ เพื่อให้สคริปต์ที่ได้สามารถนำกลับมาใช้ใหม่ได้ในภายหลังและยังคงเสร็จสิ้นภายในเวลาที่กำหนด
แม้ในสภาพแวดล้อมแบบ Agile ก็ยังจำเป็นต้องมีการทดสอบบางอย่าง โดยเฉพาะอย่างยิ่งการทดสอบการถดถอย (regression tests) ส่วนถัดไปจะกล่าวถึงสถานการณ์ที่การทดสอบแบบอัตโนมัติเหมาะสม และวิธีการเชื่อมโยงแต่ละสถานการณ์เข้ากับการทดสอบแบบ Agile
การทดสอบระบบอัตโนมัติ Concepts เมื่อนำไปประยุกต์ใช้กับ Agile
ตารางด้านล่างนี้แสดงเงื่อนไขคลาสสิกเจ็ดประการที่สนับสนุนการทดสอบแบบอัตโนมัติ และให้คำตอบแบบ Agile สำหรับแต่ละเงื่อนไข มีเพียงสามเงื่อนไขเท่านั้นที่สามารถนำมาใช้ในสปรินต์แบบ Agile ได้อย่างชัดเจน และทั้งสามเงื่อนไขนั้นมีลักษณะเป็นการทดสอบแบบถดถอย:
| # | แนวคิดการทดสอบอัตโนมัติ | คำตอบของระเบียบวิธีแบบ Agile |
|---|---|---|
| 1 | ต้องทำการทดสอบซ้ำบ่อยๆ | นี่คือจุดที่แนวคิดของการทดสอบการถดถอยเข้ามามีบทบาท |
| 2 | ขั้นตอนการทำงานและการตรวจสอบความถูกต้องของการทดสอบจะค่อยๆ พัฒนาและเปลี่ยนแปลงไปตามกาลเวลา | ไม่เหมาะสำหรับการทดสอบแบบ Agile เนื่องจาก Agile Testing หมายถึงการเปลี่ยนแปลงข้อกำหนดบ่อยครั้ง |
| 3 | การทดสอบนี้เป็นการตรวจสอบกระบวนการทางธุรกิจหรือขั้นตอนการทำงาน มากกว่าการตรวจสอบรูปลักษณ์ สีสัน หรือรูปแบบตาราง | สถานการณ์นี้สามารถพิจารณาได้ว่าเกี่ยวข้องกับการทดสอบด้วยตนเอง |
| 4 | การทดสอบนี้จะสร้างผลลัพธ์ให้กับหน่วยงานกำกับดูแล ซึ่งหน่วยงานดังกล่าวจะกำหนดให้ต้องบันทึกและจัดเก็บผลลัพธ์เหล่านั้นในรูปแบบอิเล็กทรอนิกส์ เพื่อใช้เป็นหลักฐานอย่างเป็นทางการในการปฏิบัติตามข้อกำหนด | ไม่เหมาะสมกับวิธีการแบบ Agile เนื่องจากวิธีการแบบ Agile ไม่ได้เน้นการจัดทำเอกสารอย่างละเอียดถี่ถ้วน |
| 5 | การทดสอบนั้นซ้ำซากมาก หรือมีหลายขั้นตอนที่ต้องดำเนินการให้เหมือนกันทุกครั้ง ซึ่งต้องหลีกเลี่ยงความเหนื่อยล้าของผู้ทดสอบด้วยตนเอง | ไม่เหมาะสมกับวิธีการพัฒนาซอฟต์แวร์แบบ Agile |
| 6 | ผลการทดสอบว่าผ่านหรือไม่ผ่านนั้น สามารถตรวจสอบและบันทึกได้ค่อนข้างง่ายด้วยเครื่องมืออัตโนมัติที่เลือกใช้ | เหมาะสำหรับงานทดสอบการถดถอย (regression test) ในระหว่างการทดสอบแบบ Agile ซึ่งต้องการความสามารถในการทำงานซ้ำๆ และต้องใช้ความพยายามอย่างมาก |
| 7 | การทดสอบจำเป็นต้องป้อนข้อมูลจำนวนมากเข้าสู่แอปพลิเคชัน | สามารถนำไปใช้ในการทดสอบการถดถอยได้ |

.jpg)


