Anda di halaman 1dari 4

Software Testing:

Types and Methods

Harsh Patel,14bce081
CSE Department, Institute of Technology,
Under Nirma University.

Abstract:- B. The Box Approach


This paper will include the introduction about software testing Software testing methods are mainly divided into three parts,
process and basic types and methods of software testing .As a white-box ,black-box and grey-box testing .these methods are
software is an intangible product, it is very hard to keep track named as point of view of a person who is testing the
of its progress/successful behaviour on daily basis so software software.
testing is used to determining that it meets its requirements.
There are many methods from traditional approach to the White-box Testing
automated testing tools which we will see one by one in this
paper. A software testing method in which the internal structure,
design, implementation of the item being tested is known to
I. INTRODUCTION the tester. it is also known as the clear box testing, glass box
Software testing is the activity aimed at checking the quality testing, transparent box testing.
of product that it meets its requirements. It is used to balance It is done by the developer or the testing engineer as the
between time, budget and quality of software. As the knowledge of the internal structure is compulsory for testing
possibility for the inputs in the software can be infinite the .it is used to check the internal structure of the software
purpose for the software testing is to find the software bug instead of the output provided to the user. It can test paths
,and checking whether it is fit for stakeholders to use. within a unit, paths between units during integration, and
Software bugs are any errors or any other defects with the between subsystems during a systemlevel test. This method
requirements. Software testings main purpose is to check only provides whether all the parts are functioning perfectly or
whether it meets all the requirements and respond correctly to not. it doesnt provide any knowledge about whether the
all the inputs. It can be done by mainly software testing team provided output is correct or not.
but it can also be done by other stakeholders by releasing ex: Control flow testing, Data flow testing, Branch testing,
testing version once it is executable. The job of testing is an Path testing.
iterative process as when one error is fixed, it can create other
new bugs. Software testing can be started as soon as the
executable software is ready. It can provide information about Black-box Testing
the quality of software and risk of its failure to the
stakeholders. A software testing method in which the internal
structure/design /implementation of the item being tested is
II. TESTING METHODS not known to the tester. These tests can be functional or non-
functional, though usually functional .it is done without seeing
the source code the tester only wants to check how software
A. Static vs. Dynamic Testing reacts to the inputs .he only sees what it does not how it does
it. in this test cases are used and only output is checked .one of
Static testing : In static testing we do not execute the code we the advantage of this testing is no knowledge of software
just look through the code. structure or implementation is needed so stakeholders can be
ex: walkthroughs, inspections, review involved in testing which make this process a lot faster and
Dynamic testing: In dynamic testing we execute the code on accurate but it can not be trusted based on test cases only
basis of some test cases because the test cases may be excluding some of the paths. it
ex: black box , white box , grey box can also be time consuming as the tester is unknown about the
Static testing can be done on any software for dynamic testing internal structure so he may be repeating the test case on a
the software must be executable. static testing is mostly used single paths many times which can be done only with one test
to check syntax, code structure or data flow while dynamic case.
testing is used for checking the output for each input. In short ex:Equivalence partitioning, Boundary Value Analysis, Cause
static testing is used for verification while dynamic testing Effect Graphing.
used for validation.
1)Unit testing
Grey-box Testing
Unit is the smallest testable part of the software. unit testing is
To overcome the negative points of the white-box and black- generally done by the developers team. the unit testing is
box testing Grey-box testing is used. it is a combination of necessary to go ahead with the program so it is done by the
Black Box Testing method and White Box Testing method. in developers itself instead of the software testers. It is important
this method tester have knowledge about the internal data to perform unit testing as you can only perform the integration
structures and algorithms but he doesnt have the full access to testing once all of your units are working correctly. it is done
the softwares source code .tests that require to modify the log by the persons who have in-depth knowledge of the code so
file or a back-end repository like database is included in grey- the test cases for the unit testing are well defined. one of the
box testing. Grey-box testing is also based on the test cases benefits of unit testing is that you get the confidence for going
but tester can develop more accurate test-cases with the use of ahead with the code once the unit run correctly. if unit testing
little knowledge of internal structure. is carried out correctly the foundation of the software can be
strong which will later help in faster development. it can also
III.TESTING LEVELS be cost saving as the cost of fixing a defect in final stages of
software development is much higher than in initial stages.
Testing levels are mainly the level of the software on which
the testing is applied. There are mainly four levels of software
tests from the perspective of developer or testing team.

From the perspective of the customer there are two levels of


2)Integration testing
testing:-
Once the unit testing is done, the integration testing is the next
phase that is carried out. in integration testing the tester
1.low-level testing checks how the units interact with each other. this test requires
knowledge of software testing techniques so it is carried out
It is the testing of the different components or link between the by the software testing engineer.
components. It is done in intermediate stages of the
development for checking specific module and approval of the In this form of testing lot of defects related to functional and
customer or stakeholders. performance levels are uncovered. unit testing confirms that
the individual units perform correct individually while
2.high-level testing integration testing checks the interface between the units.
It is the testing of the whole software application. it is done
before the product is delivered to the customer. in this the Integration testing can be carried out by following
testing is mainly based on the output and interface between the approaches:-
modules rather than its structure. Software structure is checked 1)Top down approach
module-wise in low level testing.
In the top down approach where the top levels are
There are mainly four levels of software tests from the
first tested and then one by one sub modules are tested. it is
perspective of developer or testing team:-
more useful for finding out the location for the defect or error.

2)Bottom up approach
In the bottom up approach first the sub programs are
tested that one by one upper level component is tested. it can
be done even when the software is not fully completed by
providing the dummy modules at low levels.

3)Component testing
Component testing is done after the integration testing. In
integration testing we check for the interface between the
different units. while in the component testing we check for
the output produced by the component or by the sub module of
the software. integration testing only checks for the data flow 3. Regression Testing
between one unit to another while the component testing
checks for the output produced by the component. Regression testing is finding any bugs after there is a change
in the code .it checks for the changes in the backward position.
it will take backward on changes to the position where the
4)System testing code is working correctly. it is used to uncover the bugs that
are incurred during the latest changes in the code. The
System testing is carried out once the software is successfully advantage of the process is that tester doesnt have to check
completed and it is ready to deliver to the customer. in this for the whole software instead he can save upto the work till
testing not only the output but the performance and the quality where all the bugs are resolved and start from there and only
standards are also be checked. The system testing is purely the check for changes that can create the errors. Regression testing
black-box type testing. it just checked the requirement include severe methods which contains re running the
specifications. this testing is carried out based on the users previous sets of test cases to check whether previous error has
point of view. To understand the users point of view this re emerged. regression testing is faster in finding out the bugs
testing is done by the different stakeholders of the software. compared to previous methods.
system testing both validates and verifies both user
requirements and business requirements.
4. System testing
The System testing procedure is described above in the testing
levels. It is the top most level testing of the software input -
IV.TESTING TYPES output without taking the internal structure or the code into
There are different types of the testing the software which can consideration. it only checks for the different functionality of
be carried out during different phases of software the software. It is done by the developers view.
development. They are to test whether the product that is
manufactured is ready to launch to the market and it does not
have any bugs or error remained unfixed. 5. Acceptance Testing.
Here we will see the major types of software testing: The acceptance testing is just as same as the system testing. It
is also carried out after the whole software is developed. In
this the software is tested for the acceptability of the
1. Installation testing customers/users. It is carried out after the system testing. After
the system is verified to working correctly it is checked
It is the testing type that check whether the software will be whether the system satisfies the acceptance criteria and enable
installed and will work correctly on the customers hardware. the user to use the system efficiently. Usually black box
if it is a general purpose software which can be installed in testing method is used for acceptance testing as the user is
many platforms than this checks that it works correctly more concerned about the user interface or how system looks
indifferent to the platform specified. and which output it produce rather than how it functions
internally.

2. Compatibility Testing
6. Performance Testing
Compatibility with other application software or operating
system can cause failure to the system. So the software that Performance testing is used for evaluating the quality and
needs backward compatibility of other application must check capability of the product. It is more concentrated over the non-
with other applications availibility and compatibility with the functional requirements rather than functional requirements.
software. The compatibility issue can also occurs when the Performance testing checks for the robustness, security and
software is developed on latest version of the platform, so it speed of the execution. It will check for the all requirement
can be possible that some of the functionality may not be criteria are satisfied or not. Performance testing is more user
supported in the previous versions which can make the concentrated as the good performance will make it more user
software to fail. In such cases the situations must be handeled friendly. It also checks for the stability of the software on
with exceptions. It can also be solved by abstracting operating different platforms and under different functionality. And
system functionality into a separate program module. according to its stability it will check it will take out the
number of failures and time needed for system to recover
which are very important parameters in determining the
quality of product.
11.A/B testing
7. Load Testing A/B testing is basically a method for comparing the two
outputs of the program, when only one parameter is changed.
The software is executed two times with only one parameter is
Load testing is measuring the response under the both normal
changed and results are compared. This is very useful for the
and peak load conditions. load testing is more relevant to the
small scale situations. For more complex projects multivariant
multi user system usually created as client-server application testing can be done.
as it can be tested by stimulating multiple users accessing the
system concurrently. Load testing is also used for measuring
the performance of the software but it is specifically used for V.TESTING PROCESS
performance under the different load. For creating the extra
load load generator(which will replay the previous recorded Software testing is not a one time process in the software
scripts) or extra virtual users are created. It is essential testing development. It is the continuous process of testing from the
for a server-client system like web-services. starting as soon as the executable unit of the software is
developed.

The different types of testing processes are:-


8. Stress Testing

Stress testing is also another method for the performance 1.Traditional waterfall development model
measuring. While load testing measures the performance of
the system by increasing the number of users to its peak stress A common method for software testing is the test the software
testing measures the performance of the system under multiple after the functionality is developed and before it is shipped to
tasks executing simultaneously. It is mostly useful for the the customer. It often creates the buffer for the project
multi-threaded program. It is useful for checking the development resulting in the delay of the project development.
recoverability of the program as system might fail during the another practice is to start testing as soon as the project starts
multiple executions at a time. It can be measure the time for and it is a continuous until the project finishes.
system to recover from the failure.
2.Agile or extreme Development model

9. Alpha Testing In contrast to most of development methods where the testing


process starts after the development of the unit, this process
has unit tests are written first by the software engineers. They
Alpha testing is the kind of acceptance testing. It is carried out
all fail initially as they are expected to. Then the code is
after the software is completely developed. It is done by the
written to solve the errors and the test cases are continuously
highly skilled professionals. It is done onsite in the presence of
update as larger portions of the test cases are passed and new
the developers and business analyst. It is done with both
failures are discovered. The ultimate goal of this iterative
white-box and black-box testing. It is done before the launch
process is to achieve the code that solves all the requirements
of the product in the actual market. It can be done in the
defined after the coding process has been completed.
virtual environment. It is the last testing before the launch of
the product so it require the highly skilled team which can
evaluate whether the product is 100% ready to lauch in 3.Automated testing
market. Automated testing is used more by the developers nowadays.
It is a framework in which tests are written and it will run the
tests automatically every time code is checked into a version
10. Beta testing control system, which can be useful for the regression testing
to discover the last working version of the code. there are
Beta testing is also the acceptance testing. It is carried out various testing tools are available to test the code.
at the time of the software launched in the market. It is done
by the end users by the system. Before the product is made
available to the all users the beta version is launched to test the VI. REFERENCES
product in the real user environment. The product is tested by [1] http://www.cssttechnologies.com/Test%20Requirements%20for
the some real end users before it was made available to all the %20automated%20Testing
users. Beta testing is necessary as feedback before launching [2] http://www.automated-testing.com/PATfinal
the product from end users. [3] http://softwaretestingfundamentals.com/software-testing-methods/
[4] http://csbapp.uncw.edu/data/mscsis/annalspaper.aspx?v=6&i=1&p=1

Anda mungkin juga menyukai