ทดสอบเหมือน Google: แนวทางปฏิบัติที่ดีที่สุดจากยักษ์ใหญ่ในอุตสาหกรรม (04.24.24)
เราสามารถเรียนรู้ได้มากมายจากยักษ์ใหญ่ในอุตสาหกรรมด้วยการสังเกตวิธีการและแนวทางของพวกเขาในเวิร์กโฟลว์
พวกเขาจัดการเพื่อคงกระบวนการทดสอบซอฟต์แวร์ไว้ภายในโค้ดหลายล้านบรรทัดได้อย่างไร
พวกเขาจัดระเบียบเวิร์กโฟลว์กับวิศวกร QA หลายพันคนอย่างไร
พวกเขาจะรับมือกับการขยายโครงการได้อย่างไร
ประสบการณ์ของบริษัทอย่าง Google หรือ Spotify สามารถช่วยปรับปรุงกระบวนการทดสอบในบริษัทขนาดเล็กและ ทีมต่างๆ
เรามาดูกันดีกว่าว่าบริษัทยักษ์ใหญ่ทำการทดสอบอย่างไร
Google: ความสำคัญของการครอบคลุมโค้ดถึงกระนั้น วิศวกรหลายคนก็ยังโต้แย้งเกี่ยวกับความสำคัญของการวัดประสิทธิภาพการทดสอบซอฟต์แวร์ดังกล่าว เป็นรหัสครอบคลุม ผู้เชี่ยวชาญจาก Google ยืนยันว่าข้อมูลการครอบคลุมโค้ดอาจเป็นข้อมูลที่มีค่าสำหรับการประเมินความเสี่ยงและคอขวดในกิจกรรมการทดสอบ Carlos Arguelles, Marko Ivanković และ Adam Bender แชร์แนวทางปฏิบัติที่ดีที่สุดสำหรับการครอบคลุมโค้ด:
- การครอบคลุมโค้ดสามารถช่วยลดจุดบกพร่องและความล้มเหลวได้ ประสบการณ์ของวิศวกรควบคุมคุณภาพจาก Google แสดงให้เห็นว่าการครอบคลุมโค้ดที่เพิ่มขึ้นนำไปสู่การเปลี่ยนแปลงวิธีการและทัศนคติต่อการทดสอบ ทีมที่มีรหัสครอบคลุมเป็นเป้าหมายหลักมักจะทำให้การทดสอบผลิตภัณฑ์ของตนดีขึ้น พวกเขาเขียนโค้ดที่มีประสิทธิภาพมากขึ้นสำหรับการทดสอบเพื่อให้บรรลุเป้าหมายการทดสอบได้ง่ายขึ้นและใช้เวลาน้อยลง
- ใช้การทดสอบการกลายพันธุ์เพื่อให้แน่ใจว่าครอบคลุมการทดสอบสูง ความครอบคลุมของโค้ดที่สมบูรณ์อาจทำให้สิ้นเปลือง และไม่รับประกันความครอบคลุมของการทดสอบคุณภาพสูง เปอร์เซ็นต์การครอบคลุมโค้ดที่สูงไม่ได้หมายความว่าฟังก์ชันทั้งหมดได้รับการทดสอบอย่างถูกต้อง หมายความว่ารหัสได้รับการทดสอบโดยรวมแล้ว เพื่อให้แน่ใจว่าครอบคลุมการทดสอบคุณภาพสูง ผู้เชี่ยวชาญของ Google แนะนำให้ใช้การทดสอบการกลายพันธุ์ วิธีการนี้รวมถึงการปรับใช้การเปลี่ยนแปลงโค้ดเล็กๆ น้อยๆ และตรวจสอบว่าชุดการทดสอบระบุได้อย่างไร
- เปอร์เซ็นต์ของความครอบคลุมโค้ดขึ้นอยู่กับหลายปัจจัย เราไม่ควรตั้งเป้าให้โค้ดมีความครอบคลุมสูง แต่ความครอบคลุมต่ำจะนำไปสู่ความล้มเหลวจำนวนมากเช่นกัน และคำถามคือ โค้ดที่ครอบคลุมสำหรับระบบเฉพาะคืออะไร? เพื่อตอบคำถามนี้ เราควรพิจารณาเรื่องต่างๆ เช่น ความวิพากษ์ ความซับซ้อน และความถี่ของการเปลี่ยนโค้ด ความครอบคลุมของรหัสคือการตัดสินใจทางธุรกิจ และเจ้าของผลิตภัณฑ์ควรกำหนดไว้
- วิเคราะห์สิ่งที่ต้องครอบคลุม เรารับรหัสที่ครอบคลุมไม่ได้ 100% ดังนั้นวิศวกร QA ควรสังเกตว่า ครอบคลุมส่วนที่มีค่าที่สุดของรหัส ทีมนักพัฒนาควรพูดคุยและอย่าคิดว่าจะครอบคลุมโค้ดกี่บรรทัด แต่ควรครอบคลุมอะไรบ้าง
Spotify เป็นบริษัทที่เติบโตอย่างรวดเร็ว ก่อตั้งขึ้นในปี 2551 มีพนักงาน 150 คน ในปี 2019 จำนวนพนักงานเพิ่มขึ้นเป็น 4 405 คน ปัจจุบัน Spotify ให้บริการผู้ใช้ประมาณ 300 ล้านคนทั่วโลก ทำให้เป็นบริการสตรีมมิงที่ได้รับความนิยมมากที่สุดในโลก
เราสามารถเรียนรู้บทเรียนเกี่ยวกับวิธีที่ Spotify ขยายการทดสอบและ กระบวนการพัฒนา
- กำหนดเป้าหมายผลิตภัณฑ์สำหรับทีม QA Spotify มีทีมข้ามสายงาน ทุกทีมมีเป้าหมายและทักษะเฉพาะในการบรรลุเป้าหมายเหล่านี้ โครงสร้างทีมขึ้นอยู่กับเป้าหมาย ดังนั้นบางทีมจึงมีเพียงนักพัฒนาและบางทีมก็มีนักพัฒนาและผู้ทดสอบ ดังนั้น ผู้ทดสอบจึงร่วมมืออย่างใกล้ชิดกับทีมพัฒนาและมุ่งเน้นที่เป้าหมายหลักของผลิตภัณฑ์ วิธีการดังกล่าวช่วยให้ Spotify สามารถปรับขนาดกระบวนการพัฒนาได้อย่างมีประสิทธิภาพ
- การทดสอบอัตโนมัติเป็นเครื่องมือ แต่ไม่ใช่ยาครอบจักรวาล ผู้จัดการการทดสอบและพัฒนาใน Spotify Kristian Karl อ้างว่าระบบอัตโนมัติแทนที่ผู้ทดสอบซอฟต์แวร์ไม่ได้ การทดสอบต้องใช้ประสบการณ์และความรู้ของมนุษย์ การทดสอบระบบอัตโนมัติเป็นเครื่องมือที่มีประสิทธิภาพในการเร่งกระบวนการ แต่มนุษย์จะตัดสินใจและวิเคราะห์รายงานอัตโนมัติ Spotify ใช้ระบบอัตโนมัติเป็นเครื่องมือวัดขนาดอย่างใดอย่างหนึ่ง ช่วยให้ผู้ทดสอบออกจากกิจวัตรสำหรับอัลกอริทึมและมุ่งเน้นไปที่เป้าหมายของผลิตภัณฑ์ได้
SpaceX เป็นบริษัทนวัตกรรมที่ขึ้นชื่อเรื่องการขนส่งในอวกาศเชิงพาณิชย์ ระบบการเปิดตัวแบบใช้ซ้ำได้ และ ประสิทธิภาพสูง
Nicholas Chaillan หัวหน้าเจ้าหน้าที่ซอฟต์แวร์ของกองทัพอากาศกล่าวว่าระบบแผนกพัฒนา SpaceX นั้นมีประสิทธิภาพมากกว่าบริษัทที่มีขั้นตอนการทำงานแบบคลาสสิกถึง 5 เท่า SpaceX รับมือกับกระบวนการทดสอบด้วยประสิทธิภาพดังกล่าวอย่างไร
แนวทาง DevOps และ Agile ช่วยให้วิศวกร SpaceX QA ทำการทดสอบระบบอัตโนมัติจำนวนมากได้ ตลอดวงจรการพัฒนา ผู้ทดสอบจะทำการทดสอบอย่างต่อเนื่องเพื่อรับข้อเสนอแนะในทันทีและขจัดความเสี่ยงที่มีอยู่ ด้วยเหตุนี้พวกเขาจึงทำงานเชิงรุก ทดสอบบ่อยและเร็ว
บริษัทได้พัฒนากลยุทธ์เกี่ยวกับวิธีการใช้การทดสอบอย่างต่อเนื่องในกระบวนการพัฒนา
ทุกบริษัทมีกลยุทธ์ กระบวนการ และแนวทางการทดสอบ แต่ละทีมจะเลือกและปรับกระบวนการทดสอบตามเป้าหมายสูงสุดและความสามารถของผลิตภัณฑ์ งานหลักของผู้เชี่ยวชาญคือการคิดถึงลูกค้าและผู้ใช้ปลายทาง ปรับให้เข้ากับความต้องการใหม่ และนำประสบการณ์ที่ดีที่สุดในอุตสาหกรรมมาใช้
วิดีโอ YouTube: ทดสอบเหมือน Google: แนวทางปฏิบัติที่ดีที่สุดจากยักษ์ใหญ่ในอุตสาหกรรม
04, 2024