Lesson 3
Lesson 3
• Feasibility Study - the team analyzes if a software can be made to fulfill all
requirements of the user and if there is any possibility of software being no
more useful.
• System Analysis - decide a roadmap of their plan and try to bring up the
best software model suitable for the project. Understanding the software
limitations and changes to be done
Steps in SDLC
• Software design - The inputs from users and information gathered in
requirement gathering phase are the inputs of this step. Output will be the
logical design and the physical design
1. Unit testing
2. Integration testing
3. System testing
Each of this type correlated to a specific phase of the SDLC. Unit Testing
Sometimes called module testing, unit testing is the process of testing
individual code modules before they are integrated with other modules. The
objective of unit testing is to identify and fix as many errors as possible before
modules are combined into larger software units (such as programs, classes, and
subsystems). Unit testing is often automated but it can also be done manually.
Unit testing can be tedious and time consuming. It requires patience and
meticulousness on the part of the development team. Unit testing should be
done with an awareness that it may not be possible to test a module for every
input scenario that will occur when the program is run in a real-world
environment. Once all of the modules in a program have been found to be
working in the most efficient and error-free manner possible, larger components
of the program can be assessed by means of integration testing.
Integration Testing
Combining modules and testing them is called integration testing. The use of this
test is to identify errors that were not or could not be detected by unit testing
individual modules. Such errors could result from several problems, including:
• Interface incompatibility. An example is a caller module that passes a
variable of the wrong data type to a subordinate module.
• Parameter values. A module is passed or returns a value that was unexpected
(such as negative number for a price).
• Run-time exceptions. A module generates an error such as “out of
memory” or “file already in use” due to conflicting resource needs.
• Unexpected state interactions. The conditions of two or more modules
interact to cause complex failures (such as an order class method that
operates correctly for all possible customer object conditions except one).
System Testing
In system testing, instead of integrating modules into programs for testing,
the programs are integrated into systems. Not only do individual modules and
programs are tested several times in system testing, but also interfaces
between modules and programs. Usually, system testing is performed first
by developers or test personnel to make sure that the system does not fail and
meets the developers’ understanding of user requirements. If a system is
developed in several iterations, system testing is performed mostly at the end of
each iteration to identify significant issues such as performance problems that
will need to be dealt with in the next iteration.
Acceptance Testing
After the system tests are complete, the system is now ready for acceptance
testing. This is testing the system in the environment where it will
eventually be used. Acceptance means that users normally sign off on the
system and “accept” it once they are satisfied with it. In other words,
acceptance testing is a way for users to verify if the system meets their
requirements. Usually, acceptance testing is the last round of testing before the
system is handed over to its users.
Acceptance Testing
There are two types of acceptance testing and these are:
2. Beta testing – user testing of a completed information system using real data
in the real user environment
Alpha Testing
In alpha testing, the whole system is implemented in a test environment to find
out whether the system is openly destructive to itself or to the rest of the
environment. There are several types of tests done during alpha testing and
these are as follows:
• Recovery testing – forces the software (or environment) to fail in order to
verify that recovery is properly performed · Security testing – verifies that
protection mechanisms built into the system will protect it from improper
penetration
• Stress testing – tries to break the system
Alpha testing
• Performance testing – determines how the system performs in the range
of possible environments in which it may be used; often the goal is to have
the system perform with similar response time and other performance
measures in each environment
Beta Testing
The purpose of beta testing is to ascertain whether the software,
documentation, technical support, and training activities work as planned.
Beta testing can be considered as a preparation of the installation phase.
Problems not covered in alpha and beta testing in any of these areas should be
fixed before users can accept the system.
Alpha Testing Beta Testing
Alpha testing involves both the white box and black
Beta testing commonly uses black box testing.
box testing.
Alpha testing is performed by testers who are usually Beta testing is performed by clients who are not part of
internal employees of the organization. the organization.
Alpha testing is performed at developer’s site. Beta testing is performed at end-user of the product.
Reliability and security testing are not checked in alpha Reliability, security and robustness are checked during
testing. beta testing.
Beta testing also concentrates on the quality of the
Alpha testing ensures the quality of the product before
product but collects users input on the product and
forwarding to beta testing.
ensures that the product is ready for real time users.
Beta testing doesn’t require a testing environment or
Alpha testing requires a testing environment or a lab.
lab.
Alpha testing may require long execution cycle. Beta testing requires only a few weeks of execution.
Most of the issues or feedback collected from beta
Developers can immediately address the critical issues
testing will be implemented in future versions of the
or fixes in alpha testing.
product.
Installation
After the new system has been developed and tested, it must be installed and
placed into operation. Installation is the process of moving from the current
information system to the new one. There are many constraints when installing
a new system and making it operational. These include cost, customer relations,
employee relations, logistical complexity, and overall exposure to risk. Some
other important issues to consider when planning installation are as follows:
1. Direct installation
2. Parallel installation
3. Phased installation
Direct Installation
In direct installation, the old system is turned off and the new system is turned
on.
Direct Installation
In direct installation, the users use the new system. Whatever errors found from
the new system will have a direct impact on the users and how they do
their jobs. If the new system fails, considerable delay may occur until the old
system can operate again and business transactions are re-entered to make the
database updated. The main advantage of direct installation is its simplicity.
There are fewer logistical issues to manage fewer resources required
because the old and new systems are not operated in parallel. However,
the drawback of direct installation is its risk. There is no backup when the new
system fails because older systems are not operated in parallel. Moreover,
direct installation requires a complete installation of the whole system.
Direct Installation
In general, direct installation is used in one or both of the following conditions:
A parallel installation can be very expensive. Since two systems are running,
it implies employing and paying two staffs to operate and maintain them. In
addition, parallel installation can be confusing to users because they are
dealing with both systems.
Parallel Installation
A parallel approach may not be possible or feasible if the users of the system
(such as customers) cannot tolerate redundant effort or if the size of the
system is large.
Phased Installation
In Phased Installation, the new system is
installed and brought into operation in a
series of steps or phases. Components
or functions are added to the
operational system on each phase. The
system is tested in each phase to make
sure that it is ready for the next phase.
Phased installation can be combined
with parallel installation, especially
when the new system will take over the
operation of multiple existing systems.
Phased Installation
The main benefit of phased installation is that it reduced risk because
failure of a single phase is less problematic than failure of an entire system.
However, its drawback is that it increased complexity. Dividing the
installation into phases makes more activities and milestones, hence making
the whole process more complex. Though each individual phase includes a
smaller and more manageable set of activities. Phased installation is useful
mainly when a system is large, complex, and composed of relatively
independent subsystems. If these subsystems are not substantially
independent, then it is hard or impossible to define separate installation phases.
Thank you!