Chapter 5
Chapter 5
System
Implementation
and
Software Testing 01/18/2024
Outline
2
System implementation
Coding Standards
Testing Principles
Software Testing
Types of Testing
Level of Testing
01/18/2024
System Implementation
3
System Implementation
Implementation of new tools and software into an enterprise can be complex, depending on
It is the coding or programming activity is to implement the design in the best possible
manner.
01/18/2024
System Implementation
4
What is Coding ?
The coding is the process of transforming the design of a system into a computer
language format, which can be executed by a computer and that perform tasks as
Coding is done by the programmers who are independent people than the designer.
01/18/2024
System Implementation
5
Goals of Coding
To translate the design of system into a computer language format:
efficient coding.
Program should be easy to read and understand. It increases code understanding having
readability and understandability as a clear objective of the coding activity can itself help
Coding standards
It is a set of rules, techniques, and best practices to create cleaner, more readable,
Rules for limiting the use of global: These rules file what types of data can be
Naming conventions for global variables, local variables, and constant identifiers:
01/18/2024
System Implementation
7
We must use these coding standards to develop good software system because
Syntax error
Runtime error
Semantic error
Logic error
Disregarding adopted conventions in the coding standard
Calling the wrong function
01/18/2024
Software Testing
8
What is Testing ?
Testing is the process of executing a program or system with the intent of finding errors.”
It is the process of finding differences between the expected behavior specified by system
It is a process used to identify the correctness, completeness and quality of developed computer
software.
One of the practical methods commonly used to detect the presence of errors in a program is to test it for a
set of inputs.
01/18/2024
Types of Testing
9
Functional Testing
Functional testing: finds differences between the use case model and the
system.
Structural testing:
It finds differences between the system design model and a subset of integrated
subsystems.
It is a type of software testing which uses the internal design of the software for testing
or in other words the software testing which is performed by the team which knows the
performance.
01/18/2024
Software Testing Principles
11
Verification
The process of proving the programs correctness.
It attempts to find faults before any execution of the system.
It is a process of determining if the software is designed and developed as
per the specified requirements.
Validation
The process of finding errors by executing the program in a real
environment.
It is the process of checking if the software (end product) has met the client's
true needs and expectations. 01/18/2024
Software Testing Principles
12
Debugging
Debugging is the process of finding and fixing errors or bugs in the
source code of any software.
There are two types of debugging techniques:
Reactive debugging: a defect is reported in the application or an error occurs,
and the developer tries to find the root cause of the error to fix it.
Preemptive debugging: involves writing code that doesn’t impact the
functionality of the program but helps developers, either catch bugs sooner or
debug the source code easily when the bug occurs.
01/18/2024
When to start Testing …?
13
An early start to testing reduces the cost, time to rework and error free
started from the Requirements Gathering phase and lasts till the
For example in Waterfall model formal testing is conducted in the Testing phase
01/18/2024
Software Reliability
14
cause the failure of the system for a specified time under specified
conditions.
The goal of testing is to maximize the number of discovered faults, and
01/18/2024
Level OF Testing
16
01/18/2024
Level OF Testing
17
01/18/2024
Fault Detection Techniques
18
Unit testing
01/18/2024
Fault Detection Techniques
19
Integration testing
components together.
first and lower level units are tested step by step after
that. This approach is taken when top down development approach is followed.
Bottom Up is an approach to Integration Testing where bottom level units are
tested first and upper level units step by step after that. This approach is taken
when bottom up development approach is followed.
01/18/2024
Fault Detection Techniques
21
System Testing
Test cases are designed from the requirements analysis document and centered
around requirements and key functions (use cases).
The system is treated as black box
01/18/2024
Fault Detection Techniques
22
Acceptance Testing
Acceptance Testing is the last phase of software testing performed after System
Testing and before making the system available for actual use.
operational use.
01/18/2024
Fault Detection Techniques
23
Acceptance Testing
Alpha test:
It is a type of software testing performed to identify bugs before releasing the product to real
users
Client uses the software at the developer’s environment.
Software used in a controlled setting, with the developer always ready to fix bugs.
Beta test:
Beta Testing is performed by real users of the software application in a real environment. Beta
Defect:
01/18/2024
Software Testing Terminology
26
Errors
It is a mistake, misconception, or misunderstanding on the part of a software developer.
For example, a developer may misunderstand a de-sign notation, or a programmer
might type a variable name incorrectly, this leads to an Error.
Bug
is a coding or programming error that causes a program to work poorly,
produce incorrect results or crash.
it is an error in software or hardware that causes a program to malfunction.
It is a the terminology of software Tester.
01/18/2024
Software Testing Terminology
27
Faults
A fault is introduced into the software as the result of an error.
It is an anomaly in the software that may cause it to behave incorrectly, and not
according to its specification.
It is a design or coding mistake that may cause abnormal component behavior.
A fault in the code does not always produce a failure.
Failures
It is the inability of a software system or component to perform its required functions
within specified performance requirements.
When a defect reaches the end customer it is called a Failure.
01/18/2024
Software Testing Terminology
28
01/18/2024
Software Testing Terminology
29
of the component.
01/18/2024
30
End!
01/18/2024