Asset Management Software Header Gif

 Software Testing Basics

 

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.