Mobile Test Automation Framework Design and Development
By: Slav Kurochkin
Quality means doing it right when no one is looking.
Before starting test automation framework, Developer in Test should be familiar with product and understand needs and concerns. Another important part it is strategy and design implementation. What we testing? Why we testing? What is the benefits of having automation against manual testing? How we going to test and what tools we are going to use?
First lets see what we need in order to be able cover most concerns areas in the project:
1. Test Documentation (Fetcher List, Specification, Human Interface Guideline, Definition of Done, Testing Strategy etc.). In our project we are going to use iOS Human Interface Guideline,
2. Manual Test Cases, there is always some circumstances where only human may identify problem, for example make sure that audio and video synchronized in video recording etc.
3. Test Suites, each release we are having test suite running, the idea of regression test suite is:
- verify fixed bugs
- manual regression testing
- automated regression testing
- network connectivity testing
- cloud computing and database testing
4. Test Statistics and Analysis, will allow us to see how many bugs were introduced in build, help to predict future failure for specific component, see product quality improvement diagram.
5. UI Test Automation - In our project we are going to use Selenium WebDriver, Appium
6. Performance and Stress Testing - For performance testing we decided to go with Apache JMeter, there is few reasons behind that, one is that we can easy connect and record our tests on mobile device, since we are using http protocols for our hybrid application, another reason it is open source and we can easily download and install product without worrying about license.
7. Network/Security Testing - So we will need to capture network packets and analyze them, WireShark is another open source tool we are going to use for that specific purpose.
8. HTTP Proxy Debugging - since our application is iOS and we are sending packets via http, right tool to use Charles, it is proxy debugging tool with awesome UI, which allow you to see what is going on with application and perform some simple performance tests
9. Database Verification - SQL Quires
10. Web Services / Cloud Computing Testing - Amazon AWS
In our project we are going for UI Automation testing to use Appium with Selenium WebDriver, object-oriented programing language Java, test runner TestNG, project management tool Maven, Continues Integration Tool Jenkins, Version Control GIT
1. Install Java JDK on your computer
2. Install Maven on your computer
3. Install Eclipse on your computer
4. How to change jdk in Eclipse from 1.6 to 1.7
5. How to install Maven plugin in Eclipse
6. How to add pom.xml and dependencies to existing project in Eclipse
7. How to choose test runner for your Test Automation Framework project JUnit vs. TestNG
8. How to install TestNG plugin in Eclipse
9. How to create your first project in Eclipse using common directory layout