ประเภทการทำงานอัตโนมัติของ CI

ต่อไปนี้คือรูปแบบการทำงานอัตโนมัติทั่วไปที่คุณอาจต้องการใช้ในระบบ CI

งานพื้นฐาน

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

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

  • การทดสอบในเครื่องหรือฝั่งโฮสต์: การทดสอบนี้จะทํางานบนเครื่องที่ทําการสร้าง ใน Android มักเป็น JVM จึงทำงานได้รวดเร็วและเชื่อถือได้ รวมถึงการทดสอบ Robolectric ด้วย

การทดสอบที่มีเครื่องควบคุม

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

การเรียกใช้การทดสอบที่มีเครื่องมือวัดผลใน CI ทำได้หลายวิธี ดังนี้

  • อุปกรณ์ที่มีการจัดการจาก Gradle ใช้เพื่อกำหนดอุปกรณ์ที่จะใช้ (เช่น "โปรแกรมจำลอง Pixel 2 ใน API 27") และจัดการการจัดสรรอุปกรณ์ได้
  • ระบบ CI ส่วนใหญ่มาพร้อมกับปลั๊กอินของบุคคลที่สาม (หรือที่เรียกว่า "การดำเนินการ" "การผสานรวม" หรือ "ขั้นตอน") เพื่อจัดการโปรแกรมจำลอง Android
  • มอบสิทธิ์การทดสอบที่มีการวัดผลไปยังฟาร์มอุปกรณ์ เช่น Firebase Test Lab ฟาร์มอุปกรณ์ใช้เพื่อความน่าเชื่อถือสูงและสามารถทำงานบนโปรแกรมจำลองหรืออุปกรณ์จริงได้

การทดสอบการถดถอยของประสิทธิภาพ

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

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

การตรวจสอบประสิทธิภาพ

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

วิธีนี้ช่วยลดการเกิดผลบวกลวง ซึ่งอาจเกิดขึ้นเมื่อเวลาการทดสอบมาตรฐานช้าสําหรับบิลด์เดียว จากนั้นจึงกลับมาเป็นปกติอีกครั้ง

ตรวจสอบการทดสอบความครอบคลุมแบบถดถอย

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