CP-M-AAT
About
Learning Objectives
About
What is CP-M-AAT?
CP-M-AAT stands for “Certified Professional – Mobile Automation Agile Testing” certification prepared and honored by “Agile Testing Alliance” & “University Teknologi Malaysia (UTM)”. CP-MMAT is the prerequisite for this next level of certification called CP-M-AAT. Alternatively you should be having at least 2 years of relevant experience in Testing and at least one year in an Agile project. The course is applicable for all roles and not just “testers”. Knowledge, experience & certification is consciously designed to focus on “agile testing” and not on “agile testers”.How is it useful?
CP-M-AAT prepares you for utilizing mobile test automation tools effectively in an agile project. It helps you realize the tester’s role in planning and strategizing for android mobile Test Automation in an agile project. It gives you insight into the cost-benefit analysis, the opportunities and risks and the Agile team approaches to let the testfirst strategy drive the quality goals of the projects. The course covers BDD and mobile test automation in a hands-on fashion using pairing techniques of XP. It also covers the real-life challenges that a tester would face while applying the strategies. All the concepts are driven using the case studies and actual test automation tasks involved in any live agile projects and actual mobile devices (not simulators). The course introduces you to the mobile test automation tool Appium.Am I Eligible?
Anyone having more than 2 years experience in agile or testing is eligible for CP-M-AAT. If you have already done CP-MMAT then you automatically qualify for this course provided you have 1 year experience.Duration
CP-M-AAT is designed specifically for corporates and working professionals alike. If you are a corporate you can opt for either 5 half days course or 3 days course followed by an examination. If you are a working professional opt for 3 days course followed by an examination.Learning Objectives
-
1. Recap from CP-M-MAT
- 1.1. Agile Manifesto
- 1.2. Agile Principles
- 1.3. Agile in Practice (Video)
- 1.4. Agile Mindset
- 1.5. Scrum – Testing in iterations
- 1.6. Mobile Testing challenges in Agile
- 1.7. Test Automation
-
2. Need for Mobile Test Automation
- 2.1. Challenges in Test Automation
- 2.2. How Agile Testing approach can help in Mobile Test Automation
-
2.3. Automation Strategy
- Cost-Benefits Analysis
- Preparation for Automation
- Opportunities and Risks
- Test Automation Frameworks
- Tools evaluation and Pilot
-
2.4. Agile Teams
- Cross-functional Testers and Whole Team Approach
- Independent/Specialist Testing Group
- Definition of Done
- Test Hardening
-
2.5. Test-First approach
- BDD
- ATDD
- TDD
-
2.6. Behavior and Requirements
- Behavior of the System
- Test Case specification
- User Stories and Scenarios
-
2.7. User Stories
- Attributes of good user stories
- How to write user stories
- Is every task a user story?
- Who writes them?
-
2.8. Group Exercise
- Create features for the given Requirements and User stories
- 2.9. Attributes of a Good feature document
-
3. Introduction to Cucumber
- Behavior in Feature document
- Step definition
- Human Language Support
- Cucumber for Java – Cucumber JVM
- Testing Possibilities
- Getting BDD wrong
-
-
3.1. Installation and configuration for Cucumber
- Installing Eclipse
- Creating Maven project
- Maven dependencies
- Manual setup (non-maven) – required libraries
-
3.2. Implementing BDD using Cucumber
- Preparing Features File having test scenarios
- Writing a step definition
- Writing Runner Class
- Given, When, Then, And, But annotations and usage in features class
- Passing parameters in Step Functions
- Using regular expression in steps
-
3.3. Test-first concept in Cucumber
- JUnit Test generation in Cucumber
- Pretty, Tags and Glue
- Cucumber HTML Reports
- Using Assertions to report failure
- Running simple feature/Step scenario
- Building a simple test case
- Running all/limited tests
-
3.4. Agile Practical – Sprint 1
- Cucumber in action
- Features and Steps definition for Requirements
- Running the Requirements as Test
- Retrospective
-
3.1. Installation and configuration for Cucumber
-
4. Introduction to Appium
- What is Appium?
- Appium history and relation to Selenium
- WebDriver JSON protocol
- App types – Native, Web and Hybrid Apps
- Testing Possibilities
- Android API levels and versions
- Drawback and limitations
-
-
4.1. Installation and configuration for Appium
- Installing Java, configuring JAVA_HOME
- Installing Android SDK and configuring ANDROID_HOME
- How to use adb and its limitations
- Installing PDANet
- Android Security and RSA keys
- Installing Node.js
- Installing MS Dot Net framework
- How to use android simulators and its drawbacks
- Configuring mobile devices for APK testing
- USB Debugging
-
4.2. Appium basics
- Launching Appium server from command line and GUI
- What are desired capabilities settings?
- What is APK file
- How to get APK file for any android App
- What is appPackage and appActivity? How to find it for the App?
- How to test an app without having access to APK file?
- No-reset and Full Reset mode in Appium
- How to test android system apps in Android
-
4.3. Configuring Appium in Eclipse
- Eclipse Installation
- Eclipse setup for Android development with ADT and AVD manager
- Eclipse configuration for Appium Tests
- Maven dependencies and jar files required
- Using Assertions to report failure
- Running simple scenario
- Building a simple test case
- Running all/limited tests
-
4.4. Agile Practical – Sprint 1
- Appium in action
- Retrospective
-
4.1. Installation and configuration for Appium
-
5. Locator Strategies in Appium
- UI Automator
- Android App layouts
- WebDriver and UI Automator locators
-
-
5.1. Object Locator tools
- UISelector in UI Automator
- XPath locators and its limitations
- XML Viewer
-
5.2. Touch Actions
- Touch event
- Drag and drop
- Multi-touch actions
- Longpress, Pinching, expanding actions
-
5.3. Agile Practical – Sprint 2
- Appium in action
- Retrospective
-
5.1. Object Locator tools
-
6. Web Application Testing
-
6.1. Launching browsers
- Desired capabilities for browsers
- Giving browser commands
- Setting useragents
-
6.2. Integrating Appium with Cucumber
- Setting up Appium reference libraries in Eclipse
- Running Tests for mobile browsers and apps
- Test reporting
-
6.3. Agile Practical – Sprint 3
- Appium in action
- Retrospective
-
6.1. Launching browsers
-
7. Appium advanced topics
-
7.1. Testing the lower Android API versions
- Introduction to Selendroid
- Running Appium in Selendroid mode
- Running Selendroid Tests
- Using Appium and Selendroid effectively
-
7.2. Integrating Appium with Jenkins for CI
- Using ANT and Maven
- Configuring Jenkins
- Handling navigation drawer
-
7.3. Building test automation frameworks and reporting
- Parameterizing the tests
- Uploading and downloading files
- Customizing the reports
-
7.1. Testing the lower Android API versions
-
8. Practical Agile Testing
-
Case Study
- Practice all Appiumtests and BDD fundamentals throughout the course on a case study of a sample project.
-
Case Study
