Software Testing

Professional Certification Course to enter in IT Industry with Knowledge and Experience

banner

Complete Course Curriculum

Course Duration: 6- Months

Course Fees: 30000/-

Manual Testing

  • Introduction to testing

  • Verification vs validation

  • Probabilities of getting an error in an application

  • Waterfall
  • Prototype
  • Spiral
  • Incremental (Agile methodology and Scrum Framework)
  • V-Model

  • Advantages and Disadvantages of each software development life cycle

  • Principles of Testing

  • STLC –Software Testing Life Cycle

  • Difference between Test case, Use case and Scenario.

  • How to prepare test plan and strategy

  • How to prepare a test case template?

  • Difference between Error, bug, defect, and failure

  • Bug Life cycle

  • How to Prepare the Bug template?

  • Bug Tracking tool

  • Types of Testing

  • Difference between Static and Dynamic testing

  • Difference between Functional and Non-functional testing

  • Black box testing and its types

  • White box testing and its types 

  • System Integration Testing vs User Acceptance Testing

  • Entry Criteria and Exit Criteria

  • Test Environment and Test data preparation

  • Statement coverage
  • Branch Coverage
  • path coverage
  • Cyclometric Complexity

  • Big Bang Integration
  • Incremental Approach – Top-Down, Bottom-up, and Hybrid

  • Requirement traceability matrix

Automation Testing

Pre-Selenium

  • BasicsSetup Java environment – Download JDK and Setup eclipse
  • Keywords and Syntax
  • variables, operators, and control flows
  • OOPs overview from Java context
  • Conditions, Loops, Access and non-access modifiers
  • Exception Handling, File and DB handling
  • Collections overview, and ArrayList example

  • How to Install & set Path.
  • A Simple Java Program
  • Compiling & executing Java Program
  • Phases of Java Program
  • Analysis of a Java Program
  • Understanding Syntax and Semantic Error
  • Runtime Exception
  • Name of a Java Source File
  • Platform Independency
  • Java Technology (JDK, JRE, JVM, JIT)
  • Features of Java
  • Text Editors
  • Consoles

  • Naming convention of Java language
  • Comments
  • Statements
  • Blocks (Static, Non-static/instance)
  • Identifiers
  • Keywords
  • Literals
  • Primitive Data Types, Range
  •  Reference (User defined) Data type
  • Variables (Primitive, Reference)
  • Type Casting, Default Value
  • Operators
  • Program/Interview questions
  • Control Structures

  • Java program inputs from Keyboard
  • Methods of Keyboard inputs
  • Scanner, Buffered Reader
  • Problem Solving
  • Java Array
  • What is Array
  • Array Declaration in java vs C and C++.
  • Instantiation of an Array
  • String vs character array.Accessing Array
  • Elements, Default Value, for-each loop, varargs
  • Length of an Array (What is –Array Index Out Of Bounds Exception)
  • Increasing, Decreasing the Size and Copy of an Array
  • Multi-Dimensional Arrays
  • Application Compilation and Run

  • Procedural Vs Object Oriented Program
  • Different type of Program Procedural Vs Object Oriented.
  • Top Down Vs Bottom Up Approach
  • Introduction to Object Oriented
  • Abstraction, Encapsulation, Inheritance,
  • Polymorphism.
  • Introduction to Classes and Objects
  • Custom Class Definition
  • Instance and Static Variables
  • Different ways to create Object Instance
  • Instance Variable and it’s role in a Class
  • Constructors, types of Constructor,
  • Constructor Rule, Constructor Overloading
  • Static Variable and it’s use.
  • Methods and their behavior.
  • Constructor vs Methods
  • “this” Keyword
  • Java Access Modifiers (and Specifiers)
  • Call by value, Call by reference

  • What is a Command-Line Argument?
  • Java Application with Command-Line Arguments
  • Conversion of Command-Line Arguments
  • Passing Command-Line Arguments
  • Using methods (Static , Non Static)

  • Using various Editors

  • Program Compilation, Execution in Editor

  • Using Eclipse IDE

  • Project Set Up

  • Source File Generation

  • Application Compilation and Run

  • First View of Inner Class
  • Outer Class Access
  • Types of Inner Class

  • Complete concepts of Inheritance
  • Sub-Classes
  • Object Classes
  • Constructor Calling Chain
  • The use of “super” Keyword
  • The use of “private” keyword inheritance.
  • Reference Casting

  • Introduction to Abstract Methods
  • Abstract Classes and Interface
  • Interface as a Type
  • Interface v/s Abstract Class
  • Interface Definition
  • Interface Implementation
  • Multiple Interfaces’ Implementation
  • Interfaces’ Inheritance
  • How to create object of Interface

  • Introduction to Polymorphism
  • Types of Polymorphism
  • Overloading Methods
  • Overriding Methods
  • Hiding Methods
  • Final Class and Method
  • “Is-A” vs “Has-A”
  • Association Vs Aggregation

  • Package and Class path and its use
  • First look into Packages
  • First look into Class path
  • Class path Setting
  • Class Import
  • Package Import
  • Role of public, protected, default and private w.r.t package
  • Namespace Management
  • Package vs. Header File
  • Creating and Using the Sub Package
  • Sources and Class Files Management

  • Java.lang Hierarchy
  • Object class and using toString(), equals(),hashCode(), clone(), finalize() etc
  • Using Runtime Class, Process Class to play music, video from Java Program
  • Primitives and Wrapper Class
  • Math Class
  • String, StringBuffer, StringBuilder Class
  • String Constant Pool
  • Wrapper Classes
  • System Class using gc(), exit(), etc.

  • Auto boxing and Auto unboxing
  • Static import.
  • Instance of operator.
  • Enum and its use in Java
  • Working with jar

  • Garbage Collection Introduction
  • Advantages of Garbage Collection
  • Garbage Collection Procedure
  • Java API

  • Introduction to Exceptions
  • Effects of Exceptions
  • Exception Handling Mechanism
  • Try, catch, finally blocks
  • Unchecked Exception
  • Throw & throws keyword
  • Custom Exception Class
  • Chained Exception.
  • Resource handling & multiple exception class

  • Creating a Thread by inheriting from Thread class
  • Run() and start() method.
  • Constructor of Thread Class
  • Various Method of Thread Class
  • Runnable Interface Implementation
  • Thread Group
  • Thread States and Priorities
  • Synchronization method, block
  • Class & Object Level Lock
  • Deadlock & its Prevention
  • Inter thread Synchronization
  • Life Cycle of Thread
  • Deprecated methods : stop(), suspend(), resume(), etc

  • Types of Streams
  • Stream Class Hierarchy
  • Using File Class
  • Copy and Paste the content of a file
  • Byte Streams vs Character Streams
  • Text File vs Binary File
  • Character Reading from Keyboard by Input Stream Reader
  • Reading a Line/String from Keyboard by Buffered Reader
  • Standard I/O Streams Using Data Streams to read/write

  • Using Object Streams to read/write object
  • Transient Keyword
  • Serialization Process
  • Deserialization Process

  • Generics(Templates)
  • What is generic
  • Creating User defined Generic classes
  • The java.util package
  • Collection
  • What is Collection Framework
  • List, Set & Map interfaces
  • Using Vector, Array List, Stack, Linked List, etc.
  • Using Collections class for sorting
  • Using Hashtable, Hash Map, Tree Map,
  • SortedMap, LinkedHashMap etc.
  • Iterator, Enumerator.
  • Using Queue, Deque, SortedQue, etc.
  • Using HashSet, TreeSet, LinkedHashSet etc
  • Using Random class
  • Using Properties in a Java Program
  • Using user defined class for DataStructure
  • Using Date and Formatting Date class.
  • Interview related Question and Answer

  • Introduction to SQL
  • SQL Syntax
  • SQL Select, Distinct, Where
  • SQL And, Or, Not
  • SQL Order By
  • SQL Insert, Update, Delete
  • SQL Min and Max
  • SQL Count, Avg, Sum
  • SQL Like
  • SQL Wildcards
  • SQL In
  • SQL Between
  • SQL Aliases
  • SQL Joins
  • SQL Union
  • SQL Group By
  • SQL Having
  • SQL Any, All
  • SQL Case
  • SQL Stored Procedures
  • SQL Operators
  • SQL Create, Drop, Alter Table
  • SQL Constraints
  • SQL Not Null
  • SQL Unique
  • SQL Primary Key, Foreign Key
  • SQL Views
  • SQL Injection
  • SQL Data Types

Selenium

  • What is Automation Testing?
  • Advantages of Automation Testing?
  • Fundamentals of test automation
  • ROI in Automation
  • Automation framework
  • Various tools and comparison with Selenium

  • What is Selenium?
  • Components of Selenium Suite
  • Advantages of Selenium
  • Limitations of Selenium
  • What is Selenium WebDriver?
  • Advantages of Selenium
  • What is the difference between Selenium and QTP?

  • Why WebDriver?
  • Downloading webdriver Jars configuring in eclipse
  • What Selenium is and how it is used in the industry
  • Features of Selenium
  • Selenium IDE – Overview with a couple of examples
  • WebDriver Architecture
  • Installation of Selenium and supporting tools/Frameworks
  • Drivers for Firefox, IE, Chrome, Iphone, Android etc
  • What is the difference between Selenium RC and WD?

  • Installing Selenium IDE
  • Introduction to Selenium RC
  • “Selenese” – Selenium Commands
  • Actions, Asserts, Assessors.
  • Developing Test Cases & Test Suites with Selenium-IDE

  • eclipse-Oxygen
  • JDK 1.8
  • Firefox 47.0.1, firebug and file path
  • Set up TestNG, Maven and Selenium (2.53.1 &3.0 +) for eclipse

  • Simple WebDriver Program Demonstration
  • Basics of HTML page, tags, attributes, and visible texts
  • Importance of attributes in locating elements
  • Installation of Firebug and Firepath in Firefox browser
  • Locators and Eight Locating Techniques
  • Creating robust locators using CSS and XPath

  • Execute Tests in Firefox, Chrome, and Internet Explorer

  • WebDriver Commands: Driving Browsers and Handling Cookies

  • WebElement Commands

  • Handling Various WebElements

  • WebDriver Timeout Methods

  • Handling Multiple elements using find Elements() method
  • Handling Alerts, Pop-ups, and Frames
  • Limitation of Implicit Wait and how Explicit Wait helps
  • Advanced User Interactions
  • Taking Screenshots
  • Working with Firefox profiles
  • Handling File Uploads Using AutoIT
  • Introduction to Flash Application Testing using Selenium WebDriver 

  • Arranging Tests in 3-As format
  • F.I.R.S.T Principles and SRP
  • Various Annotations in TestNG
  • TestNG configuration file
  • Configuration Annotations
  • Attributes of @Test
  • Parallel Test Execution Capability
  • Assertion APIs
  • Passing Parameters to Tests
  • Configuring Test Suites
  • Reports using TestNG
  • Reports using ReportNG

  • Introduction to various frameworks
  • Page Object Design Pattern
  • Data Driven Tests using TestNG and POI
  • Introduction to Maven and ANT
  • Use of Log4j
  • Use of Listeners
  • Typical components of a framework
  • Overview of BDD, TDD
  • Code Coverage in Java
  • Overview of Sikuli tool for UI testing
  • Introduction to Jenkins
  • Configuring Jenkins to invoke Selenium Tests

  • What is Selenium Grid?
  • When to Use Selenium Grid
  • Setting up Grid – Hub and Nodes?
  • Configuring TestNG.xml to run tests on Grid

  • Installing MySQL Database
  • sql package
  • Overview on Connection Interface, Statement Interface, Prepared Statement and
    Resultset Interfaces.
  • Example program to Access Database.
  • Some examples on SELECT,UPDATE and DELETE queries
  • Some Webdriver examples using Data fetched from Database
  • Automation Test Framework

  • What is a framework
  • Types of framework
  • Data driven framework
  • Modular driven framework
  • Keyword driven framework
  • User Defined Keyword driven framework with implementation
  • Execute test scripts from the framework

  • Agile Testing
  • Behaviour Driven Development (BDD)
  • Advantages and Limitations of BDD
  • Cucumber Fundamentals
  • Gherkin Syntax in Cucumber
  • Step Definition for Cucumber Feature File
  • Advantages of Cucumber
  • Implementing BDD Framework using Cucumber

  • Learn Automate an eCommerce Application
  • Test Automation Requirements Description
  • What Next? How to Start?
  • High Level Framework
  • Configurability—No To Hard-Coding
  • Modularity—Re-Use And DRY
  • Test Data Management
  • Logging And Reporting

  • Introduction Mobile App Test Automation
  • Introduction to Appium
  • UIAutomator with Appium
  • Locating Elements – UIAutomator framework
  • Desired Capabilities for Android

Post-Selenium

  • OvidersIntroduction about maven
  • High-Level Overview
  • Ant vs Maven
  • Installation of Maven
  • Demo using Sample Maven Project

  • Downloading and configuring Github
  • Difference between CVC Versus DVC
  • Basic Git Commands
  • Working with Repositories
  • Setting up Repositories
  • Local and Remote Repositories
  • Create repository and cloning projects
  • Committing and Syncing the code
  • Reverting and Rolling Back the Code
  • Branch and Merging Concepts and Implementation
  • Stashing Changes
  • Resolving the Conflicts

  • About Jenkins
  • History of Jenkins
  • Splitting of Projects
  • What is Continuous Integration
  • Installing Jenkins
  • Creating a simple job
  • Integrating Jenkins to the Project

  • What is Ant
  • XSLT Report generation using TestNG and ANT
  • Building utility functions
  • Building BAT for project execution
  • Building BAT to run tests using ANT

  • JUnit’s Annotations
  • JUnit’s Methods
  • JUnit Test Suites
  • Ant Build and JUnit Reporting

  • Logging Introduction
  • Log4J framework Introduction
  • Layout Introduction
  • Types of Layout
  • Appender Introduction
  • Types of Appender

Course NameFees Duration
Complete C Programming Course3000/-45 Days
Complete C ++ Programming Course3000/-45 Days
Core Java Development Course6000/-2 Months
Basic Python Development6000/-2 Months
Basic Android Development6000/-2 Months
Web Designing6000/-2 Months
JavaScript6000/-2 Months
Graphic Designing6000/-2 Months
Digital Marketing6000/-2 Months
PHP & MySQL6000/-2 Months
Internet of Things (IOT)6000/-2 Months
Angular JS6000/-2 Months
Node JS6000/-2 Months
React JS6000/-2 Months
C #6000/-2 Months
Project Development

Have a look on Exciting Project ideas on Software Testing

You can build a simple calculator with C using switch cases or if-else statements. This calculator takes two operands and an arithmetic operator (+, -, *, /) from the user, however, you can expand the program to accept more than two operands and one operator by adding logic. Then, based on the operator entered by the user, it conducts the computation on the two operands. The input, however, must be in the format “number1 operator1 number2” (i.e. 2+4).

Using C language, you can also create a student management system. To handle students’ records (like Student’s roll number, Name, Subject, etc.) it employs files as a database to conduct file handling activities such as add, search, change, and remove entries. It appears a simple project but can be handy for schools or colleges that have to store records of thousands of students.

If you have ever lost track of which day of the week is today or the number of days in that particular month, you should build a calendar yourself. The Calendar is written in the C programming language, and this Calendar assists you in determining the date and day you require. We can implement it using simple if-else logic and switch-case statements. The display() function is used to display the calendar and it can be modified accordingly. It also has some additional functions.

This Phone book Project generates an external file to permanently store the user’s data (Name and phone number). The phone book is a very simple C project that will help you understand the core concepts of capacity, record keeping, and data structure. This program will show you how to add, list, edit or alter, look at, and delete data from a record.

An online voting system is a software platform that enables organizations to conduct votes and elections securely. A high-quality online voting system strikes a balance between ballot security, convenience, and the overall needs of a voting event. By collecting the input of your group in a systematic and verifiable manner, online voting tools and online election voting systems assist you in making crucial decisions. These decisions are frequently taken on a yearly basis – either during an event (such as your organization’s AGM) or at a specific time of the year. Alternatively, you may conduct regular polls among your colleagues (e.g. anonymous employee feedback surveys).

With this voting system, users can enter their preferences and the total votes and leading candidate can be calculated. It’s a straightforward C project that’s simple to grasp. Small-scale election efforts can benefit from this.

Tic-tac-toe, also known as noughts and crosses or Xs and Os, is a two-person paper and pencil game in which each player alternates marking squares in a three-by-three grid with an X or an O. The winner is the player who successfully places three of their markers in a horizontal, vertical, or diagonal row. You can implement this fun game using 2D arrays in the C programming language. It is important to use arrays while creating a Tic Tac Toe game in the C programming language. The Xs and Os are stored in separate arrays and passed across various functions in the code to maintain track of the game’s progress. You can play the game against the computer by entering the code here and selecting either X or O. The source code for the project is given below.

Mathematical operations are an everyday part of our life. Every day, we will connect with many forms of calculations in our environment. Matrices are mathematical structures in which integers are arranged in columns and rows. In actual life, matrices are used in many applications. The most common application is in the software sector, where pathfinder algorithms, image processing algorithms, and other algorithms are developed. Some fundamental matrix operations are performed in this project, with the user selecting the operation to be performed on the matrix. The matrices and their sizes are then entered. It’s worth noting that the project only considers square matrices.

Library management is a project that manages and preserves electronic book data based on the demands of students. Both students and library administrators can use the system to keep track of all the books available in the library. It allows both the administrator and the student to look for the desired book. The C files used to implement the system are: main.c, searchbook.c, issuebook.c, viewbook.c, and more.

The Electricity Cost Calculator project is an application-based micro project that predicts the following month’s electricity bill based on the appliances or loads used. Visual studio code was used to write the code for this project. This project employs a multi-file and multi-platform strategy (Linux and Windows). People who do not have a technical understanding of calculating power bills can use this program to forecast their electricity bills for the coming months; however, an electricity bill calculator must have the following features:

  • All loads’ power rating
  • Unit consumed per day
  • Units consumed per month, and
  • Total load calculation

 

The project’s goal is to inform a consumer about the MOVIE TICKET BOOKING SYSTEM so that they can order tickets. The project was created with the goal of making the process as simple and quick as possible. The user can book tickets, cancel tickets, and view all booking records using the system. Our project’s major purpose is to supply various forms of client facilities as well as excellent customer service. It should meet nearly all the conditions for reserving a ticket.

Snakes and ladders, also known as Moksha Patam, is an ancient Indian board game for two or more players that is still considered a worldwide classic today. It’s played on a gridded game board with numbered squares. On the board, there are several “ladders” and “snakes,” each linking two distinct board squares. The dice value can either be provided by the user or it can be generated randomly. If after moving, the pointer points to the block where the ladder is, the pointer is directed to the top of the ladder. If unfortunately, the pointer points to the mouth of a snake after moving, the pointer is redirected to the tail of the snake.

This system is built on the concept of booking bus tickets in advance. The user can check the bus schedule, book tickets, cancel reservations, and check the bus status board using this system. When purchasing tickets, the user must first enter the bus number, after which the system will display the entire number of bus seats along with the passengers’ names, and the user must then enter the number of tickets, seat number, and person’s name.
We will be using arrays, if-else logic, loop statements, and various functions like login(), cancel(), etc. to implement the project.

Pacman, like other classic games, is simple to play. In this game, you must consume as many small dots as possible to earn as many points as possible. The entire game was created using the C programming language. Graphics were employed in the creation of this game. To create the game, you have to first define the grid function to manage the grid structure. To control the movement, you can define functions such as move_right(), move_left(), move_up() and move_down(). C files to add ghosts and their functionalities, positions check, etc. can be added to make the game more fun. The customers will find this C Programming game to be simple to comprehend and manage.

Have a look on Exciting Project ideas on Software Testing

Combining Automation & Manual Testing

This project highlights the importance of automation testing and manual testing to cover the security, performance, and usability aspects of software development. To ensure automation testing doesn’t overlook user experience, and effectiveness of UI/UX design, it is important to incorporate manual testing in the software development process. In this manner, automation testers can handle the efficiency and speed aspects of QA while manual testers can test an application for its usability and user experience.

Testing Application Vulnerabilities Using Faulty Injection

This project employs a fault injector called “Pulad” to determine vulnerabilities in an application if any, prior to deployment. Pulad shifts from older approaches relying on static verification techniques that require executing the source code to reveal vulnerabilities. Fault injection, on the other hand, involves introducing bugs and errors to a system to determine its performance and endurance. The process is carried out before the execution of the code, to ascertain how potent a system is to withstand potential faults, and recover from them.

Software Testing to Combat Cybersecurity and Risk Compliance

With the digitization of business operations on the rise, 68% of business leaders report being wary of increasing cybersecurity risks. It is estimated that the worldwide information security market will reach $170.4 billion in 2022. This project highlights the necessity of software testing in protecting the privacy of end-users. Software products and networks must benefit from secure coding practices to counter cyber attacks and risk compliances. To do so, software professionals must invest in upskilling themselves to identify security threats and vulnerabilities and combat them.

Software Testing in IoT (Internet of Things)

Breast Cancer is the second most common cancer spotted worldwide since its awareness programs are rarely conducted. You may think that in this technologically advanced world full of solutions one can smartly fight the battle of breast cancer! This is appropriate to some extent but if a delay occurs those solutions won’t be doing the miracles. So, this is essential to identify the traits of such cancer and you may also contribute to this by opting for Breast Cancer Classification as your project. Here, the dataset would be IDC i.e. Invasive Ductal Carcinoma as this is the most usual manifestation of breast cancer found in more than 70 percent of the patients. The benefit is that this dataset will synthesize all the diagnostic images of cancer-inducing cells and with help of Deep Learning attributes, the classification of patients (either they are suffering from this type of cancer or not) will be done precisely so that it is easier to identify the complexity of a patient’s situation. Later, if required, the analysis will be used wisely for the patient’s benefit thereby helping him/her recover from the consequences of breast cancer as soon as possible.

Testing Angular Software

This project comprises software development tools, frameworks, and libraries to manage Angular projects. It is called Angular CLI and allows you to analyse and test Angular code, as well as create and manage it. Developers can use simple commands to generate necessary components and services, making running end-to-end unit tests easy and efficient.

Machine Learning and Artificial Intelligence to Enhance Automated Software Testing

It is no secret that AI usage will have a tremendous impact in almost every industry and aspect of creative technology. It Is estimated that the global market of Artificial Intelligence will be worth USD 733.7 billion by 2027. The aim of this project is to explore the role artificial intelligence and machine learning will play in software testing, especially in analysis and reports. Some of the aspects of AI that are likely to impact automated testing are Test Suite Optimization, Log Analytics, and Predictive Analytics, among others. These are expected to help automated testers to determine the scope of additional testing required for an application and improve testing strategies through analytics and reports.

Automated Network Security Testing Tool

The project is based on Infection Monkey, an automated, open-source, security testing tool designed for reviewing a network’s baseline security. It infects a system and allows users to monitor the progress of the infection and control it accordingly. It comprises multiple attacks, detection, and propagation capabilities.

Importance of Agile and DevOps Principles in Software Testing

Agile methodologies & DevOps are foundational principles of effective software testing around the world. The project focuses on using CI/CD principles to ensure rapid testing and deployment. Testing is carried out at different stages as developers verify the efficiency and performance of an application before releasing it into the real-world. Such practices in automated testing are proving to enhance the Quality Assurance process and resulting in better outcomes based on early bug detection, executing repeatable tasks, and benefits from constant feedback.

Frequently Asked Questions

  • All branch graduates students or undergraduate students who want to become professional in Software Testing.
  • All stream students eg. Engineering, BCA, BSc, BBA, Bcom, BA.
  • Any who wants to learn a new skill or improve skill for there career.

  • Computer Science knowledge.
  • Good knowledge any programming languages.

  • Yes, a course completion certificate is given after the completion of this course.

  • Both the offline and online modes are available for this course.

Why to join Webdroid

Webdroid is a leading IT Training and Software Development Company. Our Features include Internships, Training, and College Projects on almost every technologies.