Client Overview:
Indee is an innovative online platform that enables independent filmmakers to showcase their creative work to film festivals and online audiences. With a core focus on awards, publicity events, and online content distribution, our client serves as a trusted medium for filmmakers to present, market, and monetize their creations effectively.
Given that Indee deploys multiple apps across a variety of platforms including Fire TV, Roku TV, and iPad, ensuring a consistent user experience and high standards of performance, while consistently responding to changing requirements at an accelerated pace is a top business requirement.
Key Challenges
As our client expanded its apps across Fire TV, Roku TV, and iPad, critical QA hurdles emerged:
- Consistent User Experience Across Devices: Ensuring that all applications worked consistently across different devices and platforms.
- Predictable Quality : Ensuring that s new features and functionalities were added, all new and existing end to end user journeys worked seamlessly across every release
- Increase Release Velocity : Ensuring predictable quality at speed, as the demand for user features increased across more devices
- Integrating QA with CI/CD: Ensuring quality assurance processes were part of the CI/CD pipelines, maintaining high app quality while enabling frequent updates.
Our Solution:
To address these challenges, our Qualitrix team established a Managed QA Center with a focus on automation, cross-platform testing, and CI/CD alignment:
- Quality: Setting clear goals and expectations for quality, including measurable targets and agreed-upon service levels.
- QA Strategy: Creating an Automation strategy to test the app across multiple platforms like Fire TV, Roku TV, and iPad.
- Automation: Setting up automated tests for common user actions, integrated with the continuous integration and deployment process.
- Test Coverage: Developing and running over 500 test cases to make sure the app worked well on all platforms and covered all features.
- Shifting Left Testing: In-sprint automation and early testing ensured that testing was done earlier in the release cycle
Technology Stack:
The QA approach utilized a combination of tools, frameworks, and systems to ensure quality:
- Tools:
- UIAutomator2: An Appium driver for automating tests on Android devices.
- Appium 2: Used for automating tests on mobile apps across different platforms like iOS and Android.
- XCUITest Driver: An Appium driver for automating tests specifically on iOS devices.
- Roku WebDriver: A testing automation tool for Roku devices, developed by Roku’s own team.
- Frameworks:
- Pytest with BDD (Behavior-Driven Development): A testing framework that allows writing tests in a simple, human-readable format, focusing on the behavior of the app.
- Reports: Allure Reports integrated for graphical representation of Test Results
- Version Control and CI/CD:
- GitHub: Used for version control to manage code and track changes.
- Jenkins: A tool for automating the continuous integration and delivery process, ensuring new code is tested and deployed smoothly.
- Docker: A platform for developing, shipping, and running applications in containers, ensuring consistency across different environments.
Implementation Approach:
- Behavior-Driven Development (BDD)
Test cases were documented using Gherkin, aligning with requirements and enabling better collaboration between QA, developers, and stakeholders. - Test Grouping and Prioritization
Test cases were grouped by functionality and prioritized based on critical features. This allowed for parallel execution, significantly reducing test execution time. - Reusable Components
A library of reusable actions, page definitions, and descriptive details was created to maintain flexibility and ensure easy updates and scalability of test scripts. - CI/CD Integration
Seamless testing was integrated into the development pipeline using Jenkins and Docker, ensuring consistent execution and rapid feedback. - Test Data Management
Test data was centralized and managed using master test data techniques, dynamically retrieving data from runtime parameters or a test data JSON file within the folder structure. - On-Device Execution
End-to-end testing was conducted on real devices like Fire TV, Roku and iPad, ensuring that tests closely mirrored actual user experiences.
Results and Impact:
The implementation of the QA framework resulted in:
- Enhanced Quality: Achieved high reliability across platforms with over 500 automated test cases.
- Efficiency Gains: Integrated QA with CI/CD, significantly reducing manual testing efforts.
- Scalability: Reusable components made it easier to add new test cases as needed.
- Improved User Experience: Ensured seamless functionality and consistency across devices for multiple applications.
- Reduced Time-to-Market: Streamlined testing processes accelerated delivery timelines.
Challenges and Key Takeaways:
Challenges:
- Device-Specific Quirks: Addressing platform-specific quirks for Fire TV, Roku, and iPad.
- Test Data Complexity: Managing and maintaining accurate, reusable test data, including the client’s request to make all test data calls from examples.
- Initial Setup: High upfront effort required to establish reusable test libraries and action definitions, with each device requiring a different driver approach.
- Dynamic Locator Strategy: Implementing a dynamic locator strategy to handle varying UI elements across different platforms.
- Behavior Variations: Managing and addressing behavior variations across multiple platforms proved to be challenging.
- Installation Scripts for iOS: Developing installation scripts for iOS added complexity to the setup process.
- Screenshot Addition for Roku: Implementing screenshot functionality for Roku testing was particularly challenging due to platform-specific limitations.
Key Takeaways:
- Early Collaboration: Close collaboration between the QA and client development teams greatly enhances efficiency and ensures smoother communication.
- Reusable Libraries: Developing reusable libraries significantly reduces future maintenance costs and streamlines test creation.
- Continuous Monitoring: Ongoing monitoring and feedback loops are critical for improving test coverage and ensuring that all scenarios are captured.
- Local Execution Report: Ensuring that local execution reports accurately reflected the app’s behavior variations helped provide proof to the client that the scripts were working correctly during development.
- Test Data and App-Specific Issues: Having clear documentation and proof for raising test data and app-specific issues ensured that any concerns were promptly communicated to the client.
- Standup MOM (Minutes of Meeting): Maintaining written acknowledgment of individual or standup meetings helped keep all teams aligned and provided a clear record of actions and decisions.
Conclusion:
The QA initiative for Indee successfully overcame platform-specific challenges, ensuring smooth functionality on devices like Fire TV, Roku TV, and iPad. By using a detailed QA strategy that included automation, Behavior-driven development (BDD), and CI/CD integration, the project achieved high-quality results while maintaining efficiency. This approach simplified the testing process, improved collaboration between the client’s development and QA teams, and enhanced the overall user experience across all platforms.