1.Fundamentals of Testing
1. What is Testing?
Identify typical objectives of testing
Differentiate testing from debugging
2. Why is Testing Necessary?
Testing’s Contributions to Success: Give examples of why testing is necessary
Quality Assurance and Testing: Describe the relationship between testing and quality assurance and give examples of how testing contributes to higher quality
Distinguish between error, defect, and failure
Defects, Root Causes and Effects: Distinguish between the root cause of a defect and its effects
3. Test Process
Test Process in Context: Explain the impact of context on the test process
Test Activities and Tasks: the test activities and respective tasks within the test process
Test Work Products: Differentiate the work products that support the test process
Traceability between the Test Basis and Test Work Products: Explain the value of maintaining traceability between the test basis and the test work products
4. The Psychology of Testing
Human Psychology and Testing: Identify the psychological factors that influence the success of testing
Tester’s and Developer’s Mindsets: Explain the difference between the mindset required for test activities and the mindset required for development activities
2.Testing Throughout the Software Development Lifecycle
1. Software Development Lifecycle Models
Software Development and Software Testing: Explain the relationships between software development activities and test activities in the software development lifecycle
Software Development Lifecycle Models in Context: Identify reasons why software development lifecycle models must be adapted to the context of project and product characteristics
2. Test Levels: Compare the different test levels from the perspective of objectives, test basis, test objects, typical defects and failures, and approaches and responsibilities
Component Testing
Integration Testing
System Testing
Acceptance Testing
3. Test Types: Compare functional, non-functional and white-box testing, recognize that functional, nonfunctional and white-box tests occur at any test level, Compare the purposes of confirmation testing and regression testing
Functional Testing
Non-functional Testing
White-box Testing
Change-related Testing
Test Types and Test Levels
Compare functional, non-functional and white-box testing, recognize that functional, nonfunctional and white-box tests occur at any test level, Compare the purposes of confirmation testing and regression testing
3.Static Testing
1. Static Testing Basics
Work Products that Can Be Examined by Static Testing
Benefits of Static Testing
2. Differences between Static and Dynamic Testing
Review Process
Work Product Review Process
Roles and responsibilities in a formal review
Review Types
Applying Review Techniques
Success Factors for Reviews
4.Test Techniques
1. Categories of Test Techniques
Choosing Test Techniques
Categories of Test Techniques and Their Characteristics
2. Black-box Test Techniques
Equivalence Partitioning
Boundary Value Analysis
Decision Table Testing
State Transition Testing
Use Case Testing
Decision Testing and Coverage
3. Experience-based Test Techniques
Error Guessing
Exploratory Testing
5.Test Management
1. Test Organization
Independent Testing
Tasks of a Test Manager and Tester
2. Test Planning and Estimation
Purpose and Content of a Test Plan
Test Strategy and Test Approach
Entry Criteria and Exit Criteria (Definition of Ready and Definition of Done)
Test Execution Schedule
Factors Influencing the Test Effort
Test Estimation Techniques
3. Test Monitoring and Control
Metrics Used in Testing
Purposes, Contents, and Audiences for Test Reports
4. Configuration Management
5. Risks and Testing
Definition of Risk
Product and Project Risks
Risk-based Testing and Product Quality
Defect Management
6.Agile & Scrum
What is Agile Testing?
Scrum Introduction
Getting Agile with Scrum
Scrum Approach
Release Planning
Sprint Planning
Product backlog
Concept of Epics
Writing Epics – Examples
Concept of User Stories
Writing User Stories- Examples
Defining Tasks
Starting Sprint
Monitoring Sprint status
Completing Sprint
7.Java for Automation Testing
1. Java Programming Basics
Why Java for Selenium
Installing Java
Installing Eclipse
Creating Java Project
First Java program
Concept of class file
Datatypes in Java
String class and functions
Conditional Statements
Loops
Arrays
Operators
What are Functions?
Function Input Parameters
Function Return Types
2. Object Oriented Programming in JAVA
Local Variables
Global Variables
Static and Non-Static Variables
Static and Non-Static Functions
Creating Objects in Java
Meaning of static
Why is the main method static?
Overloading and Overriding Functions
Access Modifiers – Public/Private/Default/Protected
Constructors
Interface
Usage of Objects in Selenium
Inheritance
Usage of Inheritance in Selenium
Creating Packages
Accessing Classes across Packages
3. Object Exception Handling
Exception handling with try catch block
Importance of exception handling
Exception and Error
Throwable Class
Final and Finally
Throw and Throws
Different Types of Exceptions
Need of exception handling in Selenium framework
4. Automating Excel file Operations using Apache POI
Creating/Opening XL Files
Reading data from XL Sheet
Writing data into XLSheet
Counting Rows and Columns in XL Sheet
Filling BG/Font Colors
Creating ExcelUtils Class.
8.Selenium For Automation
1. Selenium Introduction
What is Selenium?
Who developed Selenium?
Selenium Components
Introduction to WebDriver
Installing Selenium WebDriver
Architecture of Selenium Webdriver
Creating your First Script in Webdriver
2. Launching AUT and Inspecting properties of Elements
Launching AUT in Firefox
Launching AUT in Internet Explorer
Launching AUT in Chrome
Launching AUT in Safari
Inspecting properties of Elements on different Browsers
Creating Firefox Profile
3. Finding elements using Locators
4. Creating Customize XPath/CSS Selectors
What is XPath
When to Use XPath
Absolute XPath/Relative XPath
Specifying conditions with XPath
CSS Selectors
5. Automating WebElements Operations
Browser
TextBox
ListBox
Links
Check Box
Radio Button
HTML Tables
Calendars
6. Automating Keyboard and Mouse Events
Action Class
KeyBoard Events
Drag & Drop Actions
Mouse Hover Action
RightClick, Double Click & Tool Tip
7. Handling Alerts
accept()
dismiss()
getText()
8. Handling Frames
What is iFrame?
Locating Frames
Handling Frames
9. Handling multiple Windows
getwindowHandle()
getwindowHandles()
Switching between windows
Handling elements present in different windows
10. Synchronization
ImplicitWait
WebDriverWait
FluentWait
PageLoadTimeout
11. AutoIT
Installing AutoIT
Components of AutoIT
Using FinderTool
AutoIT commands
Creating Scripts in AutoIT
Creating executable files
Running AutoIT Scripts from Selenium
9.Test NG
Advantages of TestNG over JUnit
Why do we need TestNG in Selenium?
Installing TestNG in Eclipse
Creating a New TestNG Test File
TestNG annotations
TestNG assertions
Running the TestNG Test
Checking reports created by TestNG
Creating multiple Tests
Prioritizing Tests
Parameterizing Tests with @dataProvider
TestNGdataProvider with Excel
Creating and Running Test Suites with TestNG.xml
Sequential Test Execution with TestNG
Parallel Test Execution with TestNG
10.Cucumber
Overview of BDD and Cucumber
How to install and setup Cucumber with Eclipse
Overview of Gherkin keywords
How to create Feature file
How to generate Step Definition file
How to integrate Cucumber with Selenium WebDriver
JUnit Test Runner Class
Data Driven Testing in Cucumber
Configure Cucumber with Maven and Jenkins
How generate Reports in Cucumber
11.GIT Version Control
System for tracking changes in computer files and coordinating work on those files among multiple developers. It is primarily used for source code management in software development.
Topics Covered - Git/GitHub
Introduction to Version Control System
Centralized Version Control System
Distributed Version Control System
Git Introduction
Git Architecture
Git Workflow
Git Branching Model
Git Merging Branches
Detached Head For Retroscoping
Undoing Changes
Git Ignore
GitHub For Remote Repositories
Using existing GIT Repositories With Clone
Pull Requests
Tagging
12.Build Managemet With Maven
The process of building software is usually managed by a build tool in our case it's MAVEN
Maven’s primary goal is to allow a Developer to comprehend the complete state of a development effort in the shortest period of time.
Topics Covered - Maven
Introduction to Build Management
Introduction to Maven
Maven Lifecycle Phases
Maven Plugins
Building Java Applications
13.SonarQube for CodeAnalysis
SonarQube is an open source platform developed by SonarSource for continuous inspection of Code Quality.
SonarQube offers reports on duplicated code, coding standards, unit tests, bugs and security vulnerabilities
SonarQube provides fully automated analysis and integration with Maven and Continuous Integration tools like Jenkins
Topics Covered - SonarQube
Introduction To Unit Testing
Perform White Box Testing
Analyzing Bugs and Vulnerabilities
Integration Of SonarQube with Maven
14.Jenkins for CI/CD
Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with Continuous Integration and Continuous Delivery.
Topics Covered - Jenkins
Introduction To Continuous Integration
Introduction To Continuous Delivery
Best Practices of CI-CD
Overview of Jenkins
Setting Up Jenkins
Setting Up Build Jobs
Build Parameters
Build Triggers
Jenkins Plugins
Using GitHub Webhooks
Automatically Build Binaries Using Maven On Code Changes
Distributed Builds Master - Slave Configuration
Code Quality Integration With SonarQube to test development code
Automated Releases Using Nexus Integration
Continuous Deployments
CI - CD Pipeline
Pipeline As Code
15.Test Management using Jira
JIRA Introduction
How to Install JIRA
JIRA Features
Creating Scrum Project in JIRA
Adding Users to our JIRA Account
JIRA Issue types
Workflow for a Project
Creating Product backlog in JIRA
Creating EPICS in JIRA
Creating User Stories in JIRA
Starting Sprint
Writing TestCases in JIRA
Executing TestCases from JIRA
Adding Bugs to the JIRA Project
Attaching screenshots of defects in JIRA