STA Unit01
STA Unit01
AUTOMATION
Nirmala Santiago
ASP/CSE
LICET
COURSE OBJECTIVES AND OUTCOMES
·To understand the basics of software CO1: Understand the basic concepts of
testing software testing and the need for software
· To learn how to do the testing and planning testing
effectively CO2: Design Test planning and different
·To build test cases and execute them activities involved in test planning
·To focus on wide aspects of testing and CO3: Design effective test cases that can
understanding multiple facets of testing uncover critical defects in the application
·To get an insight about test automation and CO4: Carry out advanced types of testing
the tools used for test automation
CO5: Automate the software testing using
Selenium and Testing
UNIT I FOUNDATIONS OF SOFTWARE TESTING
Software Error: An incorrect internal state that is the manifestation of some fault.
Software Failure: External, incorrect behavior with respect to the requirements or another
description of the expected behavior.
GOALS OF TESTING SOFTWARE
Verification: The process of determining whether the products of a phase of the software
development process fulfill the requirements established during the previous phase.
Testing includes an examination of code and also the execution of code in various
environments, conditions as well as all the examining aspects of the code
Attributes of software
Black box testing The white box testing Gray Box testing
The black box testing is is done by Developer, Gray box testing is a
done by the Test They check every line combination of white
Engineer, where they of a code before giving box and Black box
can check the it to the Test Engineer. testing. It can be
functionality of an Since the code is performed by a person
application or the visible for the who knew both coding
software according to Developer during the and testing. And if the
the customer /client's testing, that's why it is single person performs
needs. In this, the code also known as White white box, as well as
is not visible while box testing. black-box testing for
performing the testing; the application, is
that's why it is known known as Gray box
as black-box testing. testing.
How to perform Manual Testing
● First, tester observes all documents related to software, to select testing areas.
● Tester analyses requirement documents to cover all requirements stated by the
customer.
● Tester develops the test cases according to the requirement document.
● All test cases are executed manually by using Black box testing and white box
testing.
● If bugs occurred then the testing team informs the development team.
● The Development team fixes bugs and handed software to the testing team for a
retest.
Advantages and disadvantages of manual testing
Advantages of Manual Testing Disadvantages of Manual Testing
It does not require programming knowledge It requires a large number of human
while using the Black box method. resources.
It is used to test dynamically changing GUI It is very time-consuming.
designs. Tester develops test cases based on their
Tester interacts with software as a real user skills and experience. There is no evidence
so that they are able to discover usability and that they have covered all functions or not.
user interface issues. Test cases cannot be used again. Need to
It ensures that the software is a hundred develop separate test cases for each new
percent bug-free. software.
It is cost-effective. It does not provide testing on all aspects of
Easy to learn for new testers. testing.
Since two teams work together, sometimes it
is difficult to understand each other's motives,
it can mislead the process.
Manual testing tools
LoadRunner Citrus
It is most commonly used performance testing tools. Citrus is an integration testing tool, which is the most
LoadRunner is mainly used to support performance testing commonly used test framework. It is written in Java
for the wide range of procedures, number of approaches, and programming language. It is mostly used to request
application environments. and respond to server-side and client-side and validate
The main purpose of executing the LoadRunner tool is to the XML JSON files.
classify the most common sources of performance issues To accomplish the end-to-end use case testing, citrus
quickly. supports several HTTP, JMS, and SOAP protocols.
Features of LoadRunner
• LoadRunner tool contains n-numbers of applications,
which reduces the time to understand and describe the
reports.
• We can get thorough performance test reports by using
the LoadRunner tool.
• It will reduce the cost of distributed load testing and also
offer the operational tool for deployment tracking.
Citrus contd..
● Characteristics of Citrus
● Following are some of the important features of Citrus tool:
● It is used to send and receive messages.
● Citrus is available as both an open-source and a licensed in the market.
● It delivers a low-cost solution.
● We can authenticate the database by using the citrus tool.
● It will describe the sequence of messages, offer the test plan, and document the test
coverage.
● It creates the message and verifies the response
ZAP is an open-source web application security scanner. It is stands for
Zed Attack Proxy.
Just like some other tools, it is also written in the JAVA programming language.
It is the most effective Open Web Application Security Projects [OWASP].
Features of ZAP
● It supports many operating systems such as Windows, Linux, OS X.
● It has a plugin-based architecture.
● It contains an online marketplace that permits us to add new or updated features.
● ZAP's GUI control panel is easy to use.
○ NUnit is one of the most frequently used unit testing tools. It is an open-source tool and primarily derived
from the JUnit.
○ It was completely written in the C# programming language and suitable for all .Net languages.
○ In other words, we can say that the NUnit tool is entirely redesigned to become the advantage of many .Net
language qualities. For example:
○ Reflection-related capabilities.
○ Other custom attributes.
● Characteristics
○ It allows the assertions as a static method of the advantage class.
○ It sustains the data-driven tests.
○ It supports several platforms, like .NET core Xamarin mobile, Silverlight, and efficient framework.
○ The ability of NUnit help us to execute the tests simultaneously.
○ It uses a console runner to load and execute the tests.
● Features of JIRA Another testing tool of manual testing is SonarQube, which
improves our workflow with continuous code quality and code
● It is a time-saving tool. security. It is flexible with the use of plug-ins.
● Jira is used to track the It is completely written in the JAVA programming
language. It offers fully automated evaluation and
defects and issues. integration with Ant, Maven, Gradle, MSBuild, and
● It is used to establish the constant integration tools. SonarQube has the ability to
record a metrics history and gives the evolution graph.
documentation tasks.
● Jira is a very useful tool in
tracking the improvement of
our documentation.
Features of JMeter
● JMeter is an open-source tool that is used to Below are some of the essential characteristics of JMeter:
test the performance of both static and • It is platform-independent, which accepts a JVM
dynamic resources and dynamic web like Windows, Mac, and Linux, etc.
• It supports a user-friendly GUI, which is interactive and
applications. straightforward.
● It is completely designed on the JAVA • It is incredibly extensible to load the performance test in
application to load the functional test multiple types of servers.
behavior and measure the application's
performance.
● It facilitates users or developers to use the
source code for the development of other
applications.
Bugzilla is an open-source tool that helps the customer and the client to keep track of the
defects. Bugzilla is also considered a test management tool because in this, we can easily
link other test case management tools such as ALM, Quality Centre, etc.
Features of Bugzilla
● Bugzilla has some additional features which help us to report the bug easily:
● It supports various operating systems such as Windows, Linux, and Mac.
● With the help of Bugzilla, we can list a bug in several formats.
● User preferences can measure email notification.
● Bugzilla has advanced searching capabilities.
Mantis is a web-based bug tracking system. ManitsBT stands for Mantis Bug Tracker.
It is used to follow the software defects and performed in the PHP programming
language. It is also an open-source tool.
Features of Mantis
● Some of the standard features of the particular tool are as follows:
● With the help of this tool, we have full-text search accessibility.
● Audit trails of changes made to issues.
● It provides the revision control system integration.
● Revision control of text fields and notes
Features of TESSY
Tessy is used to perform the integration and unit testing for the
The standard features of the TESSY are as follows:
embedded software. • It produces the test report for the test execution
It also helps us to discover the code coverage of the software or results.
an application. • It supports various programming languages such
as C and C++.
It can easily manage the entire test organization, including • Tessy is used to evaluate the interface of the
business needs, test management, coverage quantity, and function and describes the variable used by that
traceability. function.
● The first test performed by tester on newly revised software is called functional
testing, which verifies all the software functions' features per user requirement. This
testing works on the real-world business application and obtaining the expected
output from a given input. All application functions are tested and involve smoke,
unit, and integration testing.
Unit testing
Non-functional testing focuses on how well application functions are doing, not on what the product does. It is the
opposite of functional testing, where application elements like reliability, usability, performance, etc., are tested. Some
types of non-functional testing are reliability testing, load testing, compatibility testing, performance testing, security
testing etc.
Performance testing
This non-functional testing tests the software's stability, responsiveness and speed under the workload. It finds out the
potential issues faced by critical software and medical programs used by the user, like slow operation of software under
stressful circumstances. It finds hurdles in the performance of software and removes them to increase the ability of
software to deliver the best results to the end user.
Regression testing
When some changes are made to the code of software or application, it needs to be tested to determine
whether the software is working as before the change; for this purpose, testers use automation regression
testing to automate scripts, applications of workflows, plans and other activities. It tests the system or
software workflow after its updation and functional error.
Non-functional testing
White box testing is mainly focused on ensuring that the internal code of the software is
correct and efficient.
Differences between Black Box Testing vs White Box Testing
Only the external design and structure Implementation and impact of the
are tested. code are tested
i.e individual code snippets,
The tester only focuses on the input
algorithms and methods.
and output of the software.
Black Box Testing White Box Testing
It is a way of software testing in which the internal structure or It is a way of testing the software in which the tester has knowledge
the program or the code is hidden and nothing is known about it. about the internal structure or the code or the program of the software.
Implementation of code is not needed for black box testing. Code implementation is necessary for white box testing.
It can be referred to as outer or external software testing. It is the inner or the internal software testing.
This testing can be initiated based on the requirement This type of testing of software is started after a detail design
specifications document. document.
No knowledge of programming is required. It is mandatory to have knowledge of programming.
It is the behavior testing of the software. It is the logic testing of the software.
It is applicable to the higher levels of testing of software. It is generally applicable to the lower levels of software testing.
It is not suitable or preferred for algorithm testing. It is suitable for algorithm testing.
Can be done by trial and error ways and methods. Data domains along with inner or internal boundaries can be better tested.
Example: Search something on google by using keywords Example: By input to check and verify loops
Black-box test design techniques-
White-box test design techniques-
● Decision table testing
● Control flow testing
● All-pairs testing
● Data flow testing
● Equivalence partitioning
● Branch testing
● Error guessing
It is less exhaustive as compared to white box testing. It is comparatively more exhaustive than black box testing.
Testing methods: Black box testing uses methods like equivalence partitioning,
boundary value analysis, and error guessing to create test cases. Whereas, white
box testing uses methods like control flow testing, data flow testing and statement
coverage.
Scope: Black box testing is generally used for testing the software at the functional
level. White box testing is used for testing the software at the unit level, integration
level and system level.
Advantages and disadvantages
Black box testing is easy to use, requires no programming knowledge and is effective in
detecting functional issues. However, it may miss some important internal defects that are
not related to functionality.
White box testing is effective in detecting internal defects, and ensures that the code is
efficient and maintainable. However, it requires programming knowledge and can be time-
consuming.
Types of Black box testing
● Functional testing
● Non-functional testing
Goal of functional testing
● The purpose of the functional testing is to check the primary entry function,
necessarily usable function, the flow of screen GUI.
● Functional testing displays the error message so that the user can easily navigate
throughout the application
What to test in functional testing?
● The main objective of functional testing is checking the functionality of the software
system. It concentrates on:
● Basic Usability: Functional Testing involves the usability testing of the system. It
checks whether a user can navigate freely without any difficulty through screens.
● Accessibility: Functional testing test the accessibility of the function.
● Mainline function: It focuses on testing the main feature.
● Error Condition: Functional testing is used to check the error condition. It checks
whether the error message displayed.
Processing steps in functional testing
• Tester does verification of the requirement specification in the
software application.
• After planning the tests, the tester will design the test case.
• After designing the test, case tester will make a document of the
traceability matrix.