Correctness simply means the minimum requirement of the software and testing for it makes up the essential purpose of testing. Correctness testing is used to tell the right behaviour from the wrong one. The tester may or may not know the inside details of the software module under test, e.g. code and structure etc. Therefore, either white-box or black-box testing can be put into practise. We must note however that black-box and white-box testing are not only used in correctness testing.
The black-box approach is a testing method in which analysis is made solely of the applications functional requirements, without considering the coding or structure behind it. Black-box testing also refers to functional testing -- a testing method which emphasises the execution of the functions and the examination of their input and output data. No implementation details of the code are considered.
In contrast to black-box testing, white-box testing is where the flow of the software under test is visible to the tester. Testing plans are made according to the details of the software implementation, such as programming language, logic, and styles.
Not all software systems have specifications on performance explicitly, but every system will have implicit performance requirements. The term "Performance bugs" is sometimes used to refer to those design problems in software that cause the system performance to degrade. Performance evaluation of a software system usually includes: resource usage, throughput, stimulus-response time and queue lengths.
Software reliability, as it implies, refers to the probability of failure-free operation of a system. Testing is an effective sampling method to measure software reliability. Software testing (usually black-box testing) can be used to obtain failure data. Using this data is it possible to estimate the present reliability of the full system as well as predict and degradation and what the programs future reliability is likely to be.
Software quality, reliability and security are closely linked. Flaws in software can be exploited by intruders to open security holes. With the development of the Internet, software security problems are becoming even more important to test for.
Many critical software applications and services have integrated security measures against malicious attacks. The purpose of security testing of these systems include identifying and removing software flaws that may potentially lead to security violations, and validating the effectiveness of security measures. Simulated security attacks can be performed to find any weak points.
Find Testing jobs by clicking here