Software Security Testing: An Essential in
Todays World
The software development life cycle consists of Planning,
Requirement analysis, Design & Development, Implementation,
Testing & Integration, Evaluation, Release and support. The
testing of software is one of the major steps in the
development cycle and is equally important like software design
and development. One has to put at least 50% of the time spent
in software development for testing. During this testing a
number of tests such as black box/ white box/ gray box testing,
unit/ integration/ system/ acceptance testing, functional/
non-functional testing and verification and validation
conducted on the software. One of the most important
non-functional testing is security testing.
Nowadays, software security has gained enormous importance
in the world of software development. Companies constantly
search for ways and means to ensure that their systems are
secure and the systems are well protected. Large as well as
small companies are prepared to spend large sums of money for
adding security to their software. The current way of
functioning of individuals and organizations has been largely
affected with the advent of computers and internet. In order to
increase the efficiency of communication and operation most of
the companies have operations using computers and internet.
They have computerized scientific, industrial and financial
areas of operation and data is passed through internet either
for communication or research or money transfer and all these
operations are very critical and if not protected this will be
detrimental to the profitability of the organization. The
internet service provider must ensure that the information and
network are secured from the intruders.
The software security has to be inbuilt in the system from
the day of starting the development and the matter has to be
viewed very seriously. As more and more additions are made to
the software there is further need for security. All these mean
that the security testing has to be done carefully and
diligently when new software is developed. Nowadays one comes
across the misdeeds of hackers and crackers who breach the
security of many organizations thereby getting access to the
internals of organization data including finances. Further, new
viruses crop up on a daily basis which affects the computer
operations badly. Because of these reasons the security aspect
has to be considered on top priority than all other things
involved in computers and computer software.
Primary purpose of security testing is to identify the
vulnerabilities of the system and subsequently repairing them.
This testing not only protects the data on the system but also
ensures that the system remains functional. The software
security testing involves six basic security concepts and
details of them are given below.
 |
Confidentiality – This is a security measure to
protect against disclosure of information to
persons who are not the genuine recipient for that
information. These are normally done by encrypting
information using secret codes and passwords. |
 |
Integrity – With this concept the information is
received by the recipient from the sender without
any tampering or alteration of the information
during transit. Any alteration can be done only by
the originator. |
 |
Authentication – This is designed to establish the
genuineness of the originator/ sender and validity
of transmission. The receiver must have full
confidence in the source of the originating
message. |
 |
Authorization – This process will ensure that the
receiver is authorized to receive the information.
This is normally controlled by using access control
methods such as login, passwords etc. |
 |
Availability – This ensures that the relevant
information is readily available for accessing in
case it is required for use. |
 |
Non-repudiation – With this both the sender and
receiver are prevented from denying either sending
or receiving the information at a later date. This
is done by the interchange of authentication
information combined with some form of provable
time stamp. |
Most of the software testing has similar characteristics;
they are designed mainly to show the good of the system. In
contrary to this, the security testing shows the weakness in
the software with a view to improve it.
The software testing engineer who tests security aspects of
software should be a qualified software engineer with
experience in software testing, platform, application domain,
computer security and software programming. The main objective
of security software is to test for attacks and hacks and hence
it concentrates on getting negative results or leaks in
security with a view to improve the security aspects of the
software.
|