Unit 6 System Implementation
Unit 6 System Implementation
Terminology:
No Word Definition
1 Coding A process whereby the physical specifications
created in the previous phases are turned
into working computer codes by the
programmer team.
2 Installation the process of moving from the current
system to the new or enhanced system.
3 Integration testing A testing where it involves two or more
modules that link each other.
4 System A development, installation and testing of
implementation system components and delivery of that
system into production.
5 System testing A testing where it involves the integration of
the whole programs into a system.
6 Unit testing A testing done at the individual level of
program or module.
BIT III: PU Compiled By: GIRIJA 2
System implementation has several major activities. There are five major tasks in this phase;
coding, testing, installation, documentation and training as in the given figure. The purpose of
this phase is to convert the physical system specifications into working and reliable software and
hardware, document the work that has been done and provide help for current and future users.
1. Coding
Coding is the process whereby the physical specifications created in the previous phases
are turned into working computer codes by the programmer team. Coding is an activity
where all the designs during the previous phases will be programmed using software that
BIT III: PU Compiled By: GIRIJA 3
have been defined before. This is a time where most of the programmers will sit in front
of computers and do coding.
2. Testing
After coding, a programmer must conduct a test. Each program will be tested in order to
make sure it functions correctly. Later, programs are tested in groups, followed by testing
with the entire system. The first step in testing is to compile the program to detect any
syntax errors. If there is an error, the programmers need to correct it until the program
executes correctly. Then, the next step is to do testing, including unit testing, integration
testing and system testing.
Direct Installation
Direct installation, also known as abrupt cut-over installation, involves turning off the old
system and turning on the new system (Figure 1.2).
It is a high-risk approach as potential major problems may only surface once the new
system is in operation.
Errors from the new system can directly impact users, affecting their ability to perform
their jobs.
If the new system fails on the specified date, delays may occur until the issues are
resolved.
This approach is necessary when there is a business policy effective on a specific date,
and the system must align with it.
Organizations opting for direct installation should ensure a successful system
implementation to minimize risks.
Despite its known risks, direct installation may offer cost reduction benefits.
Parallel Installation
Parallel Installation: Both old and new systems operate simultaneously until management
decides to turn off the old system (Figure 1.3).
Considered a riskless approach as major problems are resolved before discontinuing the
old system.
BIT III: PU Compiled By: GIRIJA 5
Single-location Installation
Also known as location or pilot installation.
Involves trying out a new system at one location to gather experience and inform
deployment decisions for the entire organization (Figure 1.4).
Can be either direct installation or parallel installation at the selected site.
Considered a middle-of-the-road approach compared to direct and parallel installations.
The single location can be a branch office or one department.
Once the location approves the system, it may be installed at other locations.
Installation at another site may be direct installation if major errors are fixed at the initial
test location.
Advantages include minimizing potential damage and costs, as success is determined at
the first site.
Disadvantage: Installation of the whole system may take a longer period.
BIT III: PU Compiled By: GIRIJA 6
Phased Installation
Similar to single-location installation but involves installing the new system in functional
components.
An incremental approach where the new system is introduced module by module.
Different modules of the new and old systems are used together until the entire system
is installed.
Aims to minimize installation-related risks, similar to the single-location approach.
Resembles releasing a sequence of system versions.
Requires careful version control, repeated conversion at each phase, and an extended
period of change.
Potential drawbacks include user frustration and confusion during the phased
implementation process.
Installation may also require a system acceptance test plan. System acceptance test is a final
opportunity where end users, management and information system operation decide either to
use or reject the system. System acceptance test is a test performed on the final system wherein
users conduct verification, validation and audit tests. It covers three levels of acceptance testing:
● Verification testing
Verification testing also refers to alpha testing. This testing runs the system in a simulated
environment using simulated data. It’s looking for errors and omissions regarding end
users and design specifications that were specified in the earlier phase of testing.
● Validation testing
Validation testing also refers to beta testing. This testing runs the system in a live
environment using real data. A number of items tested during this testing such as:
o System performance,
o Peak workload processing performance,
o Human engineering test,
o Methods and procedures test,
o Backup and recovery testing.
● Audit testing
Audit testing is a test performed to ensure that the system is free from any errors and
ready to be placed at the real location.
System Documentation
System documentation records detailed information about system’s design specification,
its internal workings and its functionality (Hoffer et. al., 2005). System documentation is
prepared for maintenance personnel who will be in charge of the system operating in the
future. System documentation can be divided into internal and external documentation.
o Internal documentation: Internal documentation is part of the program source
code or is generated at compile time
o External documentation: External documentation is a system documentation that
includes the outcome of structured diagramming techniques such as data flow and
BIT III: PU Compiled By: GIRIJA 8
entity-relationship diagrams. Although it don’t cover the code itself, but it can
provide useful information to the primary users of system documentation-
maintenance programmer.
User Documentation
As stated earlier, system documentation is intended for system maintenance
programmers; user documentation is intended for system users. User documentation
consists of written and visual information about the system, such as what its function is,
how its function and how to use it. There are few types of user documentations;
i. Reference guide - consist of exhaustive list of system functions and
commands
ii. Quick reference guide - provide essential information about operating a
system in a short, concise format
iii. User’s guide - provide information on how users can use a computer
system to perform specific tasks.
Training
Although the documentation is prepared to assist users throughout the system’s life cycle, it's
important to train users with the new system. Normally, the team uses the documentation
prepared to assist them in training sessions. Converting from old to new system necessitates that
the system users be trained and provided with documentation that guide them through the new
system. Training can be one to one; however training a group of people is preferred. Group
training can reduce the time and cost spent to conduct the training, and also encourage the group
participants and feedback towards the system. There are few things that need to be considered
during the training session. The content of the training session should be an introduction to the
system, and system manual.
The modern view of a quality associated with a software product several quality methods such
as the following:
Portability: A software device is said to be portable, if it can be freely made to work in
various operating system environments, in multiple machines, with other software
products, etc.
Usability: A software product has better usability if various categories of users can
easily invoke the functions of the product.
Reusability: A software product has excellent reusability if different modules of the
product can quickly be reused to develop new products.
Correctness: A software product is correct if various requirements as specified in the
SRS document have been correctly implemented.
Maintainability: A software product is maintainable if bugs can be easily corrected as
and when they show up, new tasks can be easily added to the product, and the
functionalities of the product can be easily modified, etc.
o Quality policies: Your quality policies are written into a document that covers how
you handle quality at every level of manufacturing, packaging and marketing. This
includes how you handle customer quality concerns, your warranties and customer
care procedures.
o Quality assurance: Quality assurance involves inspiring confidence that your quality
policies and standards will be upheld internally and externally.
o Quality control: Quality control involves inspection and oversight that backs up your
quality policies and assurance. This could mean inspecting products for defects or
BIT III: PU Compiled By: GIRIJA 10
testing them for the presence of harmful substances. Money spent on quality control
can decrease as an effective QMS is implemented on every level of your company.
SQA Includes:
o A quality management approach
o Effective Software engineering technology (methods and tools)
o Formal technical reviews that are tested throughout the software process
o A multitier testing strategy
o Control of software documentation and the changes made to it.
o A procedure to ensure compliances with software development standards
o Measuring and reporting mechanisms.
Knowledge Sharing: Encourage team members to work together and build a common
knowledge base.
Consistency and Compliance: Verify that all procedures, coding standards, and policies
are followed.
Learning and Training: Give team members the chance to improve their abilities
through learning opportunities.
2. Review Team:
The review team should consist of experts in the relevant areas of the software being reviewed.
This team is responsible for conducting the review, identifying issues, and suggesting
improvements.
3. Review Process:
The review process involves a structured approach to examining the software components. This
can include reviewing design documents, code, and test plans, as well as conducting
walkthroughs or presentations to gain a deeper understanding of the software.
Ensures Compliance:
Formal technical reviews help ensure that the software complies with relevant standards,
regulations, and requirements.
Facilitates Communication:
The review process facilitates communication among team members, stakeholders, and
experts, leading to a better understanding of the software's requirements and design.
Reduces Risks:
By identifying and addressing potential issues early, formal technical reviews help reduce risks
associated with software quality and performance.
Let's consider a simple example of a software project for a basic calculator application. This
example will illustrate how a formal technical review might be conducted for this project.
Project Overview
Project Name: Simple Calculator
Objective: Develop a basic calculator application that can perform addition, subtraction,
multiplication, and division.
Scope: The application will be developed using Python and will have a simple graphical user
interface (GUI) for user input.
2. Review Team
● Members:
○ Software Architect: Responsible for reviewing the overall design and architecture
of the application.
○ Senior Developer: Focuses on the code quality, adherence to coding standards,
and potential performance issues.
○ Quality Assurance Engineer: Ensures the application meets the specified
requirements and has adequate test coverage.
3. Review Process
● Design Document Review: The team reviews the application's design documents to
ensure they are clear, complete, and aligned with the project objectives.
● Code Review: The team conducts a thorough review of the source code, focusing on
code quality, readability, and adherence to coding standards.
● Test Plan Review: The team reviews the test plans to ensure they are comprehensive
and cover all aspects of the application's functionality.
Walkthrough
A software quality assurance (SQA) walkthrough is a process used to review and ensure the
quality of software. It involves a group of individuals, including developers, testers, and other
stakeholders, walking through various aspects of the software to identify issues, ensure
compliance with standards, and improve overall quality. Here's a step-by-step guide for a typical
SQA walkthrough:
Define Objectives:
Clearly define the objectives of the walkthrough. This could include finding defects, ensuring
compliance with requirements, reviewing coding standards, or verifying adherence to design
specifications.
Select Participants:
Assemble a diverse group of participants, including developers, testers, business analysts, and
other relevant stakeholders. Having a mix of perspectives can uncover different types of issues.
BIT III: PU Compiled By: GIRIJA 16
Preparation:
Ensure that all participants are familiar with the software or system under review. Provide them
with any necessary documentation, such as requirements, design specifications, and test plans.
Step-by-Step Examination:
Walk through the software step by step, focusing on different aspects like code, design,
documentation, and test cases. Discuss each component thoroughly, and encourage participants
to ask questions and provide feedback.
Verify Requirements:
Verify that the software meets the specified requirements. Cross-reference the implemented
features with the documented requirements and check for any inconsistencies.
Identify Defects:
Actively search for defects, bugs, or issues within the software. Encourage participants to share
their observations and concerns. Document all identified defects.
Documentation Review:
Review the documentation associated with the software, such as user manuals, technical
documentation, and release notes. Ensure that the documentation is accurate and up-to-date.
Collaborative Discussion:
Facilitate open and constructive discussions among participants. Encourage collaboration and the
exchange of ideas to address issues and improve the overall quality of the software.
BIT III: PU Compiled By: GIRIJA 17
Action Items:
Document action items, including identified defects, areas for improvement, and any necessary
follow-up tasks. Assign responsibilities for addressing these items.
Follow-Up:
Schedule follow-up meetings or activities to track the resolution of identified issues and ensure
that improvements are implemented.
Comprehensive documentation,
Minimal documentation, with including a formal review report
Documentation
a focus on discussion. detailing the process and identified
issues.
Inspections
Software inspections are a formalized process for reviewing and assessing work products such as
requirements, design documents, code, and test plans. The primary goal of inspections is to
identify and correct defects early in the software development process, improving overall
product quality. The process involves a group of individuals who systematically examine the work
product with the aim of finding issues and ensuring that it adheres to established standards and
specifications.
Objectives of Inspection:
Following are some of the objectives of Inspection.
To efficiently improve the quality of a software or product.
To create common understanding between individuals who are been involved in the
inspection.
To remove defects and errors as early as possible.
BIT III: PU Compiled By: GIRIJA 19
To learn and improve from defects which are been found during inspection.
Helping author to improve and increase the quality of product which is been developed.
Here are the key steps involved in a typical software inspection process:
Planning:
o Define the objectives and scope of the inspection.
o Identify the participants, including moderators, reviewers, and authors. Schedule
the inspection, considering the availability of team members.
Overview Meeting:
o Conduct a meeting to provide an overview of the work product being inspected.
o Discuss the purpose, goals, and expected outcomes of the inspection.
o Clarify any questions or concerns team members may have.
Preparation:
o Distribute the work product to be inspected well in advance.
o Ask participants to individually review the work product and note potential
issues.
o Encourage participants to prepare for the inspection meeting.
Inspection Meeting:
o Bring participants together for a collaborative inspection meeting.
o Follow a structured agenda, with the moderator guiding the discussion.
o Review the work product section by section, allowing participants to raise
concerns or suggestions.
Defect Recording:
o Document all identified defects, issues, and concerns during the inspection.
o Classify the severity of each defect and note potential solutions or
recommendations.
Follow-Up:
o Share the recorded defects with the author of the work product.
o Collaborate on resolutions for identified issues.
o Update the work product based on the feedback and resolutions.
BIT III: PU Compiled By: GIRIJA 20
Re-Inspection (Optional):
o In some cases, a re-inspection may be conducted to verify that identified issues
have been addressed.
o The re-inspection focuses specifically on the previously identified defects.
Documentation:
o Maintain detailed records of the inspection process, including meeting minutes,
identified defects, resolutions, and any follow-up actions.
Comprehensive documentation,
Documentation may be less formal,
Documentation including a formal inspection
focusing more on discussion.
report.
Types of maintenance
There are 4 types of sofware maintenance:
i. Adaptive
ii. Corrective
iii. Preventive
iv. Perfective
BIT III: PU Compiled By: GIRIJA 23
Corrective Maintenance:
Corrective maintenance is mainly performed in order to fix the error in the operational
system. Corrective maintenance starts with identification of errors and ends with
correction of errors in an operational system.
Best approach to corrective maintenance is scaled-down version of the SDLC. In which
investigation, analysis, design and testing is performed before system implementation.
During corrective maintenance any new updates are first checked for in test
environment and then updated in the operational system.
Examples:
Adaptive maintenance:
Perfective maintenance:
• Perfective maintenance is mainly perfomed to improve the efficiency, reliability and
maintainability of the operational system.
• Perfective maintenance is performed depending on the requests from the users. When
users generate any issues regarding performance of the system, requests should be
evaluated to determine if perfective maintenance can help in resolving the issue or not.
• Software engineering is used by analysts to during perfective maintenance to identify
potential quality and performance improvements.
Examples:
Preventive maintenance:
The activity done to prevent system failure by bringing changes to software for the
system safe future and easy maintenance comes under preventive maintenance.
Preventive maintenance is mainly performed so that future failure or faults related to
system functionality can be avoided or reduced.
It helps is providing satisfaction to the user, decrease in downtime and reduced total cost
of ownership (TCO) and directly affect the success or the organization.
Examples:
In the analysis stage, the requirements are analyzed to begin the software maintenance
process. After analysis, the requested modifications are classified according to the
complexity, technical issues, and identification of modules that will be affected. At the end,
the software is modified to implement the modification request. At each stage, the
documentation is updated to accommodate changes of requirements analysis, design,
coding, and testing phases.
Reuse-oriented Model
The reuse-oriented model assumes that the existing program components can be reused
to perform maintenance.
Reuse Oriented Model (ROM), also known as reuse-oriented development (ROD), it can
be steps of the software development for specific duration in which software is
redesigned through creating a sequence of prototypes known as models, every system is
derived from the previous one with constant series of defined rules.
BIT III: PU Compiled By: GIRIJA 27
E. System Testing
System testing is a type of software testing that evaluates the overall functionality and
performance of a complete and fully integrated software solution. It tests if the system meets
the specified requirements and if it is suitable for delivery to the end-users. This type of testing
is performed after the integration testing and before the acceptance testing.
The software is tested at different levels. Initially, the individual units are tested arid once they
are tested, they are integrated and checked for interfaces established between them. After this,
the entire software is tested to ensure that the output produced is according to user
requirements. There are four levels of software testing, namely, unit testing, integration testing,
system testing, and acceptance testing.
Principles of Testing
All the tests should meet the customer’s requirements.
To make our software testing should be performed by a third party.
Exhaustive testing is not possible. As we need the optimal amount of testing based on the
risk assessment of the application.
All the tests to be conducted should be planned before implementing it
It follows the Pareto rule (80/20 rule) which states that 80% of errors come from 20% of
program components.
Start testing with small parts and extend it to large parts.
It is a way of software testing in which the It is a way of testing the software in which the
internal structure or the program or the tester has knowledge about the internal
code is hidden and nothing is known about structure or the code or the program of the
it. software.
BIT III: PU Compiled By: GIRIJA 31
Implementation of code is not needed for Code implementation is necessary for white
black box testing. box testing.
No knowledge of implementation is
Knowledge of implementation is required.
needed.
It is the behavior testing of the software. It is the logic testing of the software.
It is applicable to the higher levels of testing It is generally applicable to the lower levels of
of software. software testing.
Can be done by trial and error ways and Data domains along with inner or internal
methods. boundaries can be better tested.
Developers usually do unit testing by writing various test cases to test their code. It helps them
catch bugs early during coding before issues can multiply, saving the time and effort of dedicated
software testers.
Example:
Scenario: Testing an “Email Validation” feature for a website’s sign-up page.
Input: Giving different email addresses where valid emails are accepted and invalid ones
are rejected.
Execution: Run the feature with each email address.
Verification: Check if the valid emails are accepted and failed ones are rejected.
Purpose: This example demonstrates integration testing by focusing on how different system
components (the e-commerce platform and the payment gateway) work together.
2. Integration Testing
Unlike unit testing, integration testing helps testers determine whether different modules
or services work together harmoniously as intended.
That means after developers have conducted and verified that individual units are
working properly, software testers combine those units and perform integration tests to
test them as a group.
Specifically, integration testing helps check if the interface connections between units are
working and verify that the integrated system meets the requirements.
This process helps to confirm that the units tested by developers independently are
operating together when integrated.
BIT III: PU Compiled By: GIRIJA 33
Example:
Scenario: Testing the integration of an online payment gateway of an e-commerce website.
Input: Adding products to the cart and making the payment through the payment
gateway.
Execution: Perform a complete transaction from selecting a product to completing
payment.
Verification: Ensure that the e-commerce platform correctly communicates with the
payment gateway and the transaction is processed smoothly without any issues.
3. System Testing
System testing, as the name suggests, basically helps to evaluate the entire system and
checks that it meets the overall functional requirements of the software application.
To verify this, this software testing method focuses on end-to-end business processes and
workflows to test and confirm that the system is functioning as expected and intended.
To perform a system test, software testers need to perform the following:
o Testing system functionality using actual production-like data
o End-to-end testing of transactions and data flows
o Testing of reporting features and data validation
o Testing integrations with external systems/interfaces
o Testing system performance under load close to production
o Security testing at a system level
After performing these tests, system testing finally gives testers the confidence that the overall
solution will function as needed when it is finally deployed in the live environment.
Example:
Scenario: Testing the complete functionality of an airline reservation system.
Input: Execute a series of actions – searching & selecting a flight, entering passenger
details, making a payment, and receiving a booking confirmation.
Execution: Run through the entire process from start to finish, simulating a real user’s
experience.
Verification: Check that the flight search, booking process, payment gateway, and
confirmation system work together seamlessly and the entire process is completed
without errors.
Purpose: This example illustrates system testing by focusing on the entire airline reservation
system. It assesses the system’s overall functionality, ensuring it meets its intended
requirements and specifications.
BIT III: PU Compiled By: GIRIJA 34
4. Acceptance Testing
Acceptance testing helps software testers confirm that the software meets all agreed
business and user requirements and is acceptable for delivery.
This is done by testing the software application with the following three acceptance
testing sub-types:
a. Alpha Testing
Alpha testing is a type of acceptance testing performed by the team in an
organization to find as many defects as possible before releasing software to
customers
b. Beta Testing
Beta Testing is a type of software testing which is carried out by the
clients/customers. It is performed in the Real Environment before releasing
the product to the market for the actual end-users.
Unlike other functional testing types, acceptance testing is usually conducted in a production-like
environment to thoroughly examine whether the software meets all validation criteria and is
ready for go-live.
Example:
Scenario: Testing a new corporate project management software.
Input: Key users from the company, such as project managers and team members, use
the software to manage a mock project. This includes creating projects, assigning tasks,
tracking progress, and generating reports.
Execution: The users perform all the functions they typically use daily, assessing the
software’s usability, features, and performance.
Verification: Gather feedback from these users to determine if the software meets their
needs and expectations and if it’s ready for deployment in the work environment.
Purpose: This example demonstrates acceptance testing by focusing on how the end-users
interact with the software and whether it fulfills their requirements and expectations.
BIT III: PU Compiled By: GIRIJA 35
Identifying test data can be time-consuming and may sometimes require creating test data
afresh. The reason it needs to be documented.
Many times the Test Steps are not simple as above, hence they need documentation. Also, the
author of the test case may leave the organization or go on a vacation or is sick and off duty or is
very busy with other critical tasks. A recently hire may be asked to execute the test case.
Documented steps will help him and also facilitate reviews by other stakeholders.
During test execution time, the tester will check expected results against actual results and
assign a pass or fail status
Step 5) That apart your test case -may have a field like,
Pre – Condition which specifies things that must be in place before the test can run. For our test
case, a pre-condition would be to have a browser installed to have access to the site under test.
A test case may also include Post – Conditions which specifies anything that applies after the
test case completes. For our test case, a post condition would be time & date of login is stored
in the database