Week10 Lecture19 Testing
Week10 Lecture19 Testing
Testing
Testing is the process or activity that checks the functionality and correctness of software
according to specified user requirements in order to improve the quality and reliability of system.
It is an expensive, time consuming, and critical approach in system development which requires
proper planning of overall testing process.
A successful test is one that finds the errors. It executes the program with explicit intention of
finding error, i.e., making the program fail. It is a process of evaluating system with an intention
of creating a strong system and mainly focuses on the weak areas of the system or software.
System testing begins at the module level and proceeds towards the integration of the entire
software system. Different testing techniques are used at different times while testing the system.
It is conducted by the developer for small projects and by independent testing groups for large
projects.
Types of Testing
Testing can be of various types and different types of tests are conducted depending on the kind
of bugs one seeks to discover −
Unit Testing
Also known as Program Testing, it is a type of testing where the analyst tests or focuses on each
program or module independently. It is carried out with the intention of executing each statement
of the module at least once.
In unit testing, accuracy of program cannot be assured and it is difficult to conduct testing
of various input combination in detail.
It identifies maximum errors in a program as compared to other testing techniques.
Integration Testing
In Integration Testing, the analyst tests multiple modules working together. It is used to find
discrepancies between the system and its original objective, current specifications, and systems
documentation.
Here the analysts are trying to find areas where modules have been designed with different
specifications for data length, type, and data element name.
It verifies that file sizes are adequate and that indices have been built properly.
Functional Testing
Function testing determines whether the system is functioning correctly according to its
specifications and relevant standards documentation. Functional testing typically starts with the
implementation of the system, which is very critical for the success of the system.
Functional testing is divided into two categories −
Positive Functional Testing − It involves testing the system with valid inputs to verify
that the outputs produced are correct.
Negative Functional Testing − It involves testing the software with invalid inputs and
undesired operating conditions.
To carry out system testing successfully, you need to follow the given rules −
Testing should be based on the requirements of user.
Before writing testing scripts, understand the business logic should be understood
thoroughly.
Test plan should be done as soon as possible.
Testing should be done by the third party.
It should be performed on static software.
Testing should be done for valid and invalid input conditions.
Testing should be reviewed and examined to reduce the costs.
Both static and dynamic testing should be conducted on the software.
Documentation of test cases and test results should be done.
Quality Assurance
It is the review of system or software products and its documentation for assurance that system
meets the requirements and specifications.
Purpose of QA is to provide confidence to the customers by constant delivery of product
according to specification.
Software quality Assurance (SQA) is a technique that includes procedures and tools
applied by the software professionals to ensure that software meet the specified standard
for its intended use and performance.
The main aim of SQA is to provide proper and accurate visibility of software project and
its developed product to the administration.
It reviews and audits the software product and its activities throughout the life cycle of
system development.
There are several levels of QA and testing that need to be performed in order to certify a software
product.
Level 1 − Code Walk-through
At this level, offline software is examined or checked for any violations of the official coding
rules. In general, the emphasis is placed on examination of the documentation and level of in-code
comments.
Level 2 − Compilation and Linking
At this level, it is checked that the software can compile and link all official platforms and
operating systems.
Level 3 − Routine Running
At this level, it is checked that the software can run properly under a variety of conditions such as
certain number of events and small and large event sizes etc.
Level 4 − Performance test
At this final level, it is checked that the performance of the software satisfies the previously
specified performance level.