Lessons Learned: Unexpected Turns on My ODK-X Android Testing Adventure

Introduction

Diving into the world of Android testing for ODK-X has been an exhilarating journey, filled with both triumphs and unexpected detours. This week's theme, "Modifying Expectations," perfectly captures my experience so far. While some initial goals needed adjustments, the process has fueled my learning and solidified the value of adaptability in software development.

Project and Initial Timeline

For those unfamiliar with my project, I'm creating tests for ODK-X Android tools to ensure the reliability and functionality of the Survey, Tables, and Services apps. This involves writing tests, setting up a testing environment, conducting manual and automated tests, documenting the process, and iterating based on feedback.

My initial project timeline, outlined in my project timeline proposal, detailed a phased approach focusing on Android tests for the ODK-X Android Tool Suites. The project unfolded in stages, with the first half dedicated to:

  • Weeks 1-3: Selecting features for testing, designing test cases, and setting up a realistic testing environment.

  • Weeks 4-6: Implementing and executing manual tests, identifying and addressing deviations, and creating new test coverages.

Progress and Achievements

While I have diligently followed these steps, there have been some adjustments along the way, leading to some exciting achievements.

I successfully identified key features across the Survey and Tables apps for testing and established a reliable testing environment that mimics real-world user interactions. I have also designed and implemented detailed test cases for the Survey top and Tables app bars, focusing on recent code changes and user interface elements. I also have maintained documentation of the testing activities, results, and encountered issues throughout the process.

Facing Challenges and Embracing Learning

The unexpected is a natural part of software development, as I discovered during manual testing. Encountering issues with existing service UI tests presented a hurdle, but it ultimately pushed me to create new Espresso tests for the Survey and Tables apps. This highlights the importance of adapting your approach based on unforeseen obstacles, a key takeaway from this experience

Specific Challenges

Creating and executing tests, especially for the first time, has presented its challenges. Some specific examples include:

  • Debugging View Matching Issues: Certain Survey App tests initially failed on Circle CI due to view matching issues.

  • Navigating a Complex Codebase: The complexity of the ODK-X codebase made fixing some broken tests more challenging than anticipated. For example, some tests initially passed but started failing after emulator updates, necessitating further investigation and adjustments.

  • Time Management: Balancing the time spent on testing and conducting research has been a learning curve in itself.

Adapting Priorities and Continued Progress

In collaboration with my fantastic mentors, we have revised the priorities to focus on creating new test coverage for the remaining weeks. While this is a slight deviation from the original plan, it ensures my contributions are highly valuable and impactful for the ODK-X project.

Reflections and Learnings

If I were to begin the project again, I would approach it in much the same way. The additional time spent understanding the complexities of the ODK-X codebase and the challenges of testing has been a valuable investment. This experience has significantly enhanced my skills and comprehension of open-source project development.

Looking Ahead: Expanding Test Automation (Weeks 7-13)

The next phase of my internship will focus on further refining and expanding the test suite:

  • Weeks 7-9: I will prioritize refining the remaining test cases I have developed. This will involve writing robust and efficient tests using Espresso for comprehensive test coverage.

  • Weeks 10-12: My focus will shift towards refining the existing tests for better performance and reliability. Additionally, I will be creating new tests to cover additional functionalities within the ODK-X Tables, Survey, and Services apps. This will ensure a thorough suite of tests that enhances the overall quality of the ODK-X Android tools.

  • Week 13: The final week will be dedicated to wrapping things up. This includes finalizing the test suite documentation, presenting the testing plan and outcomes to the ODK-X team, and ensuring seamless integration of the tests into the development workflow.

Conclusion

Reflecting on the first half of my internship has been invaluable. I am now better equipped to tackle the remaining tasks with adjusted expectations and a refined plan. I am also incredibly enthusiastic about contributing to the open-source community by delivering a high-quality test suite that will enhance the reliability and functionality of the ODK-X Android tools. See you soon!

0
Subscribe to my newsletter

Read articles from Chinedu Ihedioha directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Chinedu Ihedioha
Chinedu Ihedioha

Hello everyone, I am Chinedu Ihedioha from Nigeria. I recently obtained my bachelor's degree with a strong foundation in computer science & engineering and a keen interest in software development. I am also a Backend Developer, working with Java, Kotlin, and Spring frameworks including Springboot, Hibernate, Spring Data JPA, and Spring Security. I have hands-on experience with infrastructure and database tools like AWS Amplify Studio, MySQL, PostgreSQL, and Docker, enabling me to build robust and scalable applications. When I am not coding or doing anything that relates to tech, you can always find me on the football pitch. I am a big fan of football and I am a passionate supporter of Liverpool FC. I also have interests in other sports, such as Formula 1, Basketball, Tennis, and Boxing. Looking forward to exploring potential collaborations and discussing exciting opportunities with you all.