Sidra Arooj Software Quality Assurance Assignment
Sidra Arooj Software Quality Assurance Assignment
2
Software Quality Assurance
Sidra Arooj
BS-IT (8 Semester)
Topic: Software Testing and its Types
Software Testing:
Software testing is a process of identifying the correctness of software by
considering its all attributes (Reliability, Scalability, Portability, Re-usability,
Usability) and evaluating the execution of software components to find the
software bugs or errors or defects.
Software testing provides an independent view and objective of the software and
gives surety of fitness of the software. It involves testing of all components under
the required services to confirm that whether it is satisfying the specified
requirements or not. The process is also providing the client with information
about the quality of the software.
1|Page
Objectives of Software Testing:
• A good test case is one that has a high probability of finding an as-yet-
undiscovered error
2|Page
• Data collected as a result of testing can provide a good indication of software
reliability and some indication of the software quality as a whole
• Testing cannot show absence of errors and defects, it can show only that
software errors and defects are present
Testability:
Software testability is simply how easily [a computer program] can be tested
• There are certain metrics that could be used to measure testability of a software
product
• Controllability: The better we can control the software, the more testing can be
automated and optimized
• Simplicity: The less there is to test, the more quickly we can test it
• Stability: The fewer the changes, the fewer the disruptions to testing
Types of Testing:
3|Page
Manual Testing:
The process of checking the functionality of an application as per the customer
needs without taking any help of automation tools is known as manual testing.
While performing the manual testing on any application, we do not need any
specific knowledge of any testing tool, rather than have a proper understanding
of the product so we can easily prepare the test document.
Manual testing can be further divided into three types of testing, which are as
follows:
4|Page
White Box Testing
The box testing approach of software testing consists of black box testing and
white box testing. We are discussing here white box testing which also known as
glass box is testing, structural testing, clear box testing, open box testing and
transparent box testing. It tests internal coding and infrastructure of a software
focus on checking of predefined inputs against expected and desired outputs. It is
based on inner workings of an application and revolves around internal structure
testing. In this type of testing programming skills are required to design test cases.
The primary goal of white box testing is to focus on the flow of inputs and outputs
through the software and strengthening the security of the software.
The term 'white box' is used because of the internal perspective of the system.
The clear box or white box or transparent box name denote the ability to see
through the software's outer shell into its inner workings.
Developers do white box testing. In this, the developer will test every line of the
code of the program. The developers perform the White-box testing and then
send the application or the software to the testing team, where they will perform
the black box testing and verify the application along with the requirements and
identify the bugs and sends it to the developer.
The developer fixes the bugs and does one round of white box testing and sends
it to the testing team. Here, fixing the bugs implies that the bug is deleted, and
the particular feature is working fine on the application.
Here, the test engineers will not include in fixing the defects for the following
reasons:
o Fixing the bug might interrupt the other features. Therefore, the test
engineer should always find the bugs, and developers should still be doing
the bug fixes.
o If the test engineers spend most of the time fixing the defects, then they
may be unable to find the other bugs in the application.
The white box testing contains various tests, which are as follows:
o Path testing
5|Page
o Loop testing
o Condition testing
o Testing based on the memory perspective
o Test performance of the program
Path testing:
In the path testing, we will write the flow graphs and test all independent paths.
Loop testing:
In the loop testing, we will test the loops such as while, for, and do-while, etc. and
also check for ending condition if working correctly and if the size of the
conditions is enough.
Condition testing:
In this, we will test all logical conditions for both true and false values; that is, we
will verify for both if and else condition.
o The reuse of code is not there: let us take one example, where we have
four programs of the same application, and the first ten lines of the
program are similar. We can write these ten lines as a discrete function,
and it should be accessible by the above four programs as well. And also, if
any bug is there, we can modify the line of code in the function rather than
the entire code.
o The developers use the logic that might be modified. If one programmer
writes code and the file size is up to 250kb, then another programmer
could write a similar code using the different logic, and the file size is up to
100kb.
6|Page
o The developer declares so many functions and variables that might never
be used in any portion of the code. Therefore, the size of the program will
increase.
7|Page
o White box testing needs professional programmers who have a detailed
knowledge and understanding of programming language and
implementation.
Branch Branch coverage technique is used to cover all branches of the control
Testing flow graph. It covers all the possible outcomes (true and false) of each
condition of decision point at least once.
Statement Statement coverage technique is used to design white box test cases.
Testing This technique involves execution of all statements of the source code
at least once. It is used to calculate the total number of executed
statements in the source code, out of total statements present in the
source code.
8|Page
Black box testing:
Black box testing is a technique of software testing which examines the
functionality of software without peering into its internal structure or coding. The
primary source of black box testing is a specification of requirements that is
stated by the customer.
In this method, tester selects a function and gives input value to examine its
functionality, and checks whether the function is giving expected output or not. If
the function produces correct output, then it is passed in testing, otherwise failed.
The test team reports the result to the development team and then tests the next
function. After completing testing of all functions if there are severe problems,
then it is given back to the development team for correction.
• Although they are designed to uncover errors, they are also used to
demonstrate that software functions are operational, that input is properly
accepted and output is correctly produced, and that the integrity of external
information is maintained
• The inner structure or control flow of the application is not known or viewed as
irrelevant for constructing test cases. The application is tested against external
specifications and/or requirements in order to ensure that a specific set of input
parameters will in fact yield the correct set of output values
• It is useful for ensuring that the software more or less is in concordance with the
written specifications and written requirements
• The simplest form of BBT is to start running the software and make observations
in the hope that it is easy to distinguish between expected and unexpected
behavior
• This is ad-hoc testing and it is easy to identify some unexpected behavior, like
system crash
9|Page
BBT Techniques
• Equivalence partitioning
Equivalence Partitioning
• A range of values
• If an input condition requires a specific value, one valid and two invalid
equivalence classes are defined
10 | P a g e
• If an input condition is boolean, one valid and one invalid class are
defined
• This is because that for reasons not clearly completely clear, a greater number
of errors tends to occur at the boundaries of the input domain rather than in the
center
State Transition State Transition Technique is used to capture the behavior of the
Technique software application when different input values are given to the
same function. This applies to those types of applications that
provide the specific number of attempts to access the
application.
All-pair Testing All-pair testing Technique is used to test all the possible discrete
11 | P a g e
Technique combinations of values. This combinational method is used for
testing the application that uses checkbox input, radio button
input, list box, text box, etc.
Use Case Use case Technique used to identify the test cases from the
Technique beginning to the end of the system as per the usage of the
system. By using this technique, the test team creates a test
scenario that can exercise the entire software based on the
functionality of each function from start to end.
12 | P a g e
Types of BBT:
Functional testing:
It is a type of software testing which is used to verify the functionality of the
software application, whether the function is working according to the
requirement specification. In functional testing, each function tested by giving the
value, determining the output, and verifying the actual output with the expected
value. Functional testing performed as black-box testing which is presented to
confirm that the functionality of an application or system behaves as we are
expecting. It is done to verify the functionality of the application.
For example, non-functional testing would be to test how many people can work
simultaneously on any software.
13 | P a g e
Grey Box testing commonly identifies context-specific errors that belong to web
systems. For example; while testing, if tester encounters any defect then he
makes changes in code to resolve the defect and then test it again in real time. It
concentrates on all the layers of any complex software system to increase testing
coverage. It gives the ability to test both presentation layer as well as internal
coding structure. It is primarily used in integration testing and penetration testing.
o It provides combined benefits of both Black box testing and White Box
testing.
o It includes the input values of both developers and testers at the same time
to improve the overall quality of the product.
o It reduces time consumption of long process of functional and non-
functional testing.
o It gives sufficient time to the developer to fix the product defects.
o It includes user point of view rather than designer or tester point of view.
o It involves examination of requirements and determination of specifications
by user point of view deeply.
14 | P a g e
Techniques of Grey box Testing
Matrix Testing
This testing technique comes under Grey Box testing. It defines all the used
variables of a particular program. In any program, variable are the elements
through which values can travel inside the program. It should be as per
requirement otherwise, it will reduce the readability of the program and speed of
the software. Matrix technique is a method to remove unused and uninitialized
variables by identifying used variables from the program.
Regression Testing
Regression testing is used to verify that modification in any part of software has
not caused any adverse or unintended side effect in any other part of the
software. During confirmation testing, any defect got fixed, and that part of
software started working as intended, but there might be a possibility that fixed
defect may have introduced a different defect somewhere else in the software.
So, regression testing takes care of these type of defects by testing strategies like
retest risky use cases, retest within a firewall, retest all, etc.
15 | P a g e
The purpose of this testing is to cover maximum code with minimum test cases.
Test cases are designed in a way that can cover maximum code as well as GUI
functions with a smaller number of test cases.
Pattern Testing
Pattern testing is applicable to such type of software that is developed by
following the same pattern of previous software. In these type of software
possibility to occur the same type of defects. Pattern testing determines reasons
of the failure so they can be fixed in the next software.
Black Box Testing vs. White Box Testing vs. Grey Box Testing
I Black Box Testing White Box Testing Grey Box Testing
n
d
e
x
16 | P a g e
2 Black Box Testing is also White Box Testing is also known as Grey Box Testing is
known as functional structural testing, clear box testing, testing as the tester
testing, data-driven code-based testing, and transparent coding.
testing, and closed box testing.
testing.
3 The approach towards White Box Testing is proceeded by If the tester has know
testing includes trial verifying the system boundaries and proceeded by valid
techniques and error data domains inherent in the software internal system bound
guessing method because as there is no lack of internal coding
tester does not need knowledge.
knowledge of internal
coding of the software.
4 The testing space of The testing space of tables for inputs The testing space of ta
tables for inputs (inputs (inputs to be used for creating test used for creating test
to be used for creating cases) is less as compared to Black Box Box and White Box tes
test cases) is pretty huge testing.
and largest among all
testing spaces.
6 It is not considered for It is well suitable and recommended It is not considered for
algorithm testing. for algorithm testing.
17 | P a g e
7 Time consumption in White Box testing takes a long time to Test cases designing c
Black Box testing depends design test cases due to lengthy code. period.
upon the availability of
the functional
specifications.
8 Tester, developer and the Only tester and developer can be a Tester, developer and
end user can be the part part of testing; the end user can not part of testing.
of testing. involve.
9 It is the least time- The entire testing process is the most less time consuming th
consuming process time consuming among all the testing
among all the testing processes.
processes.
10 Resilience and security Resilience and security against viral Resilience and securit
against viral attacks are attacks are not covered under White not covered under Gre
covered under Black Box Box testing.
testing.
11 The base of this testing is The base of this testing is coding which Testing based on hig
external expectations is responsible for internal working. and dataflow diagrams
internal behavior is
unknown.
12 It is less exhaustive than It is most exhaustive between Black Partly exhaustive; dep
White Box and Grey Box Box and Grey Box testing methods. cases are coding based
testing methods.
18 | P a g e
Automation Testing
Software is the medium or platform for performing a task in the system. Software
is developed by following the SDLC process, i.e. software development life cycle in
which software has to pass through many phases, and testing is one of its major
phase that shows the result of all the efforts made in developing process of
software upto now.
Testing in which a human tester executes In automation testing, automation tools are used
test cases
In this testing, human resources are It is much faster than the manual testing
involved, that's why it is time-consuming
It is repetitive and error-prone Here automated tools are used that make it inter
BVT (build verification testing) is time- It's easy to build verification testing
consuming and tough in manual testing
Instead of frameworks, this testing use Frameworks like keyword, hybrid, and data
19 | P a g e
checklist, guidelines, and stringent process automation process.
for drafting test cases.
The process turnaround time is higher It completes a single round of testing within
than the automation testing process (one process turnaround time is much lower than a ma
testing cycle takes lots of time)
The main goal of manual testing is user- Automation testing can only guarantee a positiv
friendliness or improved customer user-friendliness.
experience.
It is best for usability, exploratory and It is widely used for performing testing, load testi
adhoc testing
20 | P a g e