0% found this document useful (0 votes)
3 views

SE UNIT-5

Se

Uploaded by

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

SE UNIT-5

Se

Uploaded by

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

Unit-5

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 is widely used technology because it is compulsory to test each and every software
before deployment.

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.

What is Testing:

Testing is a group of techniques to determine the correctness of the application under the
predefined script but, testing cannot find all the defect of application. The main intent of testing
is to detect failures of the application so that failures can be discovered and corrected. It does not
demonstrate that a product functions properly under all conditions but only that it is not working
in some specific conditions.

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. In the current scenario of software
development, a testing team may be separate from the development team so that Information
derived from testing can be used to correct the process of software development.

Why :

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. It insure
the quality of the product.

Attributes of Software testing:


Roles and responsibility of Software Tester

1. A Software Tester is responsible for designing testing scenarios for usability testing.
2. He is responsible for conducting the testing, thereafter analyze the results and then submit
his observations to the development team.
3. He may have to interact with the clients to better understand the product requirements or
in case the design requires any kind of modifications.

4. Software Testers are often responsible for creating test-product documentation and also
has to participate in testing related walk through.

Test Plan:

A test plan is a detailed document which describes software testing areas and activities. It outlines
the test strategy, objectives, test schedule, required resources (human resources, software, and
hardware), test estimation and test deliverables.

The test plan is a base of every software's testing. It is the most crucial activity which ensures
availability of all the lists of planned activities in an appropriate sequence. The test plan is a
template for conducting software testing activities as a defined process that is fully monitored
and controlled by the testing manager. The test plan is prepared by the Test Lead (60%), Test
Manager(20%), and by the test engineer(20%).

Test case:

A test case is a document, which has a set of test data, preconditions, expected results and post
conditions, developed for a particular test scenario in order to verify compliance against a
specific requirement.

Typical Test Case Parameters:


Test Case ID
Test Scenario
Test Case Description
Test Steps
Prerequisite
Test Data
Expected Result
Test Parameters
Actual Result
Environment Information
Comments
Error:

The Problem in code leads to errors, which means that a mistake can occur due to the developer's
coding error as the developer misunderstood the requirement or the requirement was not defined
correctly. The developers use the term error.
Fault:

The fault may occur in software because it has not added the code for fault tolerance, making an
application act up.
Bug:

When the application is not working as per the requirement is knows as bug or defects. It is
specified as the aberration from the actual and expected result of the application or software.

Testing:
it is a process for analyzing software it detects the difference between existing and required
conditions and evaluates features of the software.

Test data:

Test data is data that is used to execute the test on test ware.

Test ware:

Test ware is term used to describe all of the utilities and applications typically the environment
used to perform a test.

Test log:

Test log is result of programming errors because of which keeps information regarding which test
case passed and which failed. It is updated after every test case is run.
Software Testing Principles:

Testing shows the presence of defects:

The test engineer will test the application to make sure that the application is bug or defects
free. While doing testing, we can only identify that the application or software has any errors.
The primary purpose of doing testing is to identify the numbers of unknown bugs with the help
of various methods and testing techniques because the entire test should be traceable to the
customer requirement, which means that to find any defects that might cause the product failure
to meet the client's needs.

By doing testing on any application, we can decrease the number of bugs, which does not mean
that the application is defect-free because sometimes the software seems to be bug-free while
performing multiple types of testing on it.
Exhaustive Testing is not possible:

Sometimes it seems to be very hard to test all the modules and their features with effective and
non- effective combinations of the inputs data throughout the actual testing process.

Hence, instead of performing the exhaustive testing as it takes boundless determinations and most
of the hard work is unsuccessful. So we can complete this type of variations according to the
importance of the modules because the product timelines will not permit us to perform such type
of testing scenarios.

Early Testing:

Here early testing means that all the testing activities should start in the early stages of the
software development life cycle's requirement analysis stage to identify the defects because if we
find the bugs at an early stage, it will be fixed in the initial stage itself, which may cost us very
less as compared to those which are identified in the future phase of the testing process.

To perform testing, we will require the requirement specification documents; therefore, if the
requirements are defined incorrectly, then it can be fixed directly rather than fixing them in
another stage, which could be the development phase.

Defect clustering:

The defect clustering defined that throughout the testing process, we can detect the numbers of
bugs which are correlated to a small number of modules. We have various reasons for this, such
as the modules could be complicated; the coding part may be complex, and so on.

With the help of this, we can find the uncertain modules, but this method has its difficulties if the
same tests are performing regularly, hence the same test will not able to identify the new defects.

Pesticide paradox:

This principle defined that if we are executing the same set of test cases again and again over a
particular time, then these kinds of the test will not be able to find the new bugs in the software
or the application. To get over these pesticide paradoxes, it is very significant to review all the
test cases frequently.

Testing is context-dependent:

Testing is a context-dependent principle states that we have multiple fields such as e-commerce
websites, commercial websites, and so on are available in the market. There is a definite way to
test the commercial site as well as the e-commerce websites because every application has its
own needs, features, and functionality. To check this type of application, we will take the help of
various kinds of testing, different technique, approaches, and multiple methods. Therefore, the
testing depends on the context of the application.
Absence of errors fallacy:

Once the application is completely tested and there are no bugs identified before the release, so we can say that
the application is 99 percent bug-free. But there is the chance when the application is tested beside the incorrect
requirements, identified the flaws, and fixed them on a given period would not help as testing is done on the
wrong specification, which does not apply to the client's requirements. The absence of error fallacy means
identifying and fixing the bugs would not help if the application is impractical and not able to accomplish the
client's requirements and needs.

Type of Software testing:


Automation testing:

Automation testing is a process of converting any manual test cases into the test scripts with the
help of automation tools, or any programming language is known as automation testing. With the
help of automation testing, we can enhance the speed of our test execution because here, we do
not require any human efforts. We need to write a test script and execute those scripts.

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

White-box testing:

The white box testing is done by Developer, where they check every line of a code before giving
it to the Test Engineer. Since the code is visible for the Developer during the testing, that's why it
is also known as White box testing.

Black box testing:

The black box testing is done by the Test Engineer, where they can check the functionality of an
application or the software according to the customer /client's needs. In this, the code is not visible
while performing the testing; that's why it is known as black-box testing.

Gray Box testing:

Gray box testing is a combination of white box and Black box testing. It can be performed by a
person who knew both coding and testing. And if the single person performs white box, as well as
black-box testing for the application, is known as Gray box testing.

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
o Loop testing
o Condition testing
o Testing based on the memory perspective
o Test performance of the program
Techniques Used in White Box Testing:

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

Control Flow Control flow testing determines the execution order of statements or instructions
Testing of the program through a control structure. The control 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 Testing Branch coverage technique is used to cover all branches of the control 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. This
Testing 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 Testing This technique reports true and false outcomes of Boolean 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.
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.

Generic steps of black box testing:

o The black box test is based on the specification of requirements, so it is examined in the
beginning.
o In the second step, the tester creates a positive test scenario and an adverse test scenario by
selecting valid and invalid input values to check that the software is processing them
correctly or incorrectly.
o In the third step, the tester develops various test cases such as decision table, all pairs test,
equivalent division, error estimation, cause-effect graph, etc.
o The fourth phase includes the execution of all test cases.
o In the fifth step, the tester compares the expected output against the actual output.
o In the sixth and final step, if there is any flaw in the software, then it is cured and tested
again.
Test procedure:

The test procedure of black box testing is a kind of process in which the tester has specific
knowledge about the software's work, and it develops test cases to check the accuracy of the
software's functionality.

It does not require programming knowledge of the software. All test cases are designed by
considering the input and output of a particular function. A tester knows about the definite output
of a particular input, but not about how the result is arising. There are various techniques used in
black box testing for testing like decision table technique, boundary value analysis technique, state
transition, All-pair testing, cause-effect graph technique, equivalence partitioning technique, error
guessing technique, use case technique and user story technique. All these

Techniques Used in Black Box Testing:

Decision Table Decision Table Technique is a systematic approach where various input combinations
Technique and their respective system behavior 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, boundary values are those
Technique 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 software application
Technique 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 combinations of
Technique 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 given result and all the
Technique factors affecting the result.It is based on a collection of requirements.

Equivalence Equivalence partitioning is a technique of software testing in which input data divided
Partitioning into partitions of valid and invalid values, and it is mandatory that all partitions must
Technique exhibit the same behavior.

Error Guessing Error guessing is a technique in which there is no specific method for identifying the
Technique 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 beginning to the end of
Technique 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.
Difference between white-box testing and black-box testing:

White-box testing Black box testing

The developers can perform white box The test engineers perform the black box testing.
testing.

To perform WBT, we should have an To perform BBT, there is no need to have an


understanding of the programming understanding of the programming languages.
languages.

In this, we will look into the source code and In this, we will verify the functionality of the
test the logic of the code. application based on the requirement
specification.

In this, the developer should know about the In this, there is no need to know about the internal
internal design of the code. design of the code.

You might also like