ขั้นตอนใดของ Agile (SCRUM) ที่เราควรเริ่มสร้างการทดสอบระบบอัตโนมัติ


9

พื้นหลังเล็กน้อยของฉัน - ฉันเป็นผู้ทดสอบด้วยตนเองเป็นเวลาเกือบ 2 ปีในสภาพแวดล้อม Agile โดยใช้ SCRUM (1-2 สัปดาห์ในการวิ่ง) ดังนั้นฉันต้องการที่จะแนะนำการทดสอบระบบอัตโนมัติในงานของฉันโดยใช้ Selenium WebDriver (กับ Java)

คำถามของฉันอยู่ในระหว่างเมื่อฉันควรทดสอบการทำงานด้วยตนเองและเมื่อฉันควรแปลงพวกเขาสำหรับการทดสอบอัตโนมัติ

ฉันได้อ่านและรับแนวทางที่แตกต่างเช่น:

  1. เมื่อเริ่มการวิ่งใหม่ให้แปลงเรื่องราวของผู้ใช้เป็นสคริปต์อัตโนมัติจากการวิ่งก่อนหน้านี้หรือ;
  2. แปลงเรื่องราวของผู้ใช้ภายในการวิ่งเดียวกัน

คำแนะนำใด ๆ / s จะได้รับการชื่นชมอย่างมาก ขอบคุณล่วงหน้า.


4
โปรดอย่าโพสต์คำถามเดียวกันข้ามไซต์แลกเปลี่ยนสแต็กสองแห่ง โปรดลบหนึ่งรายการ
R Sahu

2
ครอสโพสต์ที่sqa.stackexchange.com/questions/27017/...
R Sahu

คำตอบ:


13

ทดสอบอัตโนมัติ (และการทดสอบอื่น ๆ ทั้งหมด) ควรเป็นส่วนหนึ่งของความหมายของการทำ สิ่งนี้เพื่อสร้างผลิตภัณฑ์ที่อาจเป็นไปได้ คุณสามารถจัดส่งได้หรือไม่หากไม่ผ่านการทดสอบ

การทดสอบควรเป็นแนวทางของทีมทั้งหมดดังนั้นการทดสอบระบบอัตโนมัติจึงไม่ใช่ความรับผิดชอบของผู้ทดสอบ เริ่มคิดเกี่ยวกับการทดสอบโดยเร็วที่สุดในกระบวนการ

การทดสอบระบบอัตโนมัติมีความสำคัญอย่างยิ่งใน Agile เพราะ:

ความคล่องตัวขององค์กรถูก จำกัด ด้วยความคล่องตัวทางเทคนิค

กล่าวอีกนัยหนึ่งเมื่อคุณช้าในการเปลี่ยนแปลงผลิตภัณฑ์ของคุณแล้วมันไม่สำคัญว่าคุณจะจัดโครงสร้างทีมของคุณองค์กรของคุณหรือกรอบที่คุณนำมาใช้คุณจะช้าในการตอบสนองต่อการเปลี่ยนแปลง

https://less.works/less/technical-excellence/index.html

หากคุณเลื่อนการทดสอบไปจนถึงการทำซ้ำอีกครั้งคุณจะล้าหลังเสมอ ทำให้เปลี่ยนทิศทางของผลิตภัณฑ์ได้ยากขึ้นเนื่องจากยากต่อการปรับโครงสร้างและป้องกันพฤติกรรมภายนอกของผลิตภัณฑ์ให้ปลอดภัย การทดสอบด้วยตนเองซ้ำ ๆ เป็นกุญแจสำคัญในการทำให้คุณช้าลงทำให้เป็นไปโดยอัตโนมัติ!

ผู้ทดสอบจำนวนมากจะบอกคุณว่าคุณไม่ควรเริ่มทดสอบแบบ end-to-end จนกว่าอินเทอร์เฟซผลิตภัณฑ์จะเสถียร อย่ารอช้าใช้ประโยชน์จากPageObjects แทนและให้แน่ใจว่าการทดสอบของคุณสามารถบำรุงรักษาได้และทำให้เป็นความรับผิดชอบของนักพัฒนาในการสร้างและแก้ไข


ฉันไม่เห็นด้วยกับ "ควร" ครั้งแรก คำจำกัดความของการทำคือสิ่งที่ทีมการต่อสู้ต้องทำงานด้วยตัวเอง หากทีมพิจารณาการทดสอบอัตโนมัติที่สำคัญพวกเขาจะรวมมันเป็นส่วนหนึ่งของคำจำกัดความ อย่างไรก็ตามกระบวนการเองไม่ได้บอกว่าพวกเขาจะต้องหรือแม้กระทั่งว่าพวกเขาควร มันเป็นสิ่งที่ขึ้นอยู่กับทีมโดยสิ้นเชิงและไม่มีคำตอบที่ถูกผิดผิดหรือผิดชอบ
2560

@aroth ฉันเห็นด้วยกับคุณ แต่ในเกือบทุกกรณีคุณสร้างผลิตภัณฑ์ซอฟต์แวร์ที่มีขนาดใหญ่กว่าที่คุณต้องการเพิ่มการทดสอบในกระทรวง ดังนั้นฉันคิดว่ามันเป็นการดีที่จะบอกคนที่คุณควรอย่างน้อยคิดอย่างจริงจังเกี่ยวกับเรื่องนี้ ในฐานะผู้ทดสอบฉันเชื่อว่าการทดสอบในตอนท้ายโดยทีมแยกเป็นขั้นตอนแรกสำหรับ Wagile แต่ใช่มีสถานการณ์และหรือกรณีที่การทดสอบอาจไม่จำเป็นต้องมี
Niels van Reijmersdal

2

สิ่งสำคัญคือคุณจะไม่ทำเครื่องหมายเรื่องราวให้สมบูรณ์เว้นแต่คุณจะเขียนแบบทดสอบอัตโนมัติสำหรับเรื่องนั้น

ดังนั้น 1 ดูเหมือนว่าจะออกไปในขณะที่คุณกำลังเขียนการทดสอบสำหรับงานที่เสร็จสมบูรณ์ในการวิ่งก่อนหน้านี้ เกิดอะไรขึ้นถ้าการทดสอบล้มเหลว


ดังนั้นถ้าในสัปดาห์หนึ่งของการวิ่งใหม่ไม่มีเรื่องราวของผู้ใช้ในการวิ่งนั้นอยู่ในสถานะที่สามารถทดสอบการถดถอยได้คุณแนะนำให้ OP ควรกลับบ้านและไม่ทำอะไรเลย? ฟังดูไม่ค่อยมีประสิทธิภาพสำหรับฉัน ;-)
Doc Brown

ผู้ทดสอบควรใช้สัปดาห์แรกนั้นเพื่อตั้งคำถาม "hmmmm ในฐานะผู้ใช้ที่ฉันคาดหวังว่าเพลงประกอบบนหน้าเว็บของฉัน .. " ค้นหาข้อบกพร่องในเรื่องที่ไม่สมบูรณ์และมักจะสร้างปัญหา ผู้ที่ได้รับอนุญาตจะกล่าวว่าพวกเขาไม่สามารถเริ่มเขียนแผนการทดสอบได้จนกว่าจะมีการเขียน
Ewan

@DocBrown: ในหนึ่งสัปดาห์ของการวิ่งครั้งใหม่ผู้ทดสอบมีจำนวนงานที่น่าเหลือเชื่อ พวกเขาต้องเข้าใจสิ่งที่นักพัฒนากำลังสร้างโดยทำงานร่วมกับเจ้าของผลิตภัณฑ์และนักพัฒนา พวกเขาต้องทำงานร่วมกับนักพัฒนาซอฟต์แวร์เพื่อให้แน่ใจว่าพวกเขาทำให้โค้ดทดสอบได้ พวกเขาสามารถเริ่มทำงานกับแผนการทดสอบอัตโนมัติ พวกเขายังสามารถเริ่มเขียนแบบทดสอบ หากคุณมีกรอบการทดสอบที่เหมาะสมที่การทดสอบของคุณถูกเขียนในระดับที่สูงของนามธรรมคุณสามารถเขียนพวกเขาก่อนที่รหัสพร้อม
ไบรอัน Oakley

1

เป็นการดีที่คุณควรเขียนการทดสอบอัตโนมัติใน sprint เดียวกับที่เขียนโค้ด รหัสไม่ควรถูกพิจารณาว่า "เสร็จสิ้น" จนกว่าจะมีการเขียนการทดสอบอัตโนมัติและคุณจะต้องรับรหัสไปยังสถานะ "เสร็จสิ้น" ในตอนท้ายของการวิ่ง

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

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


0

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


1
ไม่สามารถใช้งานได้กับเครื่องมือทดสอบ UI เช่น Selenium คุณต้องมี UI ที่ใช้งานได้และเสถียรเพื่อให้สามารถสร้างการทดสอบได้
Doc Brown

@DocBrown: ฉันไม่คิดว่ามันเป็นเรื่องจริง หากคุณให้ข้อมูลจำเพาะสำหรับหน้าเว็บใหม่ฉันสามารถเริ่มต้น (และอาจจะเสร็จสิ้น!) เขียนการทดสอบอัตโนมัติก่อนที่จะเขียนหน้า คุณเพียงแค่ต้องร่วมมือกับนักพัฒนาเพื่อให้คุณเห็นด้วยกับสิ่งที่โครงสร้างหน้าคืออะไรรหัสองค์ประกอบคืออะไรและอื่น ๆ
ไบรอัน Oakley

0

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


0

ตามที่ได้ระบุไว้ในคำตอบอื่นเมื่อการทดสอบที่เกิดขึ้นควรจะเป็นส่วนหนึ่งของความหมายของการทำ อย่างไรก็ตามฉันไม่เห็นด้วยกับคำตอบบางอย่างดังนั้นฉันต้องการขยายด้วยประสบการณ์ที่ฉันได้พบ

ในสภาพแวดล้อมที่คล่องตัวอย่างแท้จริงทุกคนสามารถทำทุกอย่างได้ จะไม่มีใครทุ่มเทให้กับการทดสอบ 100% คุณจะต้องพัฒนาทักษะเพื่อช่วยในการทำงาน UI พื้นฐานหรืออย่างอื่น อย่างไรก็ตามเราไม่ค่อยมีชีวิตอยู่ในโลกอุดมคติ

สิ่งที่ฉันอยากจะแนะนำก็คือใช้วิธีไฮบริดเล็กน้อย สำหรับนิยามของเสร็จฉันจะบอกว่าการทดสอบด้วยตนเองควรเป็นส่วนหนึ่งของ Sprint งานเขียนโค้ดคุณรู้ว่ามันทำงานและมีรายงานข้อผิดพลาดใด ๆ ทันทีอาจได้รับการแก้ไขก่อน Sprint จะจบเพื่อให้คุณสามารถวางแผนต่อไป หนึ่ง. โดยมุ่งเน้นการทดสอบด้วยตนเองคุณจะคุ้นเคยกับสิ่งที่รหัสควรทำ ในตอนต้นของ Sprint ถัดไปเมื่อคุณอาจไม่ต้องทำอะไรมากคุณสามารถตั้งค่าการทดสอบอัตโนมัติที่สามารถเรียกใช้เป็นส่วนหนึ่งของกระบวนการสร้างเพื่อป้องกันข้อผิดพลาดในการถดถอย


ฉันไม่เคยเห็นการวิ่งที่ไม่มีอะไรมากมายให้ทำในการวิ่งไปตามเป้าหมายในวันที่หนึ่ง ในการเขียนการทดสอบอัตโนมัติต้องมีการทำงานร่วมกันและการวางแผนซึ่งควรเริ่มในชั่วโมงแรกของวันแรกของการวิ่ง
Bryan Oakley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.