Software Testing
Testing Fundamentals - The Psychology of Testing - Software Testing Principles -
Explanation - Code Inspections - An Error checklist for Inspections
Week 1
Learning Objectives:
1. To learn the fundamental concepts of software testing and understand the perspectives
of Software Testing
2. To Understand the economics of testing, assumptions that the tester will have to make
and some strategies before testing
3. To understand the set of vital testing principles or guidelines
4. To familiarize the code inspection and walkthrough process
5. To Understand the need and the categories of Error checklists used for the inspection
process
Key Topics
1. Introduction
2. The Psychology of Testing
3. The Economics of Testing
4. Software Testing Principles
5. Introduction to Code Inspection and Walkthrough
6. Code Inspections Process
7. Code Inspection Checklists
7.1. Data Reference Errors
7.2. Data Declaration Errors
7.3. Computation Errors
7.4. Comparison Errors
7.5. Control-Flow Errors
7.6. Interface Errors
Page 1 of 21
,7.7. Input/Output Errors
7.8. Other Checks
7.9.
Page 2 of 21
, 1. Introduction
Software testing can be stated as the process of verifying and validating that a software or
application is bug free, meets the technical requirements as guided by its design and
development and meets the user requirements effectively and efficiently with handling all the
exceptional and boundary cases.
The process of software testing aims not only at finding faults in the existing software
but also at finding measures to improve the software in terms of efficiency, accuracy and
usability. It mainly aims at measuring specification, functionality and performance of a
software program or application. The benefits of testing include preventing bugs, reducing
development costs and improving performance.
There are many different types of software tests, each with specific objectives and
strategies. In each case, validating base requirements is a critical assessment. An exploratory
testing helps a tester or testing team uncover hard-to-predict scenarios and situations that can
lead to software errors. Even a simple application can be subject to a large number and
variety of tests. Hence, a test management plan helps to prioritize which types of testing
provide the most value – given available time and resources. Testing effectiveness is
optimized by running the fewest number of tests to find the largest number of defects.
The testing is important since it discovers defects/bugs before the delivery to the
client, which guarantees the quality of the software. It makes the software more reliable and
easier to use. Thoroughly tested software ensures reliable and high-performance software
operation.
Software testing can be divided into two steps:
1. Verification: it refers to the set of tasks that ensure that software correctly implements
a specific function.
2. Validation: it refers to a different set of tasks that ensure that the software that has
been built is traceable to customer requirements.
Verification: “Are we building the product, right?”
Verification in Software Testing is a process of checking documents, design, code,
and program in order to check if the software has been built according to the requirements or
not.
Page 3 of 21