Unit - 4 - Notes ST
Unit - 4 - Notes ST
Unit - 4
Software Testing Activities: Levels of Testing, Debugging, Testing techniques and their
applicability, Exploratory Testing Automated Test Data Generation: Test Data, Approaches to test
data generation, test data generation using genetic algorithm, Test Data Generation Tools, Software
Testing Tools, and Software test Plan.
● Check test logs against exit criteria in test planning and identify what is
remaining to test or fix
● Assess if more tests are needed or if the initial exit criteria needs to be
modified
● Write a test summary report for stakeholders
Test Closure Activities:
Ending testing includes various activities to collect data from completed test activities and
consolidate experience, test ware, facts and numbers.
Levels of Testing
1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance Testing
Debugging
Debugging is the process of identifying and resolving errors, or bugs, in a software system. It
is an important aspect of software engineering because bugs can cause a software system to
malfunction, and can lead to poor performance or incorrect results. Debugging can be a
time-consuming and complex task, but it is essential for ensuring that a software system is
functioning correctly.
There are several common methods and techniques used in debugging, including:
1. Code Inspection: This involves manually reviewing the source code of a software
system to identify potential bugs or errors.
2. Debugging Tools: There are various tools available for debugging such as debuggers,
trace tools, and profilers that can be used to identify and resolve bugs.
3. Unit Testing: This involves testing individual units or components of a software
system to identify bugs or errors.
4. Integration Testing: This involves testing the interactions between different
components of a software system to identify bugs or errors.
5. System Testing: This involves testing the entire software system to identify bugs or
errors.
6. Monitoring: This involves monitoring a software system for unusual behavior or
performance issues that can indicate the presence of bugs or errors.
7. Logging: This involves recording events and messages related to the software system,
which can be used to identify bugs or errors.
The major feature of this testing that makes it more efficient than the above technique
is the speed, automated data generation technique produces data as in an expedited
manner through analyzing large volume of data in a small-time interval. In this
scheme, we use automated tools, there are many available in the market.
Pros:
1. The data sets generated by this scheme are highly accurate.
2. Data generation speed is very fast.
Cons:
1. The one demerit of this method is that it is a costlier method to implement.
2. The second one is that these tools take time to understand the system.
This method is done with the help of using SQL queries. Here a tester writes the
relevant query and injects it into the database in order to populate the required data
sets with respect to the test cases. This is also an easier method which generates a
large amount of data in just a few minutes. We can update the database in this scheme
if some new datasets are found through other resources like sample XML documents
etc could be updated for future use if required.
Pros:
1. It is less time-consuming technique.
2. Less expertise required as compared to the above technique as you only need to write
a correct query to populate data required.
Cons:
1. If you write any invalid query or incorrect it may populate illogical dataset or may
cause the failure of your database system so keep attention while injecting any query
into database.
4) Third-party tool:
A number of tools are available in the market that is processed or provided by the out
premises tools. These tools first understand the scenarios of your system under testing
and then generates dataset as per the requirement. These tools are customizable as per
your need of the business. These tools provide wide coverage and accuracy in
generating datasets.
Pros:
1. These tools are accurate because they first understand the entire system and then
generated the datasets accordingly.
Cons:
1. Costlier technique to implement because the price of such a tool is high as compared
to other technique.
2. Less coverage in case of heterogeneous testing environment because these tools aren’t
generic in nature.
Software Testing tools are the tools that are used for the testing of software.
Software testing tools are often used to assure firmness, thoroughness, and
performance in testing software products. Unit testing and subsequent
integration testing can be performed by software testing tools. These tools are
used to fulfill all the requirements of planned testing activities. These tools also
work as commercial software testing tools. The quality of the software is
evaluated by software testers with the help of various testing tools.
Types of Testing Tools
Software testing is of two types, static testing, and dynamic testing. Also, the
tools used during these testing are named accordingly on these testings. Testing
tools can be categorized into two types which are as follows:
1. Static Test Tools: Static test tools are used to work on the static testing
processes. In the testing through these tools, the typical approach is taken. These
tools do not test the real execution of the software. Certain input and output are
not required in these tools. Static test tools consist of the following:
● Flow analyzers: Flow analyzers provides flexibility in the data flow from
input to output.
● Path Tests: It finds the not used code and code with inconsistency in the
software.
● Coverage Analyzers: All rationale paths in the software are assured by
the coverage analyzers.
● Interface Analyzers: They check out the consequences of passing
variables and data in the modules.
2. Dynamic Test Tools: Dynamic testing process is performed by the dynamic
test tools. These tools test the software with existing or current data. Dynamic
test tools comprise the following:
● Test driver: The test driver provides the input data to a
module-under-test (MUT).
● Test Beds: It displays source code along with the program under
execution at the same time.
● Emulators: Emulators provide the response facilities which are used to
imitate parts of the system not yet developed.
● Mutation Analyzers: They are used for testing the fault tolerance of the
system by knowingly providing the errors in the code of the software.
Top 10 Software Testing Tools
1. TestComplete: TestComplete developed by SmartBear Software is a
functional automated testing tool that ensures the quality of the application
without sacrificing quality or agility.
Features:
● TestComplete has built-in keyword-driven test editor that consists of
keyword operations that correspond to automated testing actions.
● It records the key actions that are necessary to replay test and discard all
unneeded actions.
● It can run several automated tests across separate virtual machines.
● It has built-in code editor that helps testers write scripts manually.
● It automatically captures screenshots during test recording and playback.
2. LambdaTest: LambdaTest is a cross-browser testing tool that helps to
evaluate how web application responds when accessed through a variety of
different browsers.
Features:
● It has Selenium scripts on 3000+ browsers and operating system
environments, giving higher test coverage.
● It can perform automated cross-browser testing of locally hosted web
pages using LambdaTest tunnel.
● It can also help to run a single test across multiple browser/ OS
configurations simultaneously.
3. TestRail: TestRail is a test management tool that helps to streamline software
testing processes, get visibility into QA. This tool is used by testers, developers,
and team leads to manage, track, and organize software testing efforts.
Features:
● It helps to manage test cases, plans, and runs.
● It helps to increase test coverage.
● It helps to get real-time insights into your QA progress.
● It helps to document test plans and track real-time progress.
4. Xray: Xray is a test management app for Jira that helps to plan, execute, and
track quality assurance with requirements traceability.
Features:
● It promotes Native Quality Management, where all tools, tests used by
QA are built natively into development environment like Jira.
● It integrates with leading automation frameworks like Cucumber,
Selenium, and JUnit to automate testing.
● It allows easy integration with CI tools like Jenkins, Bamboo, and
GitLab.
● It helps to easily map stories using BDD.
5. Zephyr Scale: Zephyr Scale is a test management provides a smarter and
more structured way to plan, manage, and measure tests inside Jira.
Features:
● It offers cross-project integration, traceability, and a structured designed
useful in large environments.
● It helps to scale tests in Jira.
● It helps to improve visibility, data analysis, and collaboration.
● It provides detailed changed history, test case versioning, and end-to-end
traceability with Jira issues and challenges.
6. Selenium: Selenium provides a playback tool for authoring tests across most
web browsers without the need to learn a test scripting language.
Features:
● It provides multi-browser support.
● It makes it easy to identify web elements on the web apps with the help of
its several locators.
● It is able to execute test cases quicker than the other tools.
7. Ranorex: Ranorex Studio is a GUI test automation framework used for
testing web-based, desktop, and mobile applications. It does not have its own
scripting language to automate application.
Features:
● It helps to automate tests on Windows desktop, then execute locally or
remotely on real or virtual machines.
● It runs tests in parallel to accelerate cross-browser testing for Chrome,
Firefox, Safari, etc.
● It tests on real iOS or Android devices, simulators, emulators, etc.
8. TestProject: TestProject is a test automation tool that allows users to create
automated tests for mobile and web applications. It is built on top of popular
frameworks like Selenium and Appium.
Features:
● It is a free end-to-end test automation platform for web, mobile, and API
testing.
● Tests are saved as local files directly on your machine with no
cloud-footprint to get a complete offline experience.
● It helps to create reliable codeless tests powered by self-healing, adaptive
wait, and community add-ons.
● It provides insights about release quality, step-by-step detailed report with
screenshots and logs.
9. Katalon Platform: Katalon Platform is a comprehensive quality
management platform that enables team to easily and efficiently test, launch,
and optimize the best digital experiences.
Features:
● It is designed to create and reuse automated test scripts for UI without
coding.
● It allows running automated tests of UI elements including pop-ups,
iFrames, and wait-time.
● It eases deployment and allows wider set of integrations compared to
Selenium.
10. UFT/QTP: Micro Focus UFT is a software that provides functional and
regression tests automation for software applications and environments.
Features:
● It helps to accelerate end-to-end testing.
● It boasts AI-based machine learning and advanced OCR for advanced
object recognition.
● It helps to test both front-end functionality and back-end service parts.