To ensure successful test automation, developer collaboration is essential. In many cases, working to improve the product’s testability is more cost-effective than trial and error from the QA side.
This page summarizes what developers should do to contribute to successful test automation. We recommend that QA personnel share this page with developers and request their cooperation.
For both the browser test and the mobile app test
Integrate with CI Services
Integrate with CI services so that MagicPod tests can run before deploying to the production environment. It is recommended to run basic tests every time a change is merged, possibly multiple times a day.
Reference: Run tests regularly with CI services
Add Unique IDs
Add unique test-specific IDs in the source code to the elements used in tests, such as buttons or text boxes. This is especially important when using frontend frameworks like React or Vue.js, where random IDs that change with each build may be included in UI elements. Adding unique IDs is critical for stable testing. Incorporating this into internal development rules is also recommended.
Reference: Implementation Tips for Easier Automated Testing
Reference: How to assign a unique ID
Allow Specific IP Address Ranges to Test Private Environments
When running tests in a private development environment, allow the IP address ranges listed on the help page so that MagicPod’s cloud devices and browsers can access it.
Reference: Test in private environments
Allow access to protocols and domains required
If network access is restricted, MagicPod may not work properly. Allow access to the protocols and domains listed on the following help page.
Reference: Protocols and domains that require access permission
Prepare Web APIs for handling test data
MagicPod offers a "Web API Call" command to easily call Web APIs during tests. You can ensure stable testing by using Web APIs to set up initial data for testing and to clear data after tests finish.
You may also need Web APIs to retrieve data for dynamically changing input values or elements. Please consult with QA personnel regarding the API specifications.
Reference: Utilize Web API calls
Share Server Downtime Information with QA Personnel
Tests may fail if server maintenance occurs during the test run. If there are scheduled downtimes, such as weekends or late-night maintenance, share this information with QA personnel in advance.
Reference: How to maintain a test when it fails
For the mobile app test
(iOS) Create an .app file
Please generate the ".app file" required for testing on iOS Simulator. Please refer to the following help page for the generation method.
Reference: How to create an .app file
Enable WebView testing
MagicPod has an option called "Enable WebView scan", which allows you to treat elements within WebView as HTML, enabling the creation of highly maintainable tests. There are conditions that must be met to use this feature. Please check the conditions listed on the following help page.
Reference: WebView tests
(Flutter) Follow the guidelines
For mobile apps built with Flutter, issues may occur where UI elements cannot be recognized correctly. Please follow the guidelines below.
Reference: Implementation Guidelines for Flutter Apps for E2E Testing
(React Native) Implement to avoid deep tree generation
In React Native, a phenomenon where the UI tree becomes deep has been confirmed, and for some apps experiencing this phenomenon, tests cannot be created. Please implement to avoid deep tree generation by referring to the following help page.
Reference: Limitations when testing React Native apps