Course Report
Course Report
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.
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.
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)
Introduction to HP QTP/UFT:
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.
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.
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.
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.
"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.
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.