Software Testing Course · 2020-02-04 · >Setting up Eclipse to run Selenium programs >Knowledge...
Transcript of Software Testing Course · 2020-02-04 · >Setting up Eclipse to run Selenium programs >Knowledge...
Software Testing Course
By ABC for Technology and
Training Course Content
> Core Java > HTML
> Manual Testing > Automation Testing
> ETL Testing > SQL
Page 2 of 35
Core Java
Java Basics
History of programming languages
Differences between Binary level programming
Assembly level programming,
High level Programming
Object Oriented Programming
Versions of java and Features of each version
Advantages of java over other languages
WORA (Write once run anywhere)
Platform independent
Freely downloadable software for JDK
Types of memory available in computer
Loading and linking concepts
Types of software Architecture
Standalone architecture
Two tier architecture
Three tier architecture
Machine dependent and independent features
Page 3 of 35
Working mechanism of JDK and JVM
Architecture of JVM
Object Orientation
What is Object Orientation?
Advantages of Object Orientation
Properties(data) and Behaviors(methods) of Object
Java as object oriented language
Classes and Objects
main() method
Calling main() method
Working of main() method
Differences between classes and objects
Object creation in Java
Working of new operator
UML notation of class
Guesser game examples using object orientation
methodology
Bank application example using object orientation
methodology
Page 4 of 35
Naming conventions in Java
Data Types in Java
Different real world data types
Different datatypes supported by Java
Differences between real world types and Java data
types
Memory allocation for different data types in Java
Format(Memory representation) of different types
Difference between ASCII and unicode format
Object representation in memory
Different segments on RAM and their details
Programming examples on data types
Working of Loops and Types of loops
Types and Initialization of loops
Condition check in loops
Printing the loop body
Incrementation in the loop
Page 5 of 35
Condition check in the loop
Working of break, working of continue
Programming examples on loops
Types of Assignment
Assignment operators
Value type assignment
Reference type assignment
Programming examples on types of assignment
Types of variables in Java
Instance Variables
Local variable, Static variables
Memory allocation of all these variables
Stack and Heap concepts
Programming examples on types of variables
Arrays in Java
Basics of Arrays
Creation of arrays in Java
Page 6 of 35
Types of arrays in Java
Concepts of Jagged arrays in Java
Printing the values in the array using loops
Programming examples on arrays
Strings in Java
What are Strings in Java?
Creation of Strings in Java?
Different ways of creating String variables in Java
Immutatable concepts of Strings
Memory allocation of Strings
Constant pool and non constant pool concepts of
strings
String comparison in Java and its types
In built methods if string class given by Java
Mutable strings in Java
StringBuffer and StringBuilder class
Differences between StringBuffer and StringBuilder
Equals(), compareTo(), toString() method
Page 7 of 35
Programming examples on mutable Strings and
immutable Strings
Methods in Java
Types of methods
Methods accepting no input and generating no output
Methods accepting input and generating no output
Methods accepting no input and generating output
Method accepting input and generating output
Method overloading and its advantages
Programming examples on types of methods
Class members in Java
Static- Data, Method members, Blocks
Non Static- Data, Method members, Blocks
Need for Static and Non static block
Programming examples on members of class
Constructors in Java
Page 8 of 35
Constructor basics in Java
Object state initialization using Constructors,
Constructor working mechanism,
Constructor overloading
Types of Constructor in Java
Parameterized Constructor
Non Parameterized Constructor
Constructor chaining in Java
Programming examples on Constructors
Inheritance
Inheritance working principle in java
Code re-usability Using inheritance
UML notation of inheritance
Extends keyword in Java
Types of inheritance- Single, Multi Level, Hierarchial,
Multiple
Diamond shape inheritance
Why multiple and Diamond shape inheritance is not
supported in Java?
Constructor chainging revisited
Page 9 of 35
Super keyword
Object construction in inheritance
Method Overriding
this keyword
Advantages of using this keyword in Java
Parent reference to Child Object in Java
Up casting examples
Down-casting examples
Final modifier
has-a relationship
Difference between as-a and has-a relationship
Aggregation and composition
Difference between Aggregation and composition
Programming examples on is-a and has-a relationship
Abstract Classes
Abstract keyword for class
Difference between concrete method and abstract
method
Page 10 of 35
Difference between concrete class abstract class
Dynamic polymorphism using abstract classes
Programming examples on abstract class
Interfaces
What is an interface?
Creating an interface in Java
UML notation for interfaces
Inheritance using implements keyword
Difference between extends and implements keyword
Multiple inheritance using interfaces
Marker interface in Java
Programming examples on interfaces
Packages
Package definition
Package creation
Access Specifiers
private, public, protected, and default keyword
Programming examples on Packages
Page 11 of 35
Exception Handling
Definition and the situations of occurrences
Exceptions and Errors
Ducking and re-throwing
Hierarchy of Exception classes
Types of Exceptions, Handling Exceptions block and
importance
Propagation of un-handled Exceptions
try, catch, throws, finally keyword
Custom Exceptions and creating custom Exceptions
Exceptions in inheritance
Programming examples
Threads and Multi-threading
Definition
Multi-tasking types
Instantiation of threads
Life Cycle of a thread: Thread states and transactions
Page 12 of 35
Starting a thread
Joining a thread
Naming a thread, Thread priority
Garbage collection
Sleeping of a thread and importance
Thread priorities and yielding
Thread class and Runnable Interfaces
Creation of Threads using Thread class and Runnable
interfaces
Synchronizing codes on threads
Synchronized methods
Synchronized blocks
Inter thread communication
Dead locks in threads
Programming examples on Threads
Generics and Collections
Collection definitions
Hierarchy of collections
Page 13 of 35
Collection Interface
Collection class
List interfaces
Various classes under Collection
in-built methods of all the above classes using
Collection Framework for sorting:
a.Comparable interface
b. Comparator interface
Advantages of Comparator over comparable
Overriding hashCode() and equals()
Wrapper classes
Byte, Short, Integer, Long, Float, Double, Character,
Boolean
Auto Boxing and unboxing
Auto unboxing and boxing
Programming examples on collections
Page 14 of 35
HTML Content
Introduction
Basic tags
Formatted Text
Class and Id
Multi media
Lists
Links
Iframes
Tables
Border, Margin and padding
Buffers
Forms
Gradient, Bg image and Canvas
Animation and Transition
Page 15 of 35
Manual testing
Introduction
• Software ad application
• Types of the applications
>Standalone applications
>Client-Server applications
>Web applications
• Types of Software companies
>Product based
>Service based
• Testing and its importance
• Software quality
Software Life Cycles & Processes
1.SDLC (Software Development life cycle)
• Requirements and analysis
• Feasibility study
• Design
• Coding
Page 16 of 35
• Testing
• Installation and Maintenance Phase
1.1.SDLC Models
• Waterfall
• Spiral
• Prototype
• V&V
• Agile(Scrum Approach)
2. STLC (Software Testing Life Cycle)
• Requirement Analysis
• Test Planning
• Test case development
• Test Environment setup
• Test Execution
• Test Cycle closure
2.1.Entry and Exit Criteria
3. Agile
Agile Model and Methodologies
Scrum methodology
Page 17 of 35
Advantages
Testing Methodology
1.Black Box Testing
1.1.Types of Black Box Testing
1.1.1. Functional testing
>Integration Testing
Incremental Integration Testing
Non-Incremental Integration Testing
> System Testing
> User Acceptance Testing
Alpha Testing
Beta Testing
>Smoke Testing
>Sanity Testing
>Unit Testing
>Regression Testing
>End to End Testing
1.1.2. Non-functional testing
> Performance Testing
Load Testing
Page 18 of 35
Stress Testing
Soak Testing (Endurance Testing)
Spike Testing
> UI Testing (Graphical User Interface)
> Design Testing-Visual and Layout
> Usability Testing
> Security Testing
> Portability/Compatibility Testing
1.2.Black Box Testing Techniques 0r Test Case Design Techniques
• Boundary Value Analysis
• Equivalence Partitioning
• Error Guessing
• Decision Table
• State Transition
2. Whitebox Testing
2.1.Types of White Box Testing
• Unit Testing
Page 19 of 35
• Statement Testing
• Loop Testing
• Path Testing
• Condition Testing
• Memory Point of view
• Performance Point of view
2.2.White Box Testing Tools
(JUnit and TestNG- Selenium)
2.3.Advantages and Disadvantages of White Box Testing
3. Gray Box Testing
Types of Testing
>Smoke Testing and Sanity Testing
• Concept, examples and Differences
>Globalization Testing
• Internationalization Testing (I18N)
• Localization Testing (L10N)
>Regression Testing
Page 20 of 35
>Re-testing
>Static and Dynamic Testing
• Concept, examples and Differences
>Installation Testing
>Configuration Testing
>Compatibility Testing
>Usability Testing
> Exploratory Testing
>Security Testing
>Ad-hoc Testing
>Recovery Testing
>Reliability Testing
>Port Testing
> Mutation Testing
>Responsive Testing
Test Development
>Use case reviews & requirement document review to write
Test Scenarios and Test Cases.
>Types of Test Cases Templates of Testing Documents
Page 21 of 35
>Test Plan & Contents of Test Plan
>Test Case Design Techniques
Test Execution
>Execution Process
>End-to-End Scenario execution
>Test Execution Report
Bug Tracking and Reporting
>Types of Bugs
>Identifying and reporting bugs
>Bug Lifecycle
>Classical Bug Reporting
>Bug Tracking Tool
• Jira
• Mantis
• Bugzilla
Test Closure Activity
>Test Execution Stop Criteria
Page 22 of 35
>Test Summary Report
Real Time Process Awareness with Terminologies
>Quality Assurance
>Quality Control
>Inspection
>Audit
>Build release process
>Test Bed
>Common Repository Management
>Patch
>Respin
>Defective Product Change Request
>Impact Analysis
>Defect Age
>Templates
Test Metrics
>Importance of Test metrics
Page 23 of 35
>Different types of Test metrics
Project
>Testing a real-time Application
> Requirement study
> Preparing Test Plan Document
> Writing Test Scenarios and Test Cases using Test Design
Techniques
>Requirement Traceability Matrix Document
>Test Case Review
> Test Case Execution
> Defect Tracking
>Test execution Report
>Retrospect Meeting
Automation Testing-Selenium
Page 24 of 35
1. History of Selenium
>Selenium core
>Selenium IDE
Knowledge of Selenium IDE
Using Selenium IDE for Generating Scripts
Using Selenium IDE for Generating Test Suite
Running test script and Test suite
>Selenium WebDriver
>Selenium Grid
Selenium WebDriver
>Introduction to WebDriver
>Setting up Eclipse to run Selenium programs
>Knowledge on jars and driver software
>Steps to load driver software
Selenium Basic Programs
>Basic Introduction of creating packages in java
>Launching Chrome Browser, Firefox Browser and IE
Browser
Introduction to Inbuilt Methods of WebDriver Interface
Page 25 of 35
> get()
> getTitle()
> getCurrentUrl()
> getPageSource()
> close() & quit()
> findElement()
> findElements()
> Polymorphism and Non-Polymorphism in Selenium
Locators in Selenium
Basic Locators
• Id
• Name
• ClassName
• TagName
• LinkText
• PartialLinkText
Advanced Locators
• Css Selector
Page 26 of 35
• Xpath
>Types of Xpath
Absolute Xpath
Relative Xpath
> Xpath with attributes
> Locating element using text()
> Locating element using forward and
backward traversing
> Locating element using contains()
Handling WebElements
> Text box
> Buttons
> Radio buttons
> Combo-box (drop down)
> Check box
> Handling links
Synchronization in Selenium
> Implicit wait
Page 27 of 35
> Explicit wait
> Fluent wait
Boolean Methods
> isSelected()
> isVisible()
> isEnabled()
> isDisplayed()
Handling popups
> Alert box popup
> Confirm box popup
> Prompt box popup
Handling Frames
> Single Frames
> Multiple Frames
Events
> Keyboard events
> Mouse events
Handling Tables
> Handling tables using xpath
Page 28 of 35
FRAMEWORKS
1. Data Driven Framework
1.1. Using properties file
1.2. Apache POI (read and write to excel sheet)
2. Keyword Driven Framework
2.1. Using properties file
3. Hybrid Driven Framework
3.1. Using properties file, Using Excel sheet
4. Page Object Model
4.1. Identifying the Objects of application through object
orientation
4.2. Using MVC Architecture
5. Page Factory Model
5.1. Basic Knowledge of annotations
5.1. Identifying the objects of application through object
orientation
5.3. Accessing the element through locations(annotations)
5.4. Performing the action through annotations
Page 29 of 35
6. Test Driven Development (TDD)
6.1. Junit 5
Junit Architecture
Junit plug with eclipse
JUnit Annotations
JUnit Classes
JUnit Execution procedure
JUnit Assert Class
JUnit Test Cases Class
JUnit TestResult Class
JUnit Test Suite Class
6.2. TestNG
TestNg Annotations
Simple project using TestNG framework
Handling exceptions in TestNG Framework
Generating reports using TestNG
Sending the Test Result through xml
Various attributes of Test Annotation
Priorities
Page 30 of 35
Crossbrowser-Testing
Dataproviders
Parameterisation
7. Behavior Driven Development (BDD)
1. Cucumber Framework
• Cucumber Implementation
i. Creating First Feature File
ii. Creating First Step Definition File
iii. Executing First Feature File with CucumberOptions
and junit
iv. Running Cucumber Automation with Maven
• Generating Basic Cucumber HTML and json Report
• Cucumber Options:
i. Feature and Glue
ii. Monochrome and Dryrun
• Cucumber Options:
i. Format and Strict
ii. Tags
8.AutoIT
Handing uploading and downloading of files
Source Code Management Tools
1. Maven Framework
Installation
Configuration and Execution of project
Page 31 of 35
2. GitHub
Creating a new remotre repository and uploading
the project to repository
3. Jenkins
Installation
Configuration and running the build automatically
Tools
For Automation - Selenium
For Performance - Jmeter and LoadRunner
For ETL Testing - Informatica
For unit testing – Junit, TestNG
For Continuous Integration-Jira
For Bug Tracking - JIRA, Mantis
ETL Testing Content
Introduction
Page 32 of 35
ETL
Data Ware House
DWH architecture
Types of data bases
Difference between data mart & data ware house
Features of OLTP systems
Normalization & De-normalization Applications
Differences between OLTP & OLAP systems
Contents
Data modeling
ETL testing
Introduction to ETL testing
Overview of ETL operations
Test strategies for ETL testing
Strategies in detail
Informatica power center
TOAD
Transformations
Page 33 of 35
--Aggregator transformation
--Filter transformation
--Expression transformation
--Router transformation
--Look up transformation
--Joiner transformation
--Sorter transformation
--Sequence generator transformation
--Straight full transformation
Log file
Test scenarios
STM document
SCD
--Type 1 SCD
--Type 2 SCD
Differences between primary & Surrogate key
Data base testing vs Date Ware House testing
Job dependency testing
Page 34 of 35
Tidal scheduling tool
Active & Passive transformation
SQL content
Introduction
ER diagram
Data Types
Basic Queries
Operators as Symbols
Column Aliases in SQL
Concatenation Operation in SQL
Getting description of Table in Oracle
Relational Operators in SQL
Operators as Keywords
Between and Operators
In Operators
Like Operators
Is Null Operators
Logical Operators
Page 35 of 35
Functions in SQL
The Group by Clause
The Having Clause
The Order by Clause
Joins
DCL, TCL, DML
Data definition Language Statements
Set Operators
Normalization
Views
Index
Triggers