You are on page 1of 6

activities and execution phase goes hand in hand with bug logging

Abstract and tracking. The software bug life cycle explained in the paper in
the coming section highlights the mandatory steps for bug logging
Software Testing is a process of finding errors while executing a
and tracking. The test preparation phase includes test case
program so that we get a zero defect software. It isaimed at
preparation, test case selection, test case optimization and test data
evaluating the capability or usability of a program. Software testing
preparation which is going to be elaborated later in this paper.
is an important means of accessing qualityof software. Though a lot
There are lots of available testing types like black box testing, white
of advancements have been done in formal methods and
box testing, state based testing, security testing, look
verification techniques, still we needsoftware to be fully tested
before it could be handled to the customer side. Thus there are a
number of testing techniques and tools made to accomplish the
2. The many faces of software testing
task. Software testing is an important area of research and a lot of Software testing is a broad term encompassing a wide spectrum of
development hasbeen made in this field. In this paper, testing different activities, from the testing of a small piece of code by the
techniques and tools have been described. Some typical latest developer (unit testing), to the customer validation of a large
researcheshave been summarized. Software testing is gaining more information system (acceptance testing), to the monitoring at run-
and more importance in the future. time of a network-centric service-oriented application. In the
various stages, the test cases could be devised aiming at different
1.INTRODUCTION objectives, such as exposing deviations from user’s requirements, or
assessing the conformance to a standard specification, or evaluating
Software testing is the main activity of evaluating executing
robustness to stressful load conditions or to malicious inputs, or
software with a view to find out errors. It is the process where the
measuring given attributes, such as performance or usability, or
system Requirements and system components are exercised and
estimating the operational reliability, and so on
evaluated manually or by using automation to ls to find out whether
the system is satisfying the specified requirements and the Starting from this very general view, we can then concretize
differences between expected and actual results are determined. different instances, by distinguishing the specific aspects that can
This paper at a high - level is divided into two sections. The first characterize the sample of observations:
section covers optimized testing process, which elaborates all
phases of the testing life cycle and the second section covers testing WHY: why is it that we make the observations? This question
types. The first section emphasizes the main activities, which are concerns the test objective, e.g.: are we looking for faults? or, do we
Analysis [A], Planning and Preparation [P], Execution [E] and
Closure[C]. Where closure includes release and root cause analysis
need to decide whether the product can be released? or rather do WHEN: when is it in the product lifecycle that we perform the
we need to evaluate the usability of the User Interface? observations? The conventional argument is that the earliest, the
most convenient, since the cost of fault removal increases as the
HOW: which sample do we observe, and how do we choose it? lifecycle proceeds. But, some observations, in particular those that
This is the problem of test selection, which can be done ad hoc, at depend on the surrounding context, cannot always be anticipated in
random, or in systematic way by applying some algorithmic or the laboratory, and we cannot carry on any meaningful observation
statistical technique. It has inspired much research, which is until the system is deployed and in operation. These questions
understandable not only because it is intellectually attractive, but provide a very simple and intuitive characterization schema of
also because how the test cases are selected -the test criterion-
software testing activities, that can help in organizing the roadmap
greatly influences test efficacy. for future research challenges

HOW MUCH: how big of a sample? Dual to the question of how


3.1. Test Analysis Phase
do we pick the sample observations (test selection), is that of how
many of them do we take (test adequacy, or stopping rule). The first phase which is a Analysis phase is the basic phase of the
Coverage analysis or reliability measures constitute two “classical” software testing process. This phase includes the analysis of
approaches to answer such question. functional and non functional requirements e.g. business
requirements, functional specification document and technical
WHAT: what is it that we execute? Given the (possibly composite) specification document etc The requirements collection and is to be
system under test, we can observe its execution either taking it as a done for elucidation with customers to identify actual and expected
whole, or focusing only on a part of it, which can be more or less big results of testing like Identification of requirements and gaps, which
(unit test, component/subsystem test, integration test), more or are basically non functional requirements such as usability,
less defined: this aspect gives rise to the various levels of testing, scalability, testability, maintainability, performance and security. All
and to the necessary scaffolding to permit test execution of a part requirements that cannot be tested due to system and test
of a larger system. environment constraints should be communicated to the business
team. During this phase, the testing team reviews and analyses the
WHERE: where do we perform the observation? Strictly related to requirements and identifies the tests, which are to be performed
what do we execute, is the question whether this is done in house, and sets priorities for testing –team members.
in a simulated environment or in the target final context. This
question assumes the highest relevance when it comes to the
testing of embedded systems.
Test Closure is a important phase which includes all test reports
3.2. Test Planning and Preparation ensuring that all system, integration, user acceptance testing passed
Phase and decision is taken whether all requirements are tested and there
is no critical bug pending to be fixed OR verified. A review of all test
The test preparation phase includes test plan preparation, test case, artifacts is done by Manager. Once all artifacts are reviewed and
test data and test environment preparation. The test plan is the first approved then software release is done. Further root cause analysis
document to be prepared, which outlines the scope,objectives, is being done to brainstorm on what went well, what did not go well
features to be tested, features not to be tested,types of testing to and areas of improvement. There are various root cause analysis
be performed, roles and responsibilities of testing team, entry and tools and methods available on which a lots of research has been
exit criteria and ssumptions. Simultaneously the testing teams star done in past.
preparing test cases and test data. A test case is a document, which
outlines steps required to test any functionality with expected and SOFTWARE TESTING TYPES
actual result. If actual result doesn’t matches with expected result
then a bug is opened. For each requirement, positive and negative
4.1. Functional Testing
test cases are prepared,which is ensured by requirement
traceability matrix (RTM). RTM is a document which maps The main quality factor in software is to meet its required
requirements with test cases to ensure 100% testing is done functionality and behavior. The functional part of software includes
the external behavior that mainly specifies all user
3.3. Test Execution Phase equirements.The high level design of the software is produced so
that the customer would be satisfied at an early stage of design and
In this phase testers execute software as per test cases. Wherever
development.
actual and expected results don’t match then tester open bugs and
assign the same to developers. Bug logging and tracking follows Sno Testing type Defintion
complete life cycle of bug. There is already a lot of work which has
been done in past that focuses on main steps to be taken to report
The lowest level of
valid fault. The routine reports can be discussed on weekly/ daily testing mainly
basis along with the projects progress on project delivery, performed by
acceptance and approvals are monitored to analyze pilot project.
1 Unit Testing developer to test
the unit of code
3.4. Test Closure
Integration This is to test the and feedback is taken
2 testing communication to further enhance
between various quality of software.
modules to make
sure data is flowing
across various
components
correctly. This Is
done following
either top-down
approach OR
bottom-up
approach.
System The overall system is
3 stable. tested to ensure that
it Is behaving
Or functioning as 4.2. Performance Testing
intended and as
Specified in This is one of a non-functional testing types which test
requirement Performance of Software under All favorable And non-
document.regression
testing is performed favorable conditions. This includes all time related parameters
to ensure that like Load time, access time, run time, execution time etc. This
nothingis broken in also includes success rate, failure frequency, mean time
system after fixing
between failures and overall reliability of software. The most
bugs and testing
bugs. popular types of testing performed in Performance testing are
Acceptance Pre acceptance Testing Stress testing and Load testing. Stress testing is performed to
4 is performed mainly find and understand the upper limits of capacity within the
known as alpha and
Beta testing to ensure system. Extreme load is given to the application to determine
the customers are able the robustness of the system. Soak testing is also performed
to perform Intended
which is called as endurance testing. This testing is done to
functionality
determine if the system can sustain the continuous expected 5. MAPPING OF SOFTWARE TEST PROCESS
load. Potential leaks are detected by monitoring the memory
utilization.
ANS TESTING TYPES
There are four major phases in software test life cycle which are
4.3. Security Testing earlier explained in this paper. Each phase require some sort of
testing to be performed. In test analysis and test preparation phase
As per the current scenarios timing and buffer overflow only verification of requirement documents and other test
attacks are most common. In object oriented systems, design documents is done. Verification involves all types of reviews,
level problems include error handling. Some other design level inspection and walkthroughs. It is mainly done before validation.
problems like sharing and trust issues, unprotected data Once Test Preparation is done and all artifacts are reviewed and
channels, incorrect or missing access control mechanisms, lack base lined, then Test execution begins, where in actual validation is
of auditing, incorrect logging and timings and ordering errors performed. In this phase all types of testing is performed which are
also lead to security risks. The software is required to test for shown in Figure 1 below at a high level
the security features like strong authentication, cryptography
and access control and some other security mechanisms.

Security testing basically follows two types of approaches:

A. Testing software regarding software’s Functional


mechanisms

B. Performing risk based approach according to


attackersmindset.

Penetration Testing is a security testing in which evaluators


attempt to circumvent the security features of a system based
ontheir understanding of the system design and 6.Software Testing Principles
implementation.
Different software testing principles are as follows:
1 Test a program so as to make it fail: Testing is the process of 7. CONCLUSION
executing a program with the intent of finding bugs and errors.
Testing becomes more effective when failures are exposed. The intent of this paper was to research on various phases of
software testing life cycle and different types of testing. After
2 Start testing rearly: This helps in finding and fixing a number of
reviewing various phases of software life cycle it is found that
errors in the early stages of development, thus reduces the rework
there are main 4 phases in testing life cycle that could be
of finding the errors in the later stages.
categorized as Analysis, Planning and Preparation, Execution
3 Testing is context dependent: Testing shoul be appropriate and Closure. A generic software testing life cycle- APEC is
and different for different context and also at different points of proposed in this paper. Also most recent failures are studied,
time. which happened due to lack of performance and security
testing. A lot of time is spent on Functional testing and there
4 Test Plan: Test Plan usually describes test strategy, test scope,
test objectives, test environment, deliverables of the test, risks and is rarely any software which got crashed due to lack of
mitigation involved, schedule, levels of testing to be applied,
functional testing in recent past. So this paper proposed a new
techniques, methods and tools to be used. Test plan should
right mix of testing which should include some performance
accurately meet the needs of an organization and customer as well
and security testing checks in addition to functionality testing
(IEEE(1990), IEEE Standard Glossary of Software Engineering
Terminology, Los Alamitos, CA: IEEE Computer Society Press). for better quality of software. As there is always a scope so
Further to this paper a research and study can be done on the
5 Effective Test cases: Effective test cases must be designed so software testing to propose a generic testing framework and
that they can be measured and clear test results are produced. techniques to support functional, performance and security
testing for object oriented development framework and other
6 Test valid as well as invalid Conditions: In addition to valid
test ases, test cases for invalid and unexpected inputs/conditions platforms using some algorithm(s) with/ without use of tools
must also bechecked. This form of testing is sometimes specified as in minimum amount of time.
regression testing.