ทดสอบเหมือน Google: แนวทางปฏิบัติที่ดีที่สุดจากยักษ์ใหญ่ในอุตสาหกรรม (04.24.24)

เราสามารถเรียนรู้ได้มากมายจากยักษ์ใหญ่ในอุตสาหกรรมด้วยการสังเกตวิธีการและแนวทางของพวกเขาในเวิร์กโฟลว์

พวกเขาจัดการเพื่อคงกระบวนการทดสอบซอฟต์แวร์ไว้ภายในโค้ดหลายล้านบรรทัดได้อย่างไร

พวกเขาจัดระเบียบเวิร์กโฟลว์กับวิศวกร QA หลายพันคนอย่างไร

พวกเขาจะรับมือกับการขยายโครงการได้อย่างไร

ประสบการณ์ของบริษัทอย่าง Google หรือ Spotify สามารถช่วยปรับปรุงกระบวนการทดสอบในบริษัทขนาดเล็กและ ทีมต่างๆ

เรามาดูกันดีกว่าว่าบริษัทยักษ์ใหญ่ทำการทดสอบอย่างไร

Google: ความสำคัญของการครอบคลุมโค้ด

ถึงกระนั้น วิศวกรหลายคนก็ยังโต้แย้งเกี่ยวกับความสำคัญของการวัดประสิทธิภาพการทดสอบซอฟต์แวร์ดังกล่าว เป็นรหัสครอบคลุม ผู้เชี่ยวชาญจาก Google ยืนยันว่าข้อมูลการครอบคลุมโค้ดอาจเป็นข้อมูลที่มีค่าสำหรับการประเมินความเสี่ยงและคอขวดในกิจกรรมการทดสอบ Carlos Arguelles, Marko Ivanković‎ และ Adam Bender แชร์แนวทางปฏิบัติที่ดีที่สุดสำหรับการครอบคลุมโค้ด:

  • การครอบคลุมโค้ดสามารถช่วยลดจุดบกพร่องและความล้มเหลวได้ ประสบการณ์ของวิศวกรควบคุมคุณภาพจาก Google แสดงให้เห็นว่าการครอบคลุมโค้ดที่เพิ่มขึ้นนำไปสู่การเปลี่ยนแปลงวิธีการและทัศนคติต่อการทดสอบ ทีมที่มีรหัสครอบคลุมเป็นเป้าหมายหลักมักจะทำให้การทดสอบผลิตภัณฑ์ของตนดีขึ้น พวกเขาเขียนโค้ดที่มีประสิทธิภาพมากขึ้นสำหรับการทดสอบเพื่อให้บรรลุเป้าหมายการทดสอบได้ง่ายขึ้นและใช้เวลาน้อยลง
  • ใช้การทดสอบการกลายพันธุ์เพื่อให้แน่ใจว่าครอบคลุมการทดสอบสูง ความครอบคลุมของโค้ดที่สมบูรณ์อาจทำให้สิ้นเปลือง และไม่รับประกันความครอบคลุมของการทดสอบคุณภาพสูง เปอร์เซ็นต์การครอบคลุมโค้ดที่สูงไม่ได้หมายความว่าฟังก์ชันทั้งหมดได้รับการทดสอบอย่างถูกต้อง หมายความว่ารหัสได้รับการทดสอบโดยรวมแล้ว เพื่อให้แน่ใจว่าครอบคลุมการทดสอบคุณภาพสูง ผู้เชี่ยวชาญของ Google แนะนำให้ใช้การทดสอบการกลายพันธุ์ วิธีการนี้รวมถึงการปรับใช้การเปลี่ยนแปลงโค้ดเล็กๆ น้อยๆ และตรวจสอบว่าชุดการทดสอบระบุได้อย่างไร
  • เปอร์เซ็นต์ของความครอบคลุมโค้ดขึ้นอยู่กับหลายปัจจัย เราไม่ควรตั้งเป้าให้โค้ดมีความครอบคลุมสูง แต่ความครอบคลุมต่ำจะนำไปสู่ความล้มเหลวจำนวนมากเช่นกัน และคำถามคือ โค้ดที่ครอบคลุมสำหรับระบบเฉพาะคืออะไร? เพื่อตอบคำถามนี้ เราควรพิจารณาเรื่องต่างๆ เช่น ความวิพากษ์ ความซับซ้อน และความถี่ของการเปลี่ยนโค้ด ความครอบคลุมของรหัสคือการตัดสินใจทางธุรกิจ และเจ้าของผลิตภัณฑ์ควรกำหนดไว้
  • วิเคราะห์สิ่งที่ต้องครอบคลุม เรารับรหัสที่ครอบคลุมไม่ได้ 100% ดังนั้นวิศวกร QA ควรสังเกตว่า ครอบคลุมส่วนที่มีค่าที่สุดของรหัส ทีมนักพัฒนาควรพูดคุยและอย่าคิดว่าจะครอบคลุมโค้ดกี่บรรทัด แต่ควรครอบคลุมอะไรบ้าง
Spotify: กลยุทธ์ที่เชื่อถือได้

Spotify เป็นบริษัทที่เติบโตอย่างรวดเร็ว ก่อตั้งขึ้นในปี 2551 มีพนักงาน 150 คน ในปี 2019 จำนวนพนักงานเพิ่มขึ้นเป็น 4 405 คน ปัจจุบัน Spotify ให้บริการผู้ใช้ประมาณ 300 ล้านคนทั่วโลก ทำให้เป็นบริการสตรีมมิงที่ได้รับความนิยมมากที่สุดในโลก

เราสามารถเรียนรู้บทเรียนเกี่ยวกับวิธีที่ Spotify ขยายการทดสอบและ กระบวนการพัฒนา

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

SpaceX เป็นบริษัทนวัตกรรมที่ขึ้นชื่อเรื่องการขนส่งในอวกาศเชิงพาณิชย์ ระบบการเปิดตัวแบบใช้ซ้ำได้ และ ประสิทธิภาพสูง

Nicholas Chaillan หัวหน้าเจ้าหน้าที่ซอฟต์แวร์ของกองทัพอากาศกล่าวว่าระบบแผนกพัฒนา SpaceX นั้นมีประสิทธิภาพมากกว่าบริษัทที่มีขั้นตอนการทำงานแบบคลาสสิกถึง 5 เท่า SpaceX รับมือกับกระบวนการทดสอบด้วยประสิทธิภาพดังกล่าวอย่างไร

แนวทาง DevOps และ Agile ช่วยให้วิศวกร SpaceX QA ทำการทดสอบระบบอัตโนมัติจำนวนมากได้ ตลอดวงจรการพัฒนา ผู้ทดสอบจะทำการทดสอบอย่างต่อเนื่องเพื่อรับข้อเสนอแนะในทันทีและขจัดความเสี่ยงที่มีอยู่ ด้วยเหตุนี้พวกเขาจึงทำงานเชิงรุก ทดสอบบ่อยและเร็ว

บริษัทได้พัฒนากลยุทธ์เกี่ยวกับวิธีการใช้การทดสอบอย่างต่อเนื่องในกระบวนการพัฒนา

  • จัดลำดับความสำคัญของมูลค่า เช่นเดียวกับ Google SpaceX แนะนำให้ใช้เมตริกความครอบคลุมของโค้ดเพื่อทำความเข้าใจว่าสิ่งใดที่คุณควรทำให้เป็นอัตโนมัติและสิ่งใดไม่ควร ช่วยเพิ่มประสิทธิภาพการทดสอบอย่างต่อเนื่องและปรับปรุงกิจกรรมที่ทำไปแล้ว
  • กุญแจสำคัญคือการทดสอบแบบ end-to-end อัตโนมัติ ทำให้การวิเคราะห์ผลกระทบเป็นส่วนหนึ่งของการผสานรวมอย่างต่อเนื่อง ช่วยให้บริษัทวิเคราะห์ได้ว่าการเพิ่มฟังก์ชันใหม่หรือการเปลี่ยนแปลงโค้ดส่งผลต่อระบบโดยรวมหรือบางส่วนของระบบอย่างไร
  • ทีมควรมีสภาพแวดล้อมการทดสอบที่เสถียรและจำลองได้ง่าย เครื่องมืออย่างเช่น Virtual Machine Snapshot สามารถช่วยบันทึกสถานะข้อมูล กลับสู่การทดสอบ หรือทำงานต่อได้
  • ใช้ปัญญาประดิษฐ์และการเรียนรู้ของเครื่องเพื่อวิเคราะห์รายงานการทดสอบ AI เครื่องมือแบบอิงจะเร่งการปรับใช้และเพิ่มประสิทธิภาพกระบวนการทดสอบ
  • สร้างสถาปัตยกรรมการผสานรวมอย่างต่อเนื่องที่มีประสิทธิภาพ ข้อได้เปรียบหลักของระบบ CI คือช่วงเวลาสั้นๆ ระหว่างการสร้างและการทดสอบโค้ด . การทดสอบอย่างต่อเนื่องต้องมีส่วนร่วมในกระบวนการพัฒนาและเกี่ยวข้องกับประเภทการทดสอบที่จำเป็น
  • สรุป

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


    วิดีโอ YouTube: ทดสอบเหมือน Google: แนวทางปฏิบัติที่ดีที่สุดจากยักษ์ใหญ่ในอุตสาหกรรม

    04, 2024