0% found this document useful (0 votes)
45 views15 pages

Software Testing Course Curriculum

The document outlines the curriculum for a software testing course. The curriculum covers: 1. Fundamentals of testing such as the testing process, test types, and static vs dynamic testing. 2. Testing throughout the software development lifecycle including test levels, types and techniques. 3. Automation testing using Selenium, including locating elements, handling events, and synchronization. 4. Additional automation tools like TestNG, Cucumber, Git, Maven and Java for test automation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
45 views15 pages

Software Testing Course Curriculum

The document outlines the curriculum for a software testing course. The curriculum covers: 1. Fundamentals of testing such as the testing process, test types, and static vs dynamic testing. 2. Testing throughout the software development lifecycle including test levels, types and techniques. 3. Automation testing using Selenium, including locating elements, handling events, and synchronization. 4. Additional automation tools like TestNG, Cucumber, Git, Maven and Java for test automation.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

SOFTWARE TESTING COURSE CURRICULUM

1. FUNDAMENTALS OF TESTING

1. What is Testing?

a) Identify typical objectives of testing

b) Differentiate testing from debugging

2. Why is Testing Necessary?

a) Testing’s Contributions to Success: Give examples of why testing


is necessary

b) Quality Assurance and Testing: Describe the relationship between


testing and quality assurance and give examples of how testing
contributes to higher quality

c) Distinguish between error, defect, and failure

d) Defects, Root Causes and Effects: Distinguish between the root


cause of a defect and its effects

3. Test Process

a) Test Process in Context: Explain the impact of context on the test


process

b) Test Activities and Tasks: the test activities and respective tasks
within the test process

c) Test Work Products: Differentiate the work products that support


the test process

d) Traceability between the Test Basis and Test Work Products:


Explain the value of maintaining traceability between the test basis
and the test work product

4. The Psychology of Testing

a) 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


LIFE CYCLE

1. Software Development Lifecycle Models

a) Software Development and Software Testing: Explain the


relationships between software development activities and test
activities in the software development lifecycle

b) 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

a) Component Testing

b) Integration Testing

c) System Testing

d) 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

a) Functional Testing

b) Non-functional Testing

c) White-box Testing

d) Change-related Testing

e) Test Types and Test Levels


f) 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

a) Work Products that Can Be Examined by Static Testing

b) Benefits of Static Testing

2. Differences between Static and Dynamic Testing

a) Review Process

b) Work Product Review Process

c) Roles and responsibilities in a formal review

d) Review Types

e) Applying Review Techniques

f) Success Factors for Reviews

4. TEST TECHNIQUES

1. Categories of Test Techniques

a) Choosing Test Techniques

b) Categories of Test Techniques and Their Characteristics

2. Black-box Test Techniques

a) Equivalence Partitioning

b) Boundary Value Analysis

c) Decision Table Testing

d) State Transition Testing


e) Use Case Testing

f) Decision Testing and Coverage

3. Experience-based Test Techniques

a) Error Guessing

b) Exploratory Testing

5. TEST MANAGEMENT

1. Test Organization

a) Independent Testing

b) Tasks of a Test Manager and Tester

2. Test Planning and Estimation

a) Purpose and Content of a Test Plan

b) Test Strategy and Test Approach

c) Entry Criteria and Exit Criteria (Definition of Ready and Definition


of Done)

d) Test Execution Schedule

e) Factors Influencing the Test Effort

f) Test Estimation Techniques

3. Test Monitoring and Control

a) Metrics Used in Testing

b) Purposes, Contents, and Audiences for Test Reports

4. Configuration Management

5. Risks and Testing

a) Definition of Risk

b) Product and Project Risks


c) Risk-based Testing and Product Quality

d) 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 MANAGEMENT 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

You might also like