0% found this document useful (0 votes)
29 views20 pages

Sidra Arooj Software Quality Assurance Assignment

This document summarizes an assignment on software testing and its types. It discusses software testing, its objectives, testability characteristics, and types of testing such as manual testing and white box testing. White box testing tests the internal structure and coding of a program. It aims to test all independent paths, loops, conditions, memory usage, and performance. The advantages are that it can find internal errors and security holes, while the disadvantages are that it is time-consuming and requires specialized programming knowledge.

Uploaded by

001stylev001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views20 pages

Sidra Arooj Software Quality Assurance Assignment

This document summarizes an assignment on software testing and its types. It discusses software testing, its objectives, testability characteristics, and types of testing such as manual testing and white box testing. White box testing tests the internal structure and coding of a program. It aims to test all independent paths, loops, conditions, memory usage, and performance. The advantages are that it can find internal errors and security holes, while the disadvantages are that it is time-consuming and requires specialized programming knowledge.

Uploaded by

001stylev001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Assignment no.

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.

Testing is mandatory because it will be a dangerous situation if the software fails


any of time due to lack of testing. So, without testing software cannot be
deployed to the end user.

The dynamic execution of software and the comparison of results of that


execution against a set of known, pre-determined criteria This demonstration of
proper behavior is a primary purpose of software testing, which can also be
interpreted as providing evidence of quality in the context of software quality
assurance, or as meeting certain quality goals In comparison with the
manufacturing systems, problems in software products can be corrected much
more easily within the development process to remove as many defects from the
product as possible.

1|Page
Objectives of Software Testing:

Some other objectives are as follow:

Testing is a process of executing a program with the intent of finding an error

• A good test case is one that has a high probability of finding an as-yet-
undiscovered error

• A successful test is one that uncovers an as- yet-undiscovered error

• These objectives imply a dramatic change in viewpoint. They move counter to


the commonly held view that a successful test is one in which no errors are found.
Our objective is to design tests that systematically uncover different classes of
errors and to do so with a minimum amount of time and effort

• If testing is conducted successfully, it will uncover errors in the software, and as


a secondary benefit, testing demonstrates that software functions appear to be
working according to specification, that behavioral and performance
requirements appear to have been met

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

• Since testing is so difficult, it pays to know what can be done to streamline it

• It occurs as a result of good design. Data design, architecture, interfaces, and


component-level detail can either facilitate testing or make it difficult

• There are certain metrics that could be used to measure testability of a software
product

• We can also call them the characteristics or attributes of testable software.


These characteristics or attributes are important from quality assurance‘s point of
view

Characteristics of Testable Software


• Operability: The better it works, the more efficiently it can be tested

• Controllability: The better we can control the software, the more testing can be
automated and optimized

• Decomposability: By controlling the scope of testing, we can more quickly


isolate problems and perform smarter retesting

• 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

• Understandability: The more information we have, the smarter we will test

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:

o White box testing


o Black box testing
o Gray box testing

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.

Testing based on the memory (size) perspective:


The size of the code is increasing for the following reasons:

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.

Test the performance (Speed, response time) of the program:


The application could be slow for the following reasons:

o When logic is used.


o For the conditional cases, we will use or & and adequately.
o Switch case, which means we cannot use nested if, instead of using a
switch case.

Reasons for white box testing


o It identifies internal security holes.
o To check the way of input inside the code.
o Check the functionality of conditional loops.
o To test function, object, and statement at an individual level.

Advantages of White box testing


o White box testing optimizes code so hidden errors can be identified.
o Test cases of white box testing can be easily automated.
o This testing is more thorough than other testing approaches as it covers all
code paths.
o It can be started in the SDLC phase even without GUI.

Disadvantages of White box testing


o White box testing is too much time consuming when it comes to large-scale
programming applications.
o White box testing is much expensive and complex.
o It can lead to production error because it is not detailed by the developers.

7|Page
o White box testing needs professional programmers who have a detailed
knowledge and understanding of programming language and
implementation.

Techniques Used in White Box Testing


Data Flow Data flow testing is a group of testing strategies that examines the
Testing control flow of programs in order to explore the sequence of variables
according to the sequence of events.

Control Control flow testing determines the execution order of statements or


Flow instructions of the program through a control structure. The control
Testing structure of a program is used to develop a test case for the program.
In this technique, a particular part of a large program is selected by
the tester to set the testing path. Test cases represented by the
control graph of the program.

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.

Decision This technique reports true and false outcomes of Boolean


Testing expressions. Whenever there is a possibility of two or more outcomes
from the statements like do while statement, if statement and case
statement (Control flow statements), it is considered as decision point
because there are two outcomes either true or false.

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.

 Black-box testing alludes to tests that are conducted at the software


interface

• 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

• A block-box test examines some fundamental aspect of a system with little


regard for the internal logical structure of the software

• 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

• Boundary value analysis

Equivalence Partitioning

• Equivalence partitioning is a black-box testing method that divides the


input domain of a program into classes of data from which test cases can
be derived

• Equivalence partitioning strives to define a test case that uncovers


classes of errors, thereby reducing the total number of test cases that must
be developed

• An equivalence class represents a set of valid or invalid states for input


conditions

• Typically, an input condition is

• A specific numeric value

• A range of values

• A set of related values

A boolean condition Guidelines for Equivalence Classes

• If an input condition specifies a range, one valid and two invalid


equivalence classes are defined

• If an input condition requires a specific value, one valid and two invalid
equivalence classes are defined

• If an input condition specifies a member of a set, one valid and one


invalid equivalence class are defined

10 | P a g e
• If an input condition is boolean, one valid and one invalid class are
defined

Boundary Value Analysis


• Boundary value analysis (BVA) is a testing technique, which leads to a selection
of test cases that exercise bounding values

• 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

• BVA complements equivalence partitioning testing technique

Some other techniques in black box testing:

Decision Table Decision Table Technique is a systematic approach where various


Technique input combinations and their respective system behaviour are
captured in a tabular form. It is appropriate for the functions that
have a logical relationship between two and more than two
inputs.

Boundary Value Boundary Value Technique is used to test boundary values,


Technique boundary values are those that contain the upper and lower limit
of a variable. It tests, while entering boundary value whether the
software is producing correct output or not.

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.

Cause-Effect Cause-Effect Technique underlines the relationship between a


Technique given result and all the factors affecting the result.It is based on a
collection of requirements.

Equivalence Equivalence partitioning is a technique of software testing in


Partitioning which input data divided into partitions of valid and invalid
Technique values, and it is mandatory that all partitions must exhibit the
same behavior.

Error Guessing Error guessing is a technique in which there is no specific method


Technique for identifying the error. It is based on the experience of the test
analyst, where the tester uses the experience to guess the
problematic areas of the software.

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.

Non- Functional Testing:

Non-functional testing is a type of software testing to test non-functional


parameters such as reliability, load test, performance and accountability of the
software. The primary purpose of non-functional testing is to test the reading
speed of the software system as per non-functional parameters. The parameters
of non-functional testing are never tested before the functional testing.

Non-functional testing is also very important as functional testing because it plays


a crucial role in customer satisfaction.

For example, non-functional testing would be to test how many people can work
simultaneously on any software.

Grey Box Testing


Grey box testing is a software testing method to test the software application
with partial knowledge of the internal working structure. It is a combination of
black box and white box testing because it involves access to internal coding to
design test cases as white box testing and testing practices are done at
functionality level as black box testing.

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.

Why Grey Box testing?


Reasons for Grey Box testing are as follows

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.

Orthogonal Array Testing or OAT

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.

Usually, automated software testing tools are used in Greybox methodology to


conduct the test process. Stubs and module drivers provided to a tester to relieve
from manually code generation

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

1 Knowledge of internal Knowledge of internal working Partially Knowledge


working structure (Code) structure (Coding of software) is structure is required.
is not required for this necessarily required for this type of
type of testing. Only GUI testing.
(Graphical User Interface)
is required for test cases.

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.

5 It is very difficult to It is simple to discover hidden errors Difficult to discover t


discover hidden errors of because it can be due to internal found in user level tes
the software because working which is deeply explored in
errors can be due to White Box testing.
internal working which is
unknown for Black Box
testing.

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.

Automation testing refers to the automatic testing of the software in which


developer or tester write the test script once with the help of testing tools and
framework and run it on the software. The test script automatically test the
software without human intervention and shows the result (either error, bugs
are present or software is free from them)."

Manual testing vs. Automation testing


Software testing is performed to discover bugs in software during its
development. The key difference between automation and manual testing are as
follows:

Manual testing Automation testing

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

Low return on investment The high return on investment

20 | P a g e

You might also like