ต่อไปนี้คือรูปแบบการทำงานอัตโนมัติทั่วไปที่คุณอาจต้องการใช้ในระบบ CI
งานพื้นฐาน
สร้าง: การสร้างโปรเจ็กต์จากต้นจะช่วยให้คุณมั่นใจได้ว่าการเปลี่ยนแปลงใหม่จะคอมไพล์อย่างถูกต้อง และไลบรารีและเครื่องมือทั้งหมดเข้ากันได้
การตรวจสอบโค้ดหรือสไตล์: ขั้นตอนนี้ไม่บังคับแต่แนะนำ เมื่อบังคับใช้กฎเกี่ยวกับรูปแบบและทำการการวิเคราะห์แบบคงที่ การตรวจสอบโค้ดจะกระชับและมีจุดมุ่งหมายมากขึ้น
การทดสอบในเครื่องหรือฝั่งโฮสต์: การทดสอบนี้จะทํางานบนเครื่องที่ทําการสร้าง ใน Android มักเป็น JVM จึงทำงานได้รวดเร็วและเชื่อถือได้ รวมถึงการทดสอบ Robolectric ด้วย
การทดสอบที่มีเครื่องควบคุม
การทดสอบที่ทำงานบนโปรแกรมจำลองหรืออุปกรณ์จริงต้องมีการจัดสรรบางอย่าง รอให้อุปกรณ์บูตหรือเชื่อมต่อ และการดำเนินการอื่นๆ ที่เพิ่มความซับซ้อน
การเรียกใช้การทดสอบที่มีเครื่องมือวัดผลใน CI ทำได้หลายวิธี ดังนี้
- อุปกรณ์ที่มีการจัดการจาก Gradle ใช้เพื่อกำหนดอุปกรณ์ที่จะใช้ (เช่น "โปรแกรมจำลอง Pixel 2 ใน API 27") และจัดการการจัดสรรอุปกรณ์ได้
- ระบบ CI ส่วนใหญ่มาพร้อมกับปลั๊กอินของบุคคลที่สาม (หรือที่เรียกว่า "การดำเนินการ" "การผสานรวม" หรือ "ขั้นตอน") เพื่อจัดการโปรแกรมจำลอง Android
- มอบสิทธิ์การทดสอบที่มีการวัดผลไปยังฟาร์มอุปกรณ์ เช่น Firebase Test Lab ฟาร์มอุปกรณ์ใช้เพื่อความน่าเชื่อถือสูงและสามารถทำงานบนโปรแกรมจำลองหรืออุปกรณ์จริงได้
การทดสอบการถดถอยของประสิทธิภาพ
หากต้องการตรวจสอบประสิทธิภาพของแอป เราขอแนะนำให้ใช้คลังการเปรียบเทียบประสิทธิภาพ การทดสอบประสิทธิภาพแบบอัตโนมัติระหว่างการพัฒนาต้องใช้อุปกรณ์จริงเพื่อให้ผลลัพธ์การทดสอบที่สอดคล้องกันและสมจริง
การเรียกใช้การเปรียบเทียบอาจใช้เวลานาน โดยเฉพาะเมื่อคุณมีโค้ดและเส้นทางของผู้ใช้ที่ครอบคลุมสูงซึ่งคุณทำการเปรียบเทียบ แทนที่จะเรียกใช้การเปรียบเทียบทั้งหมดสําหรับฟีเจอร์หรือคอมมิตที่ผสานแล้วทุกรายการ ให้พิจารณาเรียกใช้การเปรียบเทียบเป็นส่วนหนึ่งของบิลด์การบำรุงรักษาตามกำหนดการ เช่น บิลด์รายคืน
การตรวจสอบประสิทธิภาพ
คุณสามารถตรวจสอบการถดถอยของประสิทธิภาพได้โดยใช้การปรับเส้นโค้งแบบขั้น การปรับขั้นตอนจะกําหนดกรอบเวลาแบบเลื่อนของผลลัพธ์จากบิลด์ก่อนหน้าซึ่งคุณเปรียบเทียบกับบิลด์ปัจจุบัน แนวทางนี้รวมผลลัพธ์การเปรียบเทียบหลายรายการเข้าด้วยกันเป็นเมตริกเฉพาะการถดถอยเมตริกเดียว คุณสามารถใช้การปรับแบบขั้นเพื่อลดสัญญาณรบกวนระหว่างการทดสอบการถดถอยได้
วิธีนี้ช่วยลดการเกิดผลบวกลวง ซึ่งอาจเกิดขึ้นเมื่อเวลาการทดสอบมาตรฐานช้าสําหรับบิลด์เดียว จากนั้นจึงกลับมาเป็นปกติอีกครั้ง
ตรวจสอบการทดสอบความครอบคลุมแบบถดถอย
การครอบคลุมของการทดสอบคือเมตริกที่จะช่วยให้คุณและทีมตัดสินใจได้ว่าการทดสอบครอบคลุมการเปลี่ยนแปลงอย่างเพียงพอหรือไม่ แต่ไม่ควรใช้เป็นตัวบ่งชี้เพียงอย่างเดียว การตั้งค่าการตรวจสอบการเกิดปัญหาซ้ำที่ไม่ผ่านการตรวจสอบหรือแสดงคำเตือนเมื่อความครอบคลุมลดลงเมื่อเทียบกับสาขาฐานเป็นแนวทางปฏิบัติทั่วไป