Android บทช่วยสอนการทดสอบแอปพร้อมกรอบการทำงานอัตโนมัติ

Why Android การทดสอบ?

Android เป็นระบบปฏิบัติการที่ใหญ่ที่สุดในโลก ในเวลาเดียวกัน Android มีการแยกส่วน มีอุปกรณ์มากมายและ Android เวอร์ชันที่แอปของคุณต้องเข้ากันได้

Android การทดสอบ

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

Android การทดสอบ

Android กลยุทธ์การทดสอบ

กลยุทธ์การทดสอบ Android ที่ถูกต้องควรมีสิ่งต่อไปนี้

  1. การทดสอบหน่วย
  2. การทดสอบบูรณาการ
  3. Operaการทดสอบเชิงลึก
  4. การทดสอบระบบ

Android กลยุทธ์การทดสอบ

การทดสอบหน่วย

การทดสอบยูนิตประกอบด้วยชุดโปรแกรมหนึ่งชุดหรือมากกว่านั้น ซึ่งออกแบบมาเพื่อตรวจสอบหน่วยย่อยของโค้ดต้นฉบับ เช่น วิธีการหรือคลาส

Android แพลตฟอร์มมาพร้อมการบูรณาการล่วงหน้า จูนิต กรอบการทำงาน 3.0 เป็นเฟรมเวิร์กโอเพ่นซอร์สสำหรับการทำงานอัตโนมัติ การทดสอบหน่วย. Android Testing Framework เป็นเครื่องมืออันทรงพลังสำหรับนักพัฒนาในการเขียนโปรแกรมทดสอบหน่วยที่มีประสิทธิภาพ

การบูรณาการ Android และ JUnit กรอบ
การบูรณาการ Android และ JUnit กรอบ

นอกเหนือจากการทดสอบหน่วยคือการทดสอบส่วนต่อประสานกับผู้ใช้ (UI) การทดสอบเหล่านี้เกี่ยวข้องกับองค์ประกอบ UI ของแอปพลิเคชันเป้าหมายของคุณ การทดสอบ UI ช่วยให้มั่นใจได้ว่าแอปพลิเคชันของคุณส่งคืนเอาต์พุต UI ที่ถูกต้องเพื่อตอบสนองต่อลำดับการกระทำของผู้ใช้บนอุปกรณ์

การดำเนินการ UI ของผู้ใช้ทั่วไปในแอปพลิเคชัน
การดำเนินการ UI ของผู้ใช้ทั่วไปในแอปพลิเคชัน

วิธีทั่วไปในการทดสอบประสิทธิภาพ UI บนอุปกรณ์คือ Android การประพันธ์ดนตรี- แต่นี่มีปัญหาด้านประสิทธิภาพ หนึ่งในเครื่องมือที่ดีที่สุดในการดำเนินการทดสอบ UI Android is หุ่นยนต์.

การทดสอบบูรณาการ

In การทดสอบการผสานรวมโมดูลที่ทดสอบทุกหน่วยถูกรวมและตรวจสอบแล้ว ใน Androidการทดสอบการรวมมักจะเกี่ยวข้องกับการตรวจสอบการรวมด้วยAndroid ส่วนประกอบต่างๆ เช่น การทดสอบบริการ การทดสอบกิจกรรม การทดสอบผู้ให้บริการเนื้อหา ฯลฯ

การทดสอบบูรณาการ
ประเภทของการทดสอบบูรณาการ Android

มีกรอบการทดสอบมากมายที่ใช้เพื่อดำเนินการทดสอบการรวมระบบ Android เช่น ทรอยด์, โรโบเลคทริค, โรโบเทียม

Operaการทดสอบทางภาษา

  • Operational เรียกอีกอย่างว่าการทดสอบการทำงานหรือการทดสอบการยอมรับ เป็นการทดสอบระดับสูงที่ออกแบบมาเพื่อตรวจสอบความสมบูรณ์และความถูกต้องของการใช้งาน
  • In Android, ฟิตเนส เป็นกรอบงานโอเพ่นซอร์สที่ทำให้การทดสอบการใช้งานสำหรับแอปพลิเคชันเป้าหมายเป็นเรื่องง่าย

การทดสอบระบบ

In การทดสอบระบบ ระบบได้รับการทดสอบโดยรวมและมีการตรวจสอบปฏิสัมพันธ์ระหว่างส่วนประกอบ ซอฟต์แวร์ และฮาร์ดแวร์

In Android,การทดสอบระบบตามปกติประกอบด้วย

  • การทดสอบ GUI
  • การทดสอบการใช้งาน
  • การทดสอบประสิทธิภาพ
  • การทดสอบความเครียด

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

การทดสอบ Android อัตโนมัติ

เนื่องจากระบบปฏิบัติการ Android นั้นแยกส่วน การทดสอบบนอุปกรณ์จำนวนมากจึงมีความจำเป็น แต่การทำเช่นนี้ก็จะทำให้คุณต้องเสียเงินด้วยเช่นกัน Android การทดสอบสามารถช่วยลดต้นทุนได้

ประโยชน์ของการทดสอบระบบแอนดรอยด์อัตโนมัติ

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

เราจะศึกษากรอบการทำงานทั้ง 2 กรอบต่อไปนี้

  • Android กรอบการทดสอบ
  • กรอบการทดสอบ Robolectric

Android กรอบการทดสอบ

หนึ่งในกรอบการทดสอบมาตรฐานสำหรับ Android การประยุกต์ใช้คือ Android กรอบการทดสอบ- เป็นเฟรมเวิร์กการทดสอบที่ทรงพลังและใช้งานง่ายซึ่งผสานรวมเข้ากับ Android เครื่องมือ SDK

Android กรอบการทดสอบ
Android กรอบการทดสอบ Archiเทคเจอร์
  1. แพ็คเกจสมัคร คือแอปพลิเคชันเป้าหมายของคุณซึ่งจำเป็นต้องได้รับการทดสอบ
  2. เครื่องมือวัดTestRunner คือ กรณีทดสอบ นักวิ่งที่ดำเนินการกรณีทดสอบกับแอปพลิเคชันเป้าหมาย ประกอบด้วย:

2) เครื่องมือทดสอบ: เครื่องมือ SDK สำหรับการทดสอบการสร้าง พวกมันถูกรวมเข้าไว้ด้วยกัน Eclipse IDE หรือเรียกใช้เป็นบรรทัดคำสั่ง

2b) ลิงรันเนอร์: เครื่องมือที่ให้ API สำหรับการเขียนโปรแกรมที่ควบคุม Android อุปกรณ์หรือโปรแกรมจำลองภายนอก Android รหัส.

  1. แพคเกจทดสอบ จัดเป็นโครงการทดสอบ แพคเกจนี้เป็นไปตามแบบแผนการตั้งชื่อ หากแอปพลิเคชันภายใต้การทดสอบมีชื่อแพ็คเกจเป็น “com.mydomain.myapp” มากกว่าแพ็คเกจทดสอบควรเป็น “com.mydomain.myapp.test” แพ็คเกจทดสอบประกอบด้วย 2 ออบเจ็กต์ดังนี้:

3a) คลาสกรณีทดสอบ: รวมวิธีทดสอบเพื่อดำเนินการกับแอปพลิเคชันเป้าหมาย

3b) Mock object : รวมข้อมูลจำลองที่จะใช้เป็นตัวอย่างอินพุตสำหรับกรณีทดสอบ

Android คลาสกรณีทดสอบ

Android คลาสกรณีทดสอบ
Androidไดอะแกรมคลาส TestCase
  1. กรณีทดสอบ รวมถึง JUnit วิธีการทำงาน JUnit ทดสอบ
  2. ชุดทดสอบ ใช้ในการรันชุดของกรณีทดสอบ
  3. เครื่องมือวัดTestSuite เป็น TestSuite ที่แทรก Instrumentation เข้าไปใน InstrumentationTestCase ก่อนที่จะรัน
  4. เครื่องมือวัดTestRunner เป็นตัวดำเนินการกรณีทดสอบที่ดำเนินการกรณีทดสอบกับแอปพลิเคชันเป้าหมาย
  5. Androidกรณีทดสอบ ขยาย JUnit กรณีทดสอบ ประกอบด้วยวิธีการเข้าถึงทรัพยากรต่างๆ เช่น บริบทของกิจกรรม
  6. ApplicationTestCase ตรวจสอบคลาสแอปพลิเคชันในสภาพแวดล้อมที่มีการควบคุม
  7. เครื่องมือวัดTestCase ตรวจสอบคุณลักษณะเฉพาะหรือพฤติกรรมของแอปพลิเคชันเป้าหมาย เช่น ตรวจสอบผลลัพธ์ UI ของแอปพลิเคชัน
  8. กิจกรรมTestCase เป็นคลาสพื้นฐานที่รองรับการทดสอบกิจกรรมแอปพลิเคชัน
  9. ผู้ให้บริการTestCase เป็นคลาสสำหรับการทดสอบ ContentProvider เดียว
  10. บริการ TestCase ใช้เพื่อทดสอบคลาสบริการในสภาพแวดล้อมการทดสอบ นอกจากนี้ยังรองรับวงจรชีวิตของบริการด้วย
  11. SingeLauchActivityTestCase ใช้เพื่อทดสอบกิจกรรมเดี่ยวด้วย InstrumentationTestCase
  12. กิจกรรมหน่วยทดสอบกรณี ใช้เพื่อทดสอบกิจกรรมที่แยกเดี่ยว
  13. กิจกรรมเครื่องมือวัดTestCase2 ขยาย JUnit คลาส TestCase มันเชื่อมต่อคุณกับแอปพลิเคชันเป้าหมายด้วยเครื่องมือวัด ด้วยคลาสนี้ คุณสามารถเข้าถึงส่วนประกอบ GUI ของแอปพลิเคชันและส่งเหตุการณ์ UI (เหตุการณ์การกดแป้นพิมพ์หรือการสัมผัส) ไปยัง UI

ด้านล่างนี้เป็นตัวอย่างของ ActivityInstrumentationTestCase ซึ่งจะตรวจสอบการทำงานของ UI ของแอปพลิเคชันเครื่องคิดเลข และตรวจสอบความถูกต้องของเอาท์พุต UI

การทดสอบกิจกรรมเครื่องมือวัด TestCase2
ตัวอย่างการทดสอบ ActivityInstrumentationTestCase2

กรอบการทดสอบโรโบเล็กทริค

การทดสอบการใช้ Android การทดสอบเฟรมเวิร์กด้วยอุปกรณ์หรือโปรแกรมจำลองเป็นเรื่องยาก การทดสอบการสร้างและดำเนินการนั้นช้าและใช้ความพยายามในการพัฒนาอย่างมาก เพื่อแก้ไขปัญหานี้ มีทางเลือกอื่น – โรโบอิเล็คทริค กรอบการทดสอบ

กรอบ Robolectric ช่วยให้คุณสามารถรันได้ Android การทดสอบ โดยตรง บนเจวีเอ็ม ไม่มี ความต้องการอุปกรณ์หรือโปรแกรมจำลอง

คุณสมบัติขั้นสูงของ Robolectric
คุณสมบัติขั้นสูงของ Robolectric

คลาสกรณีทดสอบ Robolectric

Operaของ Robolectric
Operaของ Robolectric
  • ตามที่แสดงด้านบน Robolectric สามารถดำเนินการดังต่อไปนี้:
  • ลงทะเบียนและสร้างคลาส Shadow
  • สกัดกั้นการโหลดของ Android ชั้น
  • ใช้ javaassist เพื่อแทนที่เนื้อความของวิธีการ Android ชั้น
  • ผูกวัตถุ Shadow ไปที่ Android ชั้น
  • สิ่งนี้ทำให้โค้ดที่อยู่ระหว่างการทดสอบสามารถดำเนินการได้โดยไม่ต้อง Android สิ่งแวดล้อม

กรอบการทดสอบอื่น ๆ

นอกจากกรอบการทดสอบที่กล่าวมาข้างต้นแล้ว ยังมีกรอบการทดสอบอื่นๆ อีกมากมาย เช่น:

  • Android รายงานจูนิตนักวิ่งทดสอบเครื่องมือวัดแบบกำหนดเองสำหรับ Android ที่สร้างรายงาน XML เพื่อใช้งานร่วมกับเครื่องมืออื่น ๆ
  • ด่วน
  • Appium

ตำนานของ Android การทดสอบ

หลายๆองค์กรพัฒนาระบบแอนดรอยด์ การทดสอบ กลยุทธ์ที่ตั้งอยู่บนพื้นฐานของความเข้าใจผิดทั่วไป ในส่วนนี้จะตรวจสอบตำนานและความเป็นจริงที่เป็นที่นิยมบางประการของ Android การทดสอบ

ตำนาน #1:ทั้งหมด Android อุปกรณ์ก็เหมือนกัน… การทดสอบบนอีมูเลเตอร์ก็เพียงพอแล้ว

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

แอปพลิเคชันขัดข้องระหว่างการดำเนินการบนอุปกรณ์จริง
แอปพลิเคชันขัดข้องระหว่างการดำเนินการบนอุปกรณ์จริง

อีมูเลเตอร์ก็มี ไม่เพียงพอ สำหรับการทดสอบมือถือของคุณ คุณต้องทดสอบแอปของคุณบนอุปกรณ์จริง

เรื่องที่ 2:การทดสอบบนอุปกรณ์ทั่วไปบางอย่างก็เพียงพอแล้ว

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

เรื่องที่ 3: การทดสอบเชิงสำรวจก่อนเปิดตัวก็เพียงพอแล้ว

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

ความเชื่อผิดๆ#4:หากมีข้อบกพร่องในแอปพลิเคชัน ผู้ใช้จะเข้าใจ

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

ดังนั้นจึงจำเป็นต้องมีกลยุทธ์การทดสอบ Android ที่เหมาะสม

แนวทางปฏิบัติที่ดีที่สุดใน Android การทดสอบ

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