0% found this document useful (0 votes)
6 views

Course Report

Course Report
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Course Report

Course Report
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Name : Jay Pipaliya Enroll : 92110133025

Subject : Software Testing Date : 06/04/2024

Course - 1 : Software Testing Fundamentals


Key topics covered in the course include:

Testing Models:
In this chapter learn about different testing models, such as waterfall, agile, and DevOps,
and understand how each model influences the testing approach.
The course covers three testing models: waterfall, agile, and DevOps. The waterfall model
follows a sequential approach to software development, with testing occurring after the development
phase. The agile model promotes iterative development, collaboration, and flexibility, with
continuous testing and feedback loops. The DevOps model emphasizes collaboration, automation,
and continuous delivery, with automated testing, continuous integration, and deployment.

Test Management Practices:


It covers test planning, execution, and reporting, equipping participants with the knowledge
and skills to manage testing activities throughout the software development lifecycle. Participants
learn to develop comprehensive test plans, identify test scenarios, prioritize testing efforts, and
define entry and exit criteria. They also learn to set up test environments, execute test cases, and
monitor progress. The course also covers test reporting techniques, generating test reports, and using
test automation tools to streamline processes. This course equips participants with the skills to
optimize testing efforts and deliver high-quality software products.

Principles of Software Testing:


These principles include identifying defects, prioritizing early testing, clustering defects,
avoiding the pesticide paradox, being context-dependent, and avoiding the absence-of-errors fallacy.
Testing aims to identify discrepancies between expected and actual system behavior, ensuring
software meets requirements and quality standards. Exhaustive testing is impractical due to resource
constraints, so testing should be prioritized based on risk analysis, requirements coverage, and
business priorities. Early testing helps prevent defects from propagating into subsequent stages, while
clustering defects in high-risk areas can efficiently uncover them. Testing should be risk-based,
prioritizing areas critical to business objectives, high complexity, or prone to failure.

Testing Types :

Static Testing:
Static testing involves reviewing software artifacts (such as requirements documents, design
specifications, and code) without executing the code. Its primary aim is to identify defects early in the
development process. Techniques used in static testing include walkthroughs, inspections, and peer
reviews. Static testing helps in improving the quality of deliverables, enhancing code maintainability,
and reducing the overall cost of defect fixing.

Dynamic Testing:
Dynamic testing involves executing the software and observing its behavior during runtime. It verifies
the actual behavior of the software against expected results. Techniques used in dynamic testing
include test case execution, test automation, and debugging. Dynamic testing is crucial for uncovering
defects related to functionality, performance, and reliability that may not be apparent through static
testing alone.

Functional Testing:
Functional testing verifies whether the software system meets the specified functional requirements.
It focuses on testing the functional aspects of the software, such as input validation, data
manipulation, and output correctness. Techniques used in functional testing include black-box testing,
white-box testing, and acceptance testing. Functional testing ensures that the software behaves as
expected and meets user requirements.

Non-Functional Testing:
Non-functional testing evaluates the attributes of the software system that are not directly related to
its functional behavior. This includes aspects such as performance, usability, security, and reliability.
Techniques used in non-functional testing include load testing, stress testing, security testing, and
usability testing. Non-functional testing ensures that the software meets quality attributes such as
scalability, responsiveness, and security compliance.

Structural Testing:
Structural testing, also known as white-box testing, focuses on testing the internal structure of the
software, including code coverage analysis and path testing. It aims to ensure that the software code
is robust, reliable, and free from logical errors. Techniques used in structural testing include
statement coverage, branch coverage, and condition coverage. Structural testing complements
functional testing by verifying the correctness of the software implementation at the code level.

Test Case Design and Optimization:


Test case design involves a thorough analysis of software requirements, identifying test
scenarios, documenting test cases, using boundary value analysis, and error guessing. Test cases are
prioritized based on criticality, risk, and frequency of use, and traced back to requirements for
comprehensive coverage. Reuse is achieved by encapsulating common functionalities into reusable
test cases, and parameterization allows for variations in input data. Regression test suites are
optimized by removing redundant ones. Test cases are documented, version-controlled, and executed
to monitor progress, identify defects, and measure effectiveness. This approach ensures a robust test
suite for efficient software functionality verification and quality product delivery.

Course - 2 : Selenium Basics


What is Selenium
Selenium is a suite of tools which can automate actions on web browsers. Each tool is
developed to support a specific kind of automation approach.\

Features of Selenium:
Selenium is open source. There is no licensing cost involved and it can be downloaded free.
Unlike other automation tools which need specific programming language knowledge to create test
scripts, Selenium supports scripting in 10 different languages as of now. Selenium seamlessly
integrates with popular web development tools like Microsoft Visual Studio, Apache Maven, Jenkins,
Garils,etc.

Advantages of Selenium:
There is no initial investement on procuring automation tool which saves thousands of
dollars on the project budget. There is no need to train programmers in a new language. Selenium can
be readily used for creating test scripts in a language they are currently familiar with. In project
methodologies used to release software updates within short durations, such as agile and DevOps,
Selenium implementation saves a 100s of hours every release by enabling Test Driven
Development(TDD), Continuous Integration(CI) and Continous Testing(CT)

Features of Selenium WebDriver


Run tests on any of these browsers - Internet Explorer, Firefox, Chrome, Safari and Opera.
Create tests using any of these programming languages – Java, C#, JavaScript, Perl, PHP,
Python, R and Ruby.
Interact with complex UI elements like Ajax controls.
Easily create maintainable large test suites for your test automation project using any freely
available open source unit testing framework.

Course - 3 : HP QTP/UFT Training - Quick Test Professional


HP Quick Test Professional (QTP), now known as Micro Focus Unified Functional Testing (UFT), is a
popular automation testing tool used for functional and regression testing of software applications.
Below is a brief outline of what might be covered in an HP QTP/UFT training course:

Introduction to HP QTP/UFT:

Overview of automation testing and its significance.


Introduction to HP QTP/UFT, its features, and capabilities. Understanding the GUI (Graphical User
Interface) of QTP/UFT.

Recording and Playback:

Recording test scripts using the QTP/UFT recording feature. Playback and execution of recorded
scripts. Understanding checkpoints and output values.

Object Identification:

Basics of object identification. Configuring and customizing object identification properties. Handling
dynamic objects and object repositories.

VBScripting for QTP/UFT:

Introduction to VBScript and its role in QTP/UFT.Fundamentals of VBScripting including variables, data
types, operators, loops, and conditional statements. Writing and executing VBScript code within
QTP/UFT.

Parameterization and Data-Driven Testing:

Parameterizing test scripts to handle dynamic data. Data-driven testing using external data sources
such as Excel spreadsheets or databases. Implementing data tables and data-driven actions.

Keyword Driven Testing:

Understanding keyword-driven testing methodology. Creating and managing keyword-driven test


scripts in QTP/UFT. Enhancing reusability and maintainability using keyword-driven frameworks.

Advanced Scripting Techniques:


Working with advanced scripting concepts such as functions, libraries, and modules. Exception
handling and error recovery mechanisms. Integrating external functions and components into
QTP/UFT scripts.

Advanced Features and Add-Ins:


Exploring advanced features of QTP/UFT such as object spy, smart identification, and virtual objects.
Overview of add-ins and their role in extending QTP/UFT functionality for specific technologies or
environments.

Automation Frameworks:
Introduction to automation frameworks and their benefits. Implementing and customizing
automation frameworks in QTP/UFT. Best practices for designing scalable and maintainable
automation frameworks.

Integration and Reporting:


Integrating QTP/UFT with version control systems and test management tools. Generating test
reports and analyzing test results. Collaborating with team members and stakeholders using QTP/UFT.

Course - 4 : The Art of Software Testing

"The Art of Software Testing" is a seminal book written by Glenford J. Myers, first published in 1979. It
is considered one of the classic texts in the field of software testing and has been influential in
shaping modern testing methodologies. The book covers a wide range of topics related to software
testing, providing insights into principles, techniques, and best practices.

Fundamental Concepts:
The book introduces fundamental concepts and principles of software testing, emphasizing
the importance of testing in the software development process.

Testing Techniques:
Myers discusses various testing techniques and strategies, including black-box testing, white-
box testing, equivalence partitioning, boundary value analysis, and error guessing. He provides
practical examples and guidelines for applying these techniques effectively.

Test Case Design:


The book delves into the process of designing test cases, including techniques for generating
test inputs, defining test scenarios, and prioritizing test cases based on risk.

Test Planning and Management:


Myers covers the essentials of test planning and management, including topics such as test
strategy development, test documentation, test execution, and defect tracking.

Regression Testing:
The importance of regression testing is highlighted, along with strategies for selecting and
prioritizing regression test cases to ensure software quality across multiple releases.

Automated Testing:
While written in the late 1970s, before the widespread adoption of automated testing tools,
Myers discusses the concept of automated testing and its potential benefits. He provides insights into
the principles underlying automated testing and considerations for its effective implementation.

Quality Assurance:
The book addresses the broader concept of quality assurance in software development,
emphasizing the role of testing as a key component of quality assurance efforts.
Ethical Considerations:
Myers touches upon ethical considerations in software testing, such as the responsibilities of
testers, the importance of impartiality, and the potential impact of testing on end-users.

Overall, "The Art of Software Testing" provides a comprehensive and timeless exploration of software
testing principles and practices. It remains relevant to software testers, developers, and quality
assurance professionals seeking to deepen their understanding of the art and science of software
testing. Despite being written several decades ago, many of the concepts and techniques discussed in
the book continue to inform modern approaches to software testing.

You might also like