Android บทช่วยสอนการทดสอบแอปพร้อมกรอบการทำงานอัตโนมัติ
Why Android การทดสอบ?
Android เป็นระบบปฏิบัติการที่ใหญ่ที่สุดในโลก ในเวลาเดียวกัน Android มีการแยกส่วน มีอุปกรณ์มากมายและ Android เวอร์ชันที่แอปของคุณต้องเข้ากันได้
ไม่สำคัญว่าคุณจะลงทุนไปกับการออกแบบและการใช้งานมากน้อยเพียงใด ข้อผิดพลาดเป็นสิ่งที่หลีกเลี่ยงไม่ได้ และจุดบกพร่องจะปรากฏขึ้น
Android กลยุทธ์การทดสอบ
กลยุทธ์การทดสอบ Android ที่ถูกต้องควรมีสิ่งต่อไปนี้
- การทดสอบหน่วย
- การทดสอบบูรณาการ
- Operaการทดสอบเชิงลึก
- การทดสอบระบบ
การทดสอบหน่วย
การทดสอบยูนิตประกอบด้วยชุดโปรแกรมหนึ่งชุดหรือมากกว่านั้น ซึ่งออกแบบมาเพื่อตรวจสอบหน่วยย่อยของโค้ดต้นฉบับ เช่น วิธีการหรือคลาส
Android แพลตฟอร์มมาพร้อมการบูรณาการล่วงหน้า จูนิต กรอบการทำงาน 3.0 เป็นเฟรมเวิร์กโอเพ่นซอร์สสำหรับการทำงานอัตโนมัติ การทดสอบหน่วย. Android Testing Framework เป็นเครื่องมืออันทรงพลังสำหรับนักพัฒนาในการเขียนโปรแกรมทดสอบหน่วยที่มีประสิทธิภาพ
นอกเหนือจากการทดสอบหน่วยคือการทดสอบส่วนต่อประสานกับผู้ใช้ (UI) การทดสอบเหล่านี้เกี่ยวข้องกับองค์ประกอบ UI ของแอปพลิเคชันเป้าหมายของคุณ การทดสอบ UI ช่วยให้มั่นใจได้ว่าแอปพลิเคชันของคุณส่งคืนเอาต์พุต UI ที่ถูกต้องเพื่อตอบสนองต่อลำดับการกระทำของผู้ใช้บนอุปกรณ์
วิธีทั่วไปในการทดสอบประสิทธิภาพ UI บนอุปกรณ์คือ Android การประพันธ์ดนตรี- แต่นี่มีปัญหาด้านประสิทธิภาพ หนึ่งในเครื่องมือที่ดีที่สุดในการดำเนินการทดสอบ UI Android is หุ่นยนต์.
การทดสอบบูรณาการ
In การทดสอบการผสานรวมโมดูลที่ทดสอบทุกหน่วยถูกรวมและตรวจสอบแล้ว ใน Androidการทดสอบการรวมมักจะเกี่ยวข้องกับการตรวจสอบการรวมด้วยAndroid ส่วนประกอบต่างๆ เช่น การทดสอบบริการ การทดสอบกิจกรรม การทดสอบผู้ให้บริการเนื้อหา ฯลฯ
มีกรอบการทดสอบมากมายที่ใช้เพื่อดำเนินการทดสอบการรวมระบบ Android เช่น ทรอยด์, โรโบเลคทริค, โรโบเทียม
Operaการทดสอบทางภาษา
- Operational เรียกอีกอย่างว่าการทดสอบการทำงานหรือการทดสอบการยอมรับ เป็นการทดสอบระดับสูงที่ออกแบบมาเพื่อตรวจสอบความสมบูรณ์และความถูกต้องของการใช้งาน
- In Android, ฟิตเนส เป็นกรอบงานโอเพ่นซอร์สที่ทำให้การทดสอบการใช้งานสำหรับแอปพลิเคชันเป้าหมายเป็นเรื่องง่าย
การทดสอบระบบ
In การทดสอบระบบ ระบบได้รับการทดสอบโดยรวมและมีการตรวจสอบปฏิสัมพันธ์ระหว่างส่วนประกอบ ซอฟต์แวร์ และฮาร์ดแวร์
In Android,การทดสอบระบบตามปกติประกอบด้วย
- การทดสอบ GUI
- การทดสอบการใช้งาน
- การทดสอบประสิทธิภาพ
- การทดสอบความเครียด
ในรายการข้างต้น การทดสอบประสิทธิภาพ ได้รับการมุ่งเน้นมากขึ้น คุณสามารถใช้เครื่องมือเช่น เทรซวิว เพื่อทำการทดสอบประสิทธิภาพ Android เครื่องมือนี้สามารถช่วยคุณแก้ไขข้อบกพร่องของแอปพลิเคชันและโปรไฟล์ประสิทธิภาพของแอปพลิเคชันได้
การทดสอบ Android อัตโนมัติ
เนื่องจากระบบปฏิบัติการ Android นั้นแยกส่วน การทดสอบบนอุปกรณ์จำนวนมากจึงมีความจำเป็น แต่การทำเช่นนี้ก็จะทำให้คุณต้องเสียเงินด้วยเช่นกัน Android การทดสอบสามารถช่วยลดต้นทุนได้
ประโยชน์ของการทดสอบระบบแอนดรอยด์อัตโนมัติ
- ลดเวลาในการดำเนินการกรณีทดสอบ
- เพิ่มประสิทธิผลของกระบวนการพัฒนาของคุณ
- การตรวจจับข้อบกพร่องตั้งแต่เนิ่นๆ ประหยัดค่าใช้จ่ายในการบำรุงรักษาซอฟต์แวร์
- พบและแก้ไขข้อบกพร่องในการใช้งานได้อย่างรวดเร็ว
- ตรวจสอบคุณภาพของซอฟต์แวร์
เราจะศึกษากรอบการทำงานทั้ง 2 กรอบต่อไปนี้
- Android กรอบการทดสอบ
- กรอบการทดสอบ Robolectric
Android กรอบการทดสอบ
หนึ่งในกรอบการทดสอบมาตรฐานสำหรับ Android การประยุกต์ใช้คือ Android กรอบการทดสอบ- เป็นเฟรมเวิร์กการทดสอบที่ทรงพลังและใช้งานง่ายซึ่งผสานรวมเข้ากับ Android เครื่องมือ SDK
- แพ็คเกจสมัคร คือแอปพลิเคชันเป้าหมายของคุณซึ่งจำเป็นต้องได้รับการทดสอบ
- เครื่องมือวัดTestRunner คือ กรณีทดสอบ นักวิ่งที่ดำเนินการกรณีทดสอบกับแอปพลิเคชันเป้าหมาย ประกอบด้วย:
2) เครื่องมือทดสอบ: เครื่องมือ SDK สำหรับการทดสอบการสร้าง พวกมันถูกรวมเข้าไว้ด้วยกัน Eclipse IDE หรือเรียกใช้เป็นบรรทัดคำสั่ง
2b) ลิงรันเนอร์: เครื่องมือที่ให้ API สำหรับการเขียนโปรแกรมที่ควบคุม Android อุปกรณ์หรือโปรแกรมจำลองภายนอก Android รหัส.
- แพคเกจทดสอบ จัดเป็นโครงการทดสอบ แพคเกจนี้เป็นไปตามแบบแผนการตั้งชื่อ หากแอปพลิเคชันภายใต้การทดสอบมีชื่อแพ็คเกจเป็น “com.mydomain.myapp” มากกว่าแพ็คเกจทดสอบควรเป็น “com.mydomain.myapp.test” แพ็คเกจทดสอบประกอบด้วย 2 ออบเจ็กต์ดังนี้:
3a) คลาสกรณีทดสอบ: รวมวิธีทดสอบเพื่อดำเนินการกับแอปพลิเคชันเป้าหมาย
3b) Mock object : รวมข้อมูลจำลองที่จะใช้เป็นตัวอย่างอินพุตสำหรับกรณีทดสอบ
Android คลาสกรณีทดสอบ
- กรณีทดสอบ รวมถึง JUnit วิธีการทำงาน JUnit ทดสอบ
- ชุดทดสอบ ใช้ในการรันชุดของกรณีทดสอบ
- เครื่องมือวัดTestSuite เป็น TestSuite ที่แทรก Instrumentation เข้าไปใน InstrumentationTestCase ก่อนที่จะรัน
- เครื่องมือวัดTestRunner เป็นตัวดำเนินการกรณีทดสอบที่ดำเนินการกรณีทดสอบกับแอปพลิเคชันเป้าหมาย
- Androidกรณีทดสอบ ขยาย JUnit กรณีทดสอบ ประกอบด้วยวิธีการเข้าถึงทรัพยากรต่างๆ เช่น บริบทของกิจกรรม
- ApplicationTestCase ตรวจสอบคลาสแอปพลิเคชันในสภาพแวดล้อมที่มีการควบคุม
- เครื่องมือวัดTestCase ตรวจสอบคุณลักษณะเฉพาะหรือพฤติกรรมของแอปพลิเคชันเป้าหมาย เช่น ตรวจสอบผลลัพธ์ UI ของแอปพลิเคชัน
- กิจกรรมTestCase เป็นคลาสพื้นฐานที่รองรับการทดสอบกิจกรรมแอปพลิเคชัน
- ผู้ให้บริการTestCase เป็นคลาสสำหรับการทดสอบ ContentProvider เดียว
- บริการ TestCase ใช้เพื่อทดสอบคลาสบริการในสภาพแวดล้อมการทดสอบ นอกจากนี้ยังรองรับวงจรชีวิตของบริการด้วย
- SingeLauchActivityTestCase ใช้เพื่อทดสอบกิจกรรมเดี่ยวด้วย InstrumentationTestCase
- กิจกรรมหน่วยทดสอบกรณี ใช้เพื่อทดสอบกิจกรรมที่แยกเดี่ยว
- กิจกรรมเครื่องมือวัดTestCase2 ขยาย JUnit คลาส TestCase มันเชื่อมต่อคุณกับแอปพลิเคชันเป้าหมายด้วยเครื่องมือวัด ด้วยคลาสนี้ คุณสามารถเข้าถึงส่วนประกอบ GUI ของแอปพลิเคชันและส่งเหตุการณ์ UI (เหตุการณ์การกดแป้นพิมพ์หรือการสัมผัส) ไปยัง UI
ด้านล่างนี้เป็นตัวอย่างของ ActivityInstrumentationTestCase ซึ่งจะตรวจสอบการทำงานของ UI ของแอปพลิเคชันเครื่องคิดเลข และตรวจสอบความถูกต้องของเอาท์พุต UI
กรอบการทดสอบโรโบเล็กทริค
การทดสอบการใช้ Android การทดสอบเฟรมเวิร์กด้วยอุปกรณ์หรือโปรแกรมจำลองเป็นเรื่องยาก การทดสอบการสร้างและดำเนินการนั้นช้าและใช้ความพยายามในการพัฒนาอย่างมาก เพื่อแก้ไขปัญหานี้ มีทางเลือกอื่น – โรโบอิเล็คทริค กรอบการทดสอบ
กรอบ Robolectric ช่วยให้คุณสามารถรันได้ Android การทดสอบ โดยตรง บนเจวีเอ็ม ไม่มี ความต้องการอุปกรณ์หรือโปรแกรมจำลอง
คลาสกรณีทดสอบ Robolectric
- ตามที่แสดงด้านบน Robolectric สามารถดำเนินการดังต่อไปนี้:
- ลงทะเบียนและสร้างคลาส Shadow
- สกัดกั้นการโหลดของ Android ชั้น
- ใช้ javaassist เพื่อแทนที่เนื้อความของวิธีการ Android ชั้น
- ผูกวัตถุ Shadow ไปที่ Android ชั้น
- สิ่งนี้ทำให้โค้ดที่อยู่ระหว่างการทดสอบสามารถดำเนินการได้โดยไม่ต้อง Android สิ่งแวดล้อม
กรอบการทดสอบอื่น ๆ
นอกจากกรอบการทดสอบที่กล่าวมาข้างต้นแล้ว ยังมีกรอบการทดสอบอื่นๆ อีกมากมาย เช่น:
- Android รายงานจูนิตนักวิ่งทดสอบเครื่องมือวัดแบบกำหนดเองสำหรับ Android ที่สร้างรายงาน XML เพื่อใช้งานร่วมกับเครื่องมืออื่น ๆ
- ด่วน
- Appium
ตำนานของ Android การทดสอบ
หลายๆองค์กรพัฒนาระบบแอนดรอยด์ การทดสอบ กลยุทธ์ที่ตั้งอยู่บนพื้นฐานของความเข้าใจผิดทั่วไป ในส่วนนี้จะตรวจสอบตำนานและความเป็นจริงที่เป็นที่นิยมบางประการของ Android การทดสอบ
ตำนาน #1:ทั้งหมด Android อุปกรณ์ก็เหมือนกัน… การทดสอบบนอีมูเลเตอร์ก็เพียงพอแล้ว
เริ่มต้นด้วยตัวอย่างง่ายๆ แอปพลิเคชันทำงานได้อย่างสมบูรณ์แบบบนโปรแกรมจำลอง แต่บนอุปกรณ์จริงบางรุ่น แอปจะขัดข้องระหว่างการดำเนินการ
อีมูเลเตอร์ก็มี ไม่เพียงพอ สำหรับการทดสอบมือถือของคุณ คุณต้องทดสอบแอปของคุณบนอุปกรณ์จริง
เรื่องที่ 2:การทดสอบบนอุปกรณ์ทั่วไปบางอย่างก็เพียงพอแล้ว
- บนอุปกรณ์ที่แตกต่างกัน แอปพลิเคชันของคุณดูแตกต่างออกไปเนื่องจากอุปกรณ์ที่แตกต่างกันมีฮาร์ดแวร์ ขนาดหน้าจอ หน่วยความจำ ฯลฯ ที่แตกต่างกัน คุณต้องทดสอบแอปพลิเคชันของคุณบนอุปกรณ์ เวอร์ชันระบบปฏิบัติการ เครือข่ายผู้ให้บริการ และตำแหน่งที่ตั้งที่แตกต่างกัน
เรื่องที่ 3: การทดสอบเชิงสำรวจก่อนเปิดตัวก็เพียงพอแล้ว
- โดยทั่วไปในการทดสอบทั้งหมด เราจะออกแบบกรณีทดสอบแล้วดำเนินการ แต่ในการทดสอบเชิงสำรวจ การออกแบบการทดสอบ และการดำเนินการทั้งหมดจะทำร่วมกัน
- ในการทดสอบเชิงสำรวจไม่มีแผนและไม่มีการเตรียมการ ผู้ทดสอบจะทำการทดสอบที่เขาต้องการทำ บางฟังก์ชันจะถูกทดสอบซ้ำๆ ในขณะที่บางฟังก์ชันจะไม่ได้รับการทดสอบพร้อมกัน
ความเชื่อผิดๆ#4:หากมีข้อบกพร่องในแอปพลิเคชัน ผู้ใช้จะเข้าใจ
- หากแอปพลิเคชันไม่ทำงานและมีข้อบกพร่อง ผู้ใช้จะถอนการติดตั้งแอปของคุณ
- ปัญหาด้านคุณภาพเป็นสาเหตุแรกของการตรวจสอบที่ไม่ดีใน Google Play มันส่งผลกระทบต่อชื่อเสียงของคุณและคุณสูญเสียความไว้วางใจจากลูกค้า
ดังนั้นจึงจำเป็นต้องมีกลยุทธ์การทดสอบ Android ที่เหมาะสม
แนวทางปฏิบัติที่ดีที่สุดใน Android การทดสอบ
- นักพัฒนาแอปพลิเคชันควรสร้างกรณีทดสอบพร้อมกันในขณะที่เขียนโค้ด
- กรณีทดสอบทั้งหมดควรเก็บไว้ในการควบคุมเวอร์ชันร่วมกับซอร์สโค้ด
- ใช้การผสานรวมอย่างต่อเนื่องและรันการทดสอบทุกครั้งที่มีการเปลี่ยนแปลงโค้ด
- หลีกเลี่ยงการใช้โปรแกรมจำลองและอุปกรณ์ที่รูท