SOFTWARE TESTING PROCESS FOR SHARED BANKING SERVICES (SBS) SYSTEM

advertisement
SOFTWARE TESTING PROCESS FOR SHARED BANKING SERVICES
(SBS) SYSTEM
NORAKMAR BINTI ARBAIN @ SULAIMAN
UNIVERSITI TEKNOLOGI MALAYSIA
SOFTWARE TESTING PROCESS FOR SHARED BANKING SERVICES (SBS)
SYSTEM
NORAKMAR BINTI ARBAIN @ SULAIMAN
A project report submitted in partial fulfillment of the
requirements for the award of the degree of
MSc. (Computer Science – Real Time Software Engineering)
Centre for Advanced Software Engineering
Faculty of Computer Science and Information System
Universiti Teknologi Malaysia
APRIL 2009
iii
DEDICATION
To my beloved mother and father
iv
ACKNOWLEDGEMENT
In the name of The Almighty, I thank you for giving me the strength and
courage in order to face all the obstacles that lie in my journey of completing this
report.
I am very thankful to my Academic Mentor, Mr. Mohd Ridzuan Ahmad for
all his advice and support. Next, my thanks also go to my Industrial Mentor, Mdm.
Haidayu Anuar, for the great hospitality and giving me chance to explore and
experiences the real working environment in HeiTech Padu. Thank you for believing
in me for completing the given tasks.
To my beloved parents, Hj. Arbain and Hjh. Siti Hasnah for their encourage
and love, and also to my fiancé, Mr. Ariffuddin for his patience, assist and support
for whatever barrier that I have faced in managing life in order to complete this
industrial project successfully.
Thank you also to my fellow classmates in RTSE Batch 19, especially to
Nurdatillah and Hannan, for sharing in their knowledge and memories in HeiTech.
Last but not least, thanks again for colleagues at HeiTech and all parties in CASE
that assist and support me in order to accomplish this industrial project either directly
or indirectly. I thank you.
v
ABSTRACT
Software testing is one of the main activities in software development life
cycle. This process consists of a few activities, which includes developing test plan
and strategy, test design, test execution and evaluation of test result. However, a
customized testing process is required for a specific domain in order to ensure the
correctness and completeness of the test result. This project proposed a customized
testing process for Shared Banking Services (SBS) system, which developed by
R@PIC, HeiTech. Study was conducted in order to identify the specific modules in
SBS and its characteristics which differentiate it from other software applications.
Besides that, three testing methodologies, which are HeiTech Testing Process, RUP
Test Discipline and Systematic Test and Evaluation Process (STEP), were compared
based on criteria such as main activities, roles and responsibilities, artifacts and level
of testing. The comparison result was then map to the characteristic of SBS to
produce the proposed software testing process for SBS.
vi
ABSTRAK
Pengujian perisian ialah satu daripada aktiviti utama dalam kitaran hidup
pembangunan perisian. Process pengujian ini mempunyai beberapa aktiviti seperti
membina perancangan dan strategi pengujian, merekabentuk pengujian, perlaksanaan
pengujian dan penilaian hasil pengujian.
Namun, satu proses pengujian yang
lengkap dan bertepatan diperlukan untuk domain tertentu, bagi memastikan
ketepatan dan memenuhi hasil sesuatu pengujian. Projek ini mencadangkan satu
proses pengujian yang sesuai untuk Sistem Perbankkan Perkongsian Perkhidmatan
(SBS) yang dibangunkan oleh R@PIC, di HeiTech. Oleh itu, satu kajian telah
dijalankan bagi menentukan modul khas untuk sistem SBS, dan juga ciri-cirinya
yang berbeza daripada aplikasi perisian yang lain. Disamping itu, tiga metadologi,
iaitu Proses Pengujian HeiTech, Disiplin Ujian RUP dan Proses Penilaian dan
Pengujian Bersistematik (STEP) telah dibuat perbandingan berdasarkan beberapa
kriteria seperti aktiviti utama, peranan dan tanggungjawab, artifak dan paras
pengujian. Hasil daripada pembandingan tersebut, ciri-ciri khusus bagi sistem SBS
dapat ditentukan dan kemudian satu proses pengujian khusus untuk sistem ini dapat
dihasilkan.
vii
TABLE OF CONTENTS
CHAPTER
TITLE
PAGE
DECLARATION
ii
DEDICATION
iii
ACKNOWLEDGEMENT
iv
ABSTRACT
v
ABSTRAK
vi
TABLE OF CONTENTS
vii
LIST OF TABLES
xi
LIST OF FIGURES
xiii
LIST OF ABBREVIATIONS
xv
LIST OF APPENDICES
1
xvii
INTRODUCTION
1
1.1
Organization Background
1
1.1.1 HeiTech Padu Berhad Overview
1
1.1.2 Business and Services at HeiTech Padu Berhad
1
1.1.3 Research and Product Innovation Center
(R@PIC) Division
1.2
2
3
Project Background
4
1.2.1 Industrial Project Overview
4
1.2.2 Shared Banking Services (SBS) System Overview
5
SCOPES AND OBJECTIVES
7
2.1
Vision Statement
7
2.2
Project Objectives
7
2.3
Project Scopes
8
2.4
Project Plan (Gantt chart)
8
viii
2.5
3
Project Deliverables
LITERATURE STUDY
3.1
8
9
Software Testing Process
9
3.1.1 Definition and Principles of Software Testing
9
3.1.2 Relationship between Testing with Verification
and Validation
3.1.3 Software Testing Concepts
13
3.1.4 Software Testing Methods
22
3.1.5 Testing Techniques
23
3.1.6 Types of Testing
28
3.1.7 Level of Testing
30
3.1.8 The Challenges and Current Research
36
Software Testing Model
38
3.2.1 V- Model
38
3.2.2 W- Model
41
3.2.3 Butterfly Model
44
3.2.4 Summary
47
TESTING METHODOLOGIES
50
3.2
4
11
4.1
Introduction
50
4.2
HeiTech Software Testing Process
51
4.2.1 Testing Concepts
52
4.2.2 Main Activities
53
4.2.3 Testing Levels
58
4.2.4 Testing Types
60
4.2.5 Roles and Responsibilities
66
4.2.6 Test Documentations / Artifacts
67
4.2.7 Advantages and Disadvantages
68
RUP Test Discipline
69
4.3.1 Test Concepts
73
4.3.2 Main Activities
75
4.3.3 Roles and Responsibilities
83
4.3.4 Test Documentations / Artifacts
84
4.3
ix
4.4
4.5
5
91
Systematic Test and Evaluation Process (STEP)
93
4.4.1 Testing Concepts
94
4.4.2 Main Activities
95
4.4.3 STEP Architecture
97
4.4.4 Timing of STEP Activities
98
4.4.5 Elements of STEP
100
4.4.6 Test Documentations / Artifacts
102
4.4.7 Roles and Responsibilities
102
4.4.8 Advantages and Disadvantages
103
Summary
105
SHARED BANKING SERVICES (SBS) SYSTEM
107
5.1
Introduction
107
5.2
Core Banking Systems
107
5.3
Shared Banking Services (SBS) at R@PIC
110
5.3.1 Transaction System
112
5.3.2 Utilities
114
5.3.3 System Configuration
117
Testing Characteristics for SBS System
118
5.4.1 Functionality Testing
121
5.4.2 Performance Testing
122
5.4.3 Automation Test
124
5.4.4 Security Test
125
5.4.5 Advantages
126
SBS Testing Implementation at R@PIC
127
5.5.1 Plan Test
128
5.5.2 Design Test
129
5.5.3 Implement Test
129
5.5.4 Evaluate Test
130
5.4
5.5
6
4.3.5 Advantages and Disadvantages
CUSTOMIZED SOFTWARE TESTING PROCESS
6.1
131
Issues with Software Testing Implementation at
R@PIC
131
x
6.2
Developing A Customized Software Testing
Process (CSTP)
132
6.2.1 Main Phases for Testing Correspond to
Software Development Phases
132
6.2.2 Main Activities of Software Testing
Methodologies
6.2.3 Main SBS Testing Characteristics
133
134
6.2.4 Proposed Customized Software Testing
Process (CSTP) for SBS
7
CONCLUSION AND RECOMMENDATION
135
148
7.1
Recap
148
7.2
Project Outcome
149
7.3
Future Study
151
7.4
Summary
151
REFERENCES
Appendices A - C
154
159 - 163
xi
LIST OF TABLES
TABLES NO
TITLE
2.1
List of Project Deliverables and the Targeted Recipients
3.1
Definition of Software Testing
10
3.2
Differences between Verification and Validation
12
3.3
Objectives of Software Testing
16
3.4
Black Box and White Box Testing
25
3.5
Types of Code Coverage
26
3.6
Advantages and Disadvantages of Black-box Testing
27
3.7
Software Testing Techniques
29
3.8
Advantages and Disadvantages of V-Model
40
3.9
W-Model Test Activities
43
3.10
Butterfly Test Model Description
45
3.11
Summary of Software Testing Model
48
4.1
Test Tactics for Different Software Development
Methodology
4.2
PAGE
8
51
HeiTech Application Development Life Cycles
Objectives
52
4.3
Main Activities of HeiTech Test Process
54
4.4
Detail Descriptions of Testing Levels
58
4.5
Types of Testing and Its Descriptions
61
4.6
Testing Types Consideration Based on Levels of
Testing
65
4.7
Roles and Responsibilities
66
4.8
HeiTech Test Documents
67
4.9
Advantages and Disadvantages of HeiTech Test Process
68
4.10
Objectives of RUP Iteration Phases
70
xii
4.11
Nine Disciplines of Rational Unified Process
73
4.12
Roles and Test Artifacts in RUP Test Discipline
85
4.13
Purpose of Test Artifacts
86
4.14
Advantages and Disadvantages of RUP Test Discipline
92
4.15
Major Testing Activities in STEP
97
4.16
Template for Test Documents from IEEE Std. 829-1998
102
4.17
Roles and Responsibilities in STEP
103
4.18
Advantages and Disadvantages of STEP
104
4.19
Test Methodologies Comparison based on Software
Development Phases
105
5.1
Transaction System Categories
112
5.2
Utilities Functions
114
5.3
SBS System Configuration Functions
118
5.4
Challenges and Solutions for Functional Test
121
5.5
Challenges and Solutions for Automation Test
124
6.1
Details of Requirements Reviews Process
139
xiii
LIST OF FIGURES
FIGURE NO
1.1
TITLE
PAGE
Research and Product Innovation Center (R@PIC)
Structure
3
1.2
Shared Banking Services (SBS) Components
5
3.1
Static Verification and Dynamic Validation
15
3.2
Five Schools of Software Testing
19
3.3
Differences of White-box and Black-box Testing
24
3.4
Level of Testing
31
3.5
Unit Testing
32
3.6
Top-Down Integration
33
3.7
Bottom-Up Integration
34
3.8
V-Model Test
39
3.9
W-Model Test
42
3.10
Morton's Butterfly Model
44
3.11
Butterfly Model Test
45
4.1
HeiTech Application Development Life Cycles
52
4.2
Testing Process Flow Diagram
53
4.3
HeiTech Test Process
53
4.4
Illustration of the Rational Unified Process (RUP)
70
4.5
RUP Test Discipline Workflow
75
4.6
Define Evaluation Mission Workflow
76
4.7
Verify Test Approach Workflow
77
4.8
Validate Build Stability Workflow
78
4.9
Test and Evaluate Workflow
79
4.10
Achieve Acceptable Mission Workflow
81
4.11
Improve Test Assets Workflow
82
xiv
4.12
Roles and Test Activities Workflows
84
4.13
Roles and Test Artifacts
84
4.14
Different Views of Testing
95
4.15
Major Phases in STEP
96
4.16
Project Testing Architecture in STEP
98
4.17
Activity Timing at Various Levels of Test
98
4.18
Details Activity Timing at Various Levels of Test
100
4.19
Elements of STEP
100
4.20
Parallel, Mutually Supportive Development
101
5.1
SBS Testing Characteristics
120
5.2
SBS Testing Implementation at R@PIC
127
6.1
Main Phases for Testing Correspond to Software
Development Phases
133
6.2
Main Activities of Software Testing Methodologies
134
6.3
Main SBS Testing Characteristics
135
6.4
Software Testing Methodologies Comparison
136
6.5
The Customized Software Testing Process (CSTP)
137
6.6
Requirements Reviews Process
139
xv
LIST OF ABBREVIATIONS
ADVISE
-
Application Development Information System
ANSI
-
American National Standards Institute
BRS
-
Business Requirement Specification
CA
-
Current Account
CASE
-
Centre for Advanced Software Engineering
CCA
-
Corporate Current Account
CSTP
-
Customized Software Testing Process
DSS
-
Device Service Server
e-GSS
-
Electronic Government Solution Suite
FTT
-
Foreign Telegraphic Transfer
FWTT
-
Foreign Worker Telegraphic Transfer
HeiTech
-
HeiTech Padu Berhad
HESS
-
HeiTech Enterprise Solution Suite
HTP
-
HeiTech Test Process
ICT
-
Information and Communication Technology
IEEE
-
Institute of Electrical and Electronic Engineers
PMB
-
Pos Malaysia Berhad
PSV
-
Personal Saving Account
QA
-
Quality Assurance
R@PIC
-
Research and Product Innovation Center
RFID
-
Radio Frequency Identification
RMC
-
IBM Rational Method Composer
RTSE
-
Real Time Software Engineering
RUP
-
Rational Unified Process
SA
-
Saving Account
SBS
-
Shared Banking Services
SDD
-
System Design Description
xvi
SDLC
-
Software Development Life Cycle
SEPG
-
Engineering Process Group
SOA
-
Service Oriented Architecture
SOAP
-
Simple Object Access Protocol
SOW
-
Scope of Work
SRS
-
System Requirement Specification
STEP
-
Systematic Test and Evaluation Process
UAT
-
User Acceptance Testing
UFS
-
User Functional Specifications
UML
-
Unified Modeling Language
xvii
LIST OF APPENDICES
APPENDIX
TITLE
PAGE
A
Project Plan – Gantt Chart
159
B
Progress Report
162
C
Proposed Software Testing Process For SBS
163
CHAPTER 1
INTRODUCTION
1.1
Organization Background
1.1.1
HeiTech Padu Berhad Overview
HeiTech Padu Berhad [1] is a public listed company, which also as a
Malaysia’s leading ICT Solutions and Services provider. HeiTech draws its strength
from many years of experiences by working with the customers from both public and
private sectors to transformed theirs business from manual processes to automated
systems and provide effective information system solutions. This enables relevant
business decisions to be made accurately and timely.
1.1.2
Business and Services at HeiTech Padu Berhad
i.
HeiTech Padu Berhad Core Business
HeiTech has been transforming businesses and organizations by
providing comprehensive integrated Information and Communications
Technology (ICT) services in Malaysia, which offer customers value-formoney ICT products and services in several areas such as Managed Data
Center Services, Managed Network and Communications Services,
Systems Integration Services and Solution and Consultancy Offerings.
2
ii.
HeiTech Padu Berhad - Electronic Government Solution Suite (e- GSS)
HeiTech’s Electronic Government Solution Suite (e-GSS) is a solution
that links people, process and technology in a seamlessly integrated
manner to deliver value and convenience to the citizens at large.
e-GSS is readily integrated the following solutions in it offering, which
are:-
iii.
Biometric fingerprint solution
Photo captures solution
Card personalization solution
Smart card personalization solution
Barcode solution
RFID solution
Passport printing solution (centralized and decentralized)
Card Printing solution (centralized and decentralized)
Document scanning solution
Digital signature
HeiTech Enterprise Solution Suite (HESS)
HeiTech Enterprise Solution Suite (HESS) is a set of products that ease
the implementation of an enterprise system, which enable applications
residing on legacy systems to be offered via multi-delivery channels such
as web browser, self-service kiosk and mobile devices. This suite is able
to support multi-protocols and is available both for open source and
window-based platforms. HESS consists of 4 products which are:
E-Connect
RFID Middleware
Device Service Server
Hybrid Client
3
iv.
HeiTech Padu Berhad Emerging Business
HeiTech has also ventured into non-traditional areas of expertise such as:
1.1.3
Content Development & Distribution
Data Management & Processing
Electronic Commerce
Research and Product Innovation Center (R@PIC) Division
Research and Product Innovation Center (R@PIC) Division or previously
known as Applied Research and Development (AR&D) Division was formed in
October 2001.
Figure 1.1 below shows the organizational structure of R@PIC
division.
Figure 1.1 : Research and Product Innovation Center (R@PIC) Structure
4
Objectives and scope of this division are to research, develop and enhance
HeiTech proprietary software products, to develop application components that are
application independent, to conduct research on new and emerging technologies that
could be beneficial to software development in HeiTech and also to promote
knowledge sharing culture in HeiTech as a whole.
1.2
Project Background
1.2.1
Industrial Project Overview
Software testing process is important in software development activities.
Therefore, this industrial project is focused on software testing process that currently
practices in HeiTech. This research also covers on several testing process that being
establish and currently practice in many organizations, which are RUP Test
Discipline [2,3] and Systematic Test and Evaluation Process (STEP) [4,5]. Hence,
these testing methodologies are being chosen in order to refer for several criteria that
can implemented later for the proposed software testing process on banking
application, such as Shared Banking Services (SBS) system.
Shared Banking Services (SBS) system [6,7] is currently in development
stage and the contribution requires for this industrial project is in testing phase of this
system. This SBS system is being developed by Product Development Team in
Research and Product Innovation Center (R@PIC) Division at HeiTech. Hence, this
project also defined SBS modules and its characteristics that require specific
software testing process.
Consequently, from this research project, a customized software testing
process will be recommended for R@PIC Division based on a comparison study
from that three testing methodologies.
The proposed framework of customized
software testing process is based on SBS system’s characteristics. Therefore, this
5
software testing process can be practices in future as it suits for testing client-server
application or banking application system.
1.2.2
Shared Banking Services (SBS) System Overview
Shared Banking Services (SBS) [6] is a counter-based transaction system
developed on top of a software framework (Hybrid Client) for developing a frontend, transaction based system. SBS system offers selected banking services that can
be carried out at Pos Malaysia (PMB) branches. SBS consists of two main systems
namely transaction systems and support or utility functions. Figure 1.2 shows the
overall components view of Shared Banking Services (SBS) application system.
Figure 1.2 : Shared Banking Services (SBS) Components
6
Technically, Shared Banking Services (SBS) make use of components
provided by Hybrid Client and Device Service Server (DSS) in its execution. Hybrid
Client components provide common services of a transaction system and Device
Service Server (DSS) offers services for device sharing and device integration.
This SBS system will be installed at PMB branches to enable offerings of
Bank A services at the selected locations. SBS system adopts the smart client
architecture which makes use of local PC processing power to process Bank A’s
transactions. Smart Client architecture combines the benefits of both Thin Client and
Rich Client and it offers rich user interface, ease of integrating to local devices and
simple deployment model using ClickOnce technology.
ClickOnce technology will enable the deployment of SBS modules and
updates to be centralized. It has a web server that will act as the deployment server
to distribute SBS to the selected PMB branches. The communication between PMB
branches to the servers at PMB Headquarters (PMB HQ) will be done via web
services. In addition, SBS will make use of Simple Object Access Protocol (SOAP)
to communicate with the backend (host) system.
CHAPTER 2
SCOPES AND OBJECTIVES
2.1
Vision Statement
This project is to propose a Customized Software Testing Process (CSTP)
that suitable for Shared Banking Services (SBS) system based on a comparison
between three software testing methodologies, which are HeiTech Test Process, RUP
Test Discipline and Systematic Test and Evaluation Process (STEP).
2.2
Project Objectives
The objectives of this project are:
i.
To study and understand HeiTech’s current software testing process.
ii.
To study and understand RUP Test Discipline and Systematic Test
and Evaluation Process (STEP).
iii.
To study and understand the modules and characteristics of Shared
Banking Services (SBS) system.
iv.
To conduct comparison study between (i) and (ii) and to map the
result back to SBS system
v.
To develop a customized software testing process for SBS system
based on the result produce from the comparison study in (iv)
8
2.3
Project Scopes
i.
The proposed software testing process was develop and to be
implemented on the SBS system developed by R@PIC, HeiTech
ii.
The proposed software testing process only covers the plan and
activities to be conducted.
It will not cover the content of any
documents to be produced.
iii.
This project is only an initial study. The proposed software testing
process was not implemented on any real work.
2.4
Project Plan (Gantt chart)
The project plan and timetable can be referred in the Attachment A.
2.5
Project Deliverables
Table 2.1 below shows the list of deliverables produced throughout the project
period and the targeted recipient of the deliverables.
Table 2.1 : List of Project Deliverables and the Targeted Recipients
No.
1.
2.
3.
Items
Descriptions
Recipient
Attachment
Final Report
Industrial Final
Academic Mentor
-
Project Report
Industrial Mentor
Progress
Industrial Progress
Academic Mentor
Reports
Report
Industrial Mentor
Software
The Proposed
Industrial Mentor
Testing Process
Software Process for
Academic Mentor
(STP) Diagram
SBS System
B
C
CHAPTER 3
LITERATURE STUDY
3.1
Software Testing Process
In this chapter, the discussion will highlight several other literatures, which
are related to the objectives of this report. Every literature will focus on the detail of
the definition of pertinent terminology used in this research project and also will
critically discuss and evaluating past and current research of all known similar and
relevant on-going research on this specific topic.
This literature study will emphasis on the software testing process as software
testing is one of the important phases in software or product development life cycle.
In order to conduct this research project, some reviews of relevant information from
the past and current research that related to software testing process and activities
had been made.
3.1.1
Definition and Principles of Software Testing
Software testing in general is an active process of seeking errors. From the
history of software testing, the first definition is “Testing is the process of executing
a program with the intent of finding errors” [8]. Therefore, software can be refers as
“Computer programs, procedures, and possibly associated documentation and data
10
pertaining to the operation of a computer system” [9]. While, testing can be refers as
“The process of analyzing a software item to detect the differences between existing
and required conditions (that is, bugs) and to evaluate the features of the software
item.” [10].
In addition, testing can be described as to find out how well something can
works. In terms of human beings, testing can tells what level of knowledge or skill
has been acquired. Where else, in computer hardware and software development,
testing is used as a key checkpoint in the overall process to determine whether the
objectives are being met.
Hence, software testing is “any activity aimed at
evaluating an attribute or capability of a program or system and determining that it
meets its required results” [4]. Another expanded definition of software testing can
be referred as “Testing is a concurrent lifecycle process of engineering, using and
maintaining testware in order to measure and improve the quality of the software
being tested” [5].
Therefore, software testing is used to help and identify the correctness,
completeness, security, reliability and quality of developed software, where software
testing can be defined as “questioning a product in order to evaluate it”. In addition,
testing also is a technical investigation of the product under test conducted to provide
stakeholders with quality-related information [11].
From years to years, the
definition of software testing evolved simultaneously with the notion of the
practitioner who involved in software engineering fields.
Table 3.1 shows the
summary of several established definition of software testing.
Table 3.1 : Definition of Software Testing
Year
Author
Definition
1979
Glenford J.
Testing is the process of executing a program or
Myers
system with the intent of finding errors.
11
Year
Author
1983
Bill Hetzel
Definition
Testing is the process of establishing confidence
that a program or system does what it is supposed
to.
1988
Bill Hetzel
Testing is any activity aimed at evaluating an
attribute or capability of a program or system and
determining that it meets its required results.
2002
3.1.2
Rick D. Craig
Testing is a concurrent lifecycle process of
and
engineering, using, and maintaining testware in
Stefan P.
order to measure and improve the quality of the
Jaskiel
software being tested.
Relationship between Testing with Verification and Validation
Software testing is the process of validation and verification of the software
product with intention that the product can meets the business and technical
requirements that guided its design and development, and it will works as expected
[12].
From IEEE Standard, the definition of verification is “The process of
evaluating software at the end of the software development process to ensure
compliance with software requirements” and validation is “The process of
determining whether or not the products of a given phase of the software
development cycle fulfill the requirements established during the previous phase”
[13].
In addition, Schmidt, Michael E. C. [14] further clarifies of these terms as the
verification process provides supporting evidence that the software and its associated
products:
i.
Comply with requirements (for example, for correctness, completeness,
consistency, accuracy) for all life cycle activities during each life cycle
process (acquisition, supply, development, operation, and maintenance);
12
ii.
Satisfy standards, practices, and conventions during life cycle processes;
and
iii.
Establish a basis for assessing the completion of each life cycle activity
and for initiating other life cycle activities.
Meanwhile, the validation process provides supporting evidence that the
software satisfies system requirements allocated to software, and solves the right
problem. Many of traditional verification and validation involves relatively simple
tests that focus on some part of a specification such as requirements specification,
design specification and others. Thus, testing coverage is measured by checking that
all parts of all of the controlling specifications have tests associated with them, and
not necessarily how powerful or insight provoking those tests might be [15].
Additionally, the verification and validation in software testing are often used
interchangeable, but actually these terms have differences definition. Thus, these
differences are important to software testing activities [16]. Table 3.2 below show
the differences between verification and validation in software testing practice.
Table 3.2 : Differences between Verification and Validation
Differences
Target
Verification
Validation
Are we building the product Are we building the right
right?
product?
When to
In-process activities performed Performed after the software is
perform?
concurrently
development.
with
software developed to determine if the
software correctly implements
the requirements.
13
Differences
IEEE
Verification
The
process
of
Validation
evaluating The process of determining
Standard
software at the end of the whether or not the products of a
Definition
software development process to given phase of the software
ensure compliance with software development cycle fulfill the
requirements.
requirements established during
the previous phase.
Strategies
•
Requirements Review
•
Unit Testing
•
Design Review
•
Integration Testing
•
Code Walkthrough
•
System Testing
•
Code Inspections
•
Performance Testing
•
Alpha Testing
•
User Acceptance Testing
(UAT)
3.1.3
•
Installation Testing
•
Beta Testing
Software Testing Concepts
3.1.3.1 Concepts
Generally, software testing concept is more than just debugging the program.
The purpose of testing can be quality assurance, verification and validation, or
reliability estimation on specific product or system. Testing can be used as a generic
metric as well where the correctness testing and reliability testing are two major
areas of testing activities. Therefore, software testing is a trade-off between budget,
time and quality. The importance of testing can be understood by the fact that
“around 35% of the elapsed time and over 50% of the total cost are expending in
testing programs” [17-18].
14
Consequently, software testing has three main purposes which are
verification, validation, and defect finding [12].
i.
The verification process confirms that the software meets its technical
specifications. A “specification” is a description of a function in terms of
a measurable output value given a specific input value under specific
preconditions. For example, a simple specification may be along the line
of “a SQL query retrieving data for a single account against the multimonth account-summary table must return these eight fields <list>
ordered by month within 3 seconds of submission.”
ii.
The validation process confirms that the software meets the business
requirements. A simple example of a business requirement is “After
choosing a branch office name, information about the branch’s customer
account managers will appear in a new window. The window will present
manager identification and summary information about each manager’s
customer base: <list of data elements>.” Other requirements provide
details on how the data will be summarized, formatted and displayed.
iii.
A defect is a variance between the expected and actual result.
The
defect’s ultimate source may be traced to a fault introduced in the
specification, design, or development (coding) phases.
Moreover, a
defect also can be defined as “any unintended characteristic that impairs
the utility or worth of an item, or any kind of shortcoming, imperfection,
or deficiency” [19].
In order to satisfy the objectives of the verification and validation process,
both static and dynamic techniques of system checking and analysis should be used.
Figure 3.1 shows the differences of static verification and dynamic validation
techniques.
15
Figure 3.1 : Static Verification and Dynamic Validation
A form of verification that does not require execution of the software, such as
model checking, is called static analysis. These static techniques are concerned with
analysis and checking of system representations such as requirements document,
design diagrams and others. Static techniques are also known as non-execution
based process which includes activities such as walkthroughs, inspections, formal
verification.
Conversely, as testing requires the execution of the software, it is often called
dynamic analysis. These dynamic techniques are applied when a prototype or an
executable program is available which also known as testing activities.
3.1.3.2 Objectives of Software Testing
After reviewing some definitions and concepts of software testing that being
defined from others perspective, the main purpose of practicing software testing in
software development is also needed to be put inside this literature review.
Different objectives of software testing require different testing strategies and
these will yield different test planning, different test scripts and different test results
16
[20]. In practical industry, testing activities is carried out for many different reasons
[21].
Table 3.3 below shows some objectives of software testing in real
environment.
Table 3.3: Objectives of Software Testing
Objectives
Descriptions
Find defects
This is the classic objective of testing. A test is run in
order to trigger failures that expose defects. Generally,
tester looks for defects in all interesting parts of the
product.
Maximize bug count
The distinction between this objective and “find
defects” is that total number of bugs is more important
than test coverage. Tester might focus narrowly, on
only a few high risk features, if this is the way to find
the most bugs in the time available.
Block premature
Tester stops premature shipment by finding critical bugs
product releases
or serious errors that no one would ship the product until
they are fixed. For every release decision meeting, the
tester’s goal is to have new show stopper bugs.
Help managers make
Managers are typically concerned with risk in the field.
ship / no-ship
They want to know about coverage (maybe not the
decisions
simplistic code coverage statistics, but some indicators
of how much of the product has been addressed and how
much is left), and how important the known problems
are. Problems that appear significant on paper but will
not lead to customer dissatisfaction are probably not
relevant to the ship decision.
Minimize technical
Working in conjunction with a technical support or help
support costs
desk group, the test team identifies the issues that lead
to calls for support. These are often peripherally related
17
Objectives
Descriptions
to the product under test.
For example, getting the
product to work with a specific printer or to import data
successfully from a third party database might prevent
more calls than a low-frequency and data-corrupting
crash after deployment.
Assess conformance to Any claim made in the specification is checked.
specification
Program
characteristics
not
addressed
in
the
specification are not (as part of this objective) checked.
Conform to
If a regulation specifies a certain type of coverage (such
regulations
as, at least one test for every claim made about the
product), the test group creates the appropriate tests. If
the regulation specifies a style for the specifications or
other documentation, the test group probably checks the
style. In general, the test group is focusing on anything
covered by regulation and (in the context of this
objective) nothing that is not covered by regulation.
Minimize safety-
Any error that could lead to an accident or injury is of
related lawsuit risk
primary interest. Errors that lead to loss of time or data
or corrupt data, but that do not carry a risk of injury or
damage to physical things are out of scope.
Find safe scenarios for Sometimes, all that tester is looking for is one way to do
use of the product
a task that will consistently work, with one set of
(find ways to get it to
instructions that someone else can follow that will
work, in spite of the
reliably deliver the benefit they are supposed to lead to.
bugs)
In this case, the tester is not looking for bugs. He is
trying out, empirically refining and documenting, a way
to do a task.
Assess quality
This is a tricky objective because quality is multidimensional.
The nature of quality depends on the
18
Objectives
Descriptions
nature of the product. For example, a computer game
that is rock solid but not entertaining is a lousy game.
To assess this quality, measure and report back on the
level of specify quality is required.
Tester probably
needs a clear definition of the most important quality
criteria for this product, and then also need a theory that
relates test results to the definition.
Verify correctness of
It is impossible to do this by testing. Testers can prove
the product
that the product is not correct or they can demonstrate
that no errors founds in a given period of time using a
given testing strategy.
However, they cannot test
exhaustively, and the product might fail under
conditions that they did not test. The best way to do is
by assessment test-based estimation of the probability of
errors.
3.1.3.3 Software Testing Schools of Thought
Recently, there are five schools of thought for software testing that being
established by mostly experienced people in software testing fields. Software-testing
experts often disagree with one another, but up until 2003 it was difficult to have a
conversation with a fellow tester for lack of a common frame of reference [22].
Therefore, for this reason, Pettichord B. [23] and some colleagues has
formulated a concept of schools, which known as the Five Schools of Software
Testing as shown in Figure 3.2.
19
Figure 3.2: Five Schools of Software Testing
The Schools of Software Testing began as four and has since expanded to
five schools, which are Analytic, Standard, Quality, Context-Driven, and Agile. The
schools are meant to categorize beliefs and how they influence for tester tactical
approach to testing, but they are not an absolute [22].
In addition, these schools are defined by the intellectual affinity, social
interaction and common goals that the people inside of the schools thought are
pursue to achieve.
Besides that, these schools also are made up from several
hierarchies of values, exemplar techniques, standards of criticism, based on the
institutions and some common related vocabulary. However, a common doctrine or
specific techniques will not being as consideration inside these five schools of
software testing.
i.
Analytic School
The Analytic school focuses on the use of analytics, specifications, and
measurable methods. Therefore, the proponents of the Analytic school seek
into objective measurements. They want to know what percent done they are,
what are the degrees of confidence, and what is the code coverage.
20
This code coverage is a exemplary of the Analytic school, where the code
coverage matrix that shows how many lines of code have been executed or
exercised by performing the tests is the basis of testing.
In addition, this school is less concerned with creative or exploratory
thinking, and more focused on measurable methods. This approach to software
testing may be a good fit for scientific or regulated environments of testing,
where an expectation that everything will be covered by dissecting and
analyzing things, and following a logical flow.
ii.
Standard School
The Standard school was previously known as Factory. So, the tasks
are routine along a conveyor belt, like a real factory, where this school
approaches testing as a routine or very repetitive task. Since this is the case,
these individuals like to find the lowest possible labor resource to conduct
testing.
The exemplar of this school is Requirements Traceability Matrix.
Therefore, the basic principle of the Requirements Traceability Matrix is that
every requirement and its test or test cases are listed, and after every test is
conducted and been through task, then the software is done and ready to ship.
However, this notion seems have a drawbacks when sometimes testing
does not always work out as planned, because there are cases where the
requirements are inaccurate or incomplete, or the tests identified for a
particular requirement cannot shown all of the possible ways that requirement
would pass or fail. At the end, the software that passes all the tests without
really hit the quality standard that being listed in the testing plan.
iii.
Quality School
21
The Quality school is focused more on standards and process than
testing. The people in this school may feel that they are keepers of the product.
The role of the gatekeeper is used as a key exemplar of the Quality school.
Therefore, a test manager or the QA lead serves as either the sole or primary
decision maker in whether or not a product is ready for release.
iv.
Context-Driven School
The Context-Driven school is based on seven core principles, two of
which particularly resonate. The principles number three and four address
people to work together as the most important part of the project, and the
nature of projects to unfold over time in ways that are often unpredictable.
Therefore, the exemplar that many associate with the Context-Driven School is
exploratory testing where exploratory testing is the concurrent test design, test
execution, and learning.
v.
Agile School
The principles for the Agile school are very clear, where the concepts
of always having a deliverable of a workable piece of software, where they
continuous the delivery, while having working on the software. Therefore, the
exemplar for Agile school is automated unit tests, as used in test-driven
development or test-first development.
For example, in extreme programming, which is the paradigm for
Agile, the developers do test-driven, test-first development, and they test their
own code. Hence, they build a large suite of automated unit tests that they run
before every build, with the idea that every build is a potential release
candidate.
22
This condition does not mean the software is done, but that what it is
should work. As a result, they build that out to where they believe it is ready,
and then they ship it out to the client. Finally, the client then does what the rest
of the schools label as an extended user acceptance testing.
3.1.4 Software Testing Methods
3.1.4.1 Manual Software Testing
In performing software testing, two basic methods that can be referred are
manual testing and automated testing.
Manual software testing is a process of
manually testing the software, which is having the possible forms for example, user
interfaces navigation, information submission, or attempt to hack the software or
database, carried out by an individual or individuals [24].
Consequently, some test conditions where manual software testing is more
appropriate to be performed are:
•
User interface or usability testing
•
Exploratory or ad hoc testing (where testers do not follow a ‘script’, but
rather testers ‘explore’ the application and use their instincts to find bugs)
•
Testing areas of the application which experience a lot of change.
•
User acceptance testing
However, the time commitment involved with manual software testing is one
of its most significant drawbacks. Yet, manual software testing is a labor-intensive
and slows [25]. The time needed to fully test the system will typically range from
weeks to months and this variability of results depending on who is performing the
tests, which also can increase the delay. For these reasons, many organizations will
look into automation testing as a means of accelerating the software testing process
while minimizing the variability of results.
23
3.1.4.2 Automated Software Testing
Automated software testing is a process of creating test scripts, which can be
run then automatically, repetitively, and through a number of iterations [25]. This
automated software testing can helps to minimize the variability of results, speed up
the testing process, increase test coverage and also provide greater confidence in the
quality of the software being tested.
Conversely, there are some test conditions that automated software testing is
not appropriate, which includes:
•
End user usability testing is not typically a good candidate for automated
testing.
•
Tests which will not be run more than a couple of times are typically not a
good candidate for automated tasting, since the payoff of in test
automation comes after many test executions.
•
Tests for areas of the application which experience a lot of change are
also not a good candidate for automation since this can lead to substantial
maintenance of test automation scripts. Such areas of the application may
be more effectively tested manually.
Furthermore, good test automation architecture, such as a keyword-driven
testing framework, will reduce the overall cost of ownership of the organization for
test automation by minimizing maintenance expense and increasing the number of
automated tests [24].
3.1.5 Testing Techniques
In general, software testing can be based on a strategy like White-box Testing
or Black-box Testing. These strategies also sometimes are being defined as testing
techniques.
24
Black-box testing is carried out against the functional specifications in order
to check for any abnormal system behavior. In contrast, white-box testing deals with
the program’s internal logic and code structure [25]. Figure 3.3 below shows the
differences between Black-box and White-box testing.
Figure 3.3: Differences of White-box and Black-box Testing
By comparison, white-box testing does not focus on the problem area, and
therefore may not discover that some sub-problem is left unsolved by the program,
whereas black-box testing should cover. Conversely, black-box testing does not
focus on the program text, and therefore may not discover that some parts of the
program are completely useless or have an illogical structure, whereas white-box
testing can cover.
Furthermore, these two testing techniques, white-box testing and black-box
testing are important for functionality testing. Therefore, white-box testing and
black-box testing are complementary approaches to test case generation [26]. Table
3.4 shows the types of testing and test examples for black box and white box testing
techniques.
25
Table 3.4: Black Box and White Box Testing
Techniques
Types of Testing
Example
Artifacts
Requirements
Black box
•
Functional Testing
•
Ad-hoc Testing
testing
•
Stress Testing
•
Boundary Value
•
Load Testing
•
Exploratory Testing
•
Category Partition
•
Usability Testing
•
Classification
•
Smoke Testing
•
Recovery Testing
•
Volume Testing
•
User Acceptance
Analysis
Trees
•
Graphs
•
Equivalence
Partitioning
Testing
•
Cause-effect
Alpha and Beta
•
Partition Testing
Testing
•
Predicate Testing
•
Random Testing
•
Adequacy
White box
•
Unit Testing
testing
•
Static and Dynamic
Code
Assessment
Analysis
•
Coverage Testing
•
Mutation Testing
•
Data-flow Testing
•
Statement Coverage
•
Domain Testing
•
Branch Coverage
•
Mutation Testing
•
Security Testing
•
Path Testing
•
Structural Testing
3.1.5.1 White-box Testing
In more detail, white-box testing is a strategy in which testing is based on the
internal paths, structure, and implementation of the software under test. Therefore,
white box testing generally requires detailed programming skills [27].
26
Moreover, white-box testing also involves looking at the structure of the code
[28]. Tester needs to know the internal structure of a product in order to conduct
testing to ensure that the internal operations performed according to the specification
and all internal components have been adequately exercised.
Hence, this technique involves the coverage of the specification in the code.
Table 3.5 below shows six types of code coverage in white-box testing techniques.
Table 3.5: Types of Code Coverage
Coverage Types
Descriptions
Segment
Each segment of code between control structures is executed
coverage
at least once.
Branch Coverage
or Node Testing
Each branch in the code is taken in each possible direction at
least once.
Compound
When there are multiple conditions, tester must test not only
Condition
each direction but also each possible combinations of
Coverage
conditions, which is usually done by using a ‘Truth Table’
Basis Path
Each independent path through the code is taken in a pre-
Testing
determined order.
Data Flow
To track the specific variables through each possible
Testing (DFT)
calculation, thus defining the set of intermediate paths
through the code.
This approach tends to reflect
dependencies but it is mainly through sequences of data
manipulation. It is also tends to uncover bugs like variables
used but not initialize, or declared but not used.
Path Testing
Path testing is where all possible paths through the code are
defined and covered. This testing is extremely laborious and
time consuming.
Loop Testing
These strategies relate to testing single loops, concatenated
loops, and nested loops.
Loops are fairly simple to test
unless the dependencies exist among the loop or between a
loop and the code it contains.
27
Furthermore, white-box testing is more effective rather than black-box
testing, in terms of covering numerous sorts of defects in the program. White-box
testing is also sometimes called as Structural or Glass box testing. Therefore, here
some of related defects that can be discovered:
•
Logic errors and incorrect assumptions, which are inversely
proportional to the probability that a program path will be executed.
This error tend to creep into the design and implement functions,
where the conditions or controls are out of the program
•
The logical flow of the program is sometimes counterintuitive,
meaning that unconscious assumptions about flow of control and data
may lead to design errors that are uncovered, except only when path
testing starts.
•
Typographical errors, which are random, some of which will be
uncovered by syntax checking mechanisms but others will go
undetected until the specific testing begins.
3.1.5.2 Black-box Testing
Black-box testing technique is a strategy in which testing is based solely on
the requirements and specifications. This technique requires no knowledge of the
internal paths, structure, or implementation of the software under test [27].
In
addition, black-box testing also is a test design method [28]. Therefore, this testing
treats the system as a "black-box", so it does not explicitly use any knowledge of the
internal structure of that box.
Table 3.6 below shows some advantages and
disadvantages of Black-box Testing.
Table 3.6: Advantages and Disadvantages of Black-box Testing
Advantages
Disadvantages
•
Tester can be non-technical.
•
This testing is most likely to find
that
those bugs as the user would find.
programmer.
•
Chances of having repetition of tests
are
already
done
by
28
Advantages
•
Testing
helps
vagueness
to
and
Disadvantages
identify
the •
contradiction
in
functional specifications.
•
The test inputs needs to be from
large sample space.
•
It is difficult to identify all possible
Test cases can be designed as soon
inputs in limited testing time. So
as the functional specifications are
writing test cases is slow and
complete.
difficult.
•
Chances of having unidentified
paths during this testing.
3.1.6 Types of Testing
Software testing consists of several subcategories, each of which is done for
different purposes, and often using different techniques. In some cases, there may
even have to be other types of testing such as regulatory-compliance testing,
depending on the type of software and intended industry [24].
Therefore, this software testing can involve or performed for some or all of
the following factors, which are:
•
Business requirements
•
Functional design requirements
•
Technical design requirements
•
Regulatory requirements and programmer code
•
Systems administration standards and restrictions
•
Corporate standards
•
Professional or trade association best practices
•
Hardware configuration
•
Cultural issues and language differences
29
In addition, software testing has a variety of techniques and methods as listed
in Table 3.7.
Table 3.7 : Software Testing Techniques
No.
1.
Techniques
Descriptions
Compatibility
Concentrates
on
testing
whether
the
given
Testing
application goes well with third party tools,
software or hardware platform.
2.
Recovery testing
Focuses on the software to fall in a variety of ways
and verifies that recovery is properly performed.
3.
Usability testing
Attempts to find any human-factor problems or
testing the software to prove or ensure that it is
user-friendly,
as
distinct
from
testing
the
functionality of the software.
4.
Security testing
Attempts to verify that protection mechanisms built
into a system will, in fact, protect it from improper
penetration. For example, password cracking,
unauthorized entry into the software, network
security are all taken into consideration.
5.
Stress testing
Executes a system in a manner that demands
resources in abnormal quantity, frequency, or
volume. It is also conducted for the number of
concurrent users beyond the specified limit. The
objective is to identify the maximum number of
users the system can handle before breaking down
or degrading drastically.
6.
Performance testing
To measure the Response Time, Throughput, and
Utilization of the Web site while simulating
attempts by virtual users to simultaneously access
the site. One of the main objectives of performance
testing is to maintain a Web site with low response
time, high throughput, and low utilization.
7.
Load testing
Load testing is defined as the testing to determine
30
No.
Techniques
Descriptions
whether the system is capable of handling
anticipated number of users or not.
8.
Regression testing
To test or check the effect of changes made in the
code, which is an important software maintenance
activity that attempts to ensure that the addition of
new functionality or the removal of program faults
does not negatively impact the correctness of
product.
3.1.7 Level of Testing
Level of testing can be categorized based on software development phases.
The strategic model that can describe the details of testing level is a V-Model.
Therefore, testing level can be defined start from component or unit testing. This
level of testing is the first test approach or known as test driven development, which
can include functionality, non-functionality and structural testing.
Next level of testing is integration testing, which might be a component
integration testing (between components) or system integration testing (between
systems). Furthermore, the next level of testing is system testing. This testing will
include the functional and non-requirements test activities. Finally, basic approach
of testing level will require high-order tests, which also known as user acceptance
testing.
Therefore, this testing entail the involvement of users or customers for
functional and also non-requirements tests. Additionally, some of testing level also
includes for the test system readiness activities which is focus on system installation
and deployment in the real environment. Figure 3.4 shows the level of software
testing.
31
Figure 3.4 : Level of Testing
3.1.7.1 Unit Testing
Unit testing is a series of stand-alone tests that are conducted for finding
bugs. Each test examines an individual component that is new or has been modified.
In addition, a unit test is also called a module test because it tests the individual units
of code that comprise the application. Therefore, each test validates a single module
based on the technical design documents that was built to perform a certain task with
the expectation that it will behave in a specific way or produce specific results [12].
Furthermore, unit tests primarily focus on functionality and reliability, and
the entry and exit criteria can be the same for each module or specific to a particular
module. Besides that, unit testing is done in a test environment prior to system
integration. Thus, if a defect is discovered during a unit test, the severity of the
defect will dictate whether or not it will be fixed before the module is approved.
Figure 3.5 shows the structure and criteria for Unit Testing.
32
Figure 3.5 : Unit Testing
Generally, a software application is made up of a number of Units, where
output of one Unit goes as an Input of another Unit. Therefore, a Driver is a piece of
software that drives or invokes the Unit that currently being tested. This driver
creates necessary Inputs required for the Unit and then invokes the Unit. Thus, this
Unit may reference another Unit in its logic.
A Stub takes place of such subordinate unit during the Unit Testing. Hence,
this Stub is a piece of software that works similar to a unit which is referenced by the
Unit being tested, but it is much simpler that the actual unit. Besides that, a Stub also
works as a Stand-in for the subordinate unit and provides the minimum required
behavior for that unit.
3.1.7.2 Integration Testing
Integration testing is a systematic technique for constructing the program
structure while at the same time conducting tests to uncover associated errors.
Therefore, objective of this testing is to take unit tested components and build a
program structure that has been stated in system design.
33
An integration testing also differs from system testing as new defects might
be discovered, because not all previously executed tests have to be rerun after the
bugs fixing is made. In addition, integration testing examines all the components and
modules that are new, changed, affected by a change, or needed to form a complete
system [12].
Consequently, integration testing requires involvement of other systems and
interfaces with other applications, including those owned by an outside vendor,
external partners, or the customer. Usually, the two practical methods of Integration
testing are Top-down Integration and Bottom-up Integration approach.
Firstly, Top-down integration testing is an incremental approach to
construction of program structure. Modules are integrated by moving downward
through the control hierarchy, beginning with the main control module.
These
modules subordinate to the main control module are incorporated into the structure in
either a depth-first or breadth-first manner as shown in Figure 3.6 below.
Figure 3.6 : Top-Down Integration
34
The Top-down Integration process is performed in a series of five steps, as
following:
•
The main control module is used as a test driver and stubs are substituted
for all components directly subordinate to the main control module.
•
Depending on the integration approach, selected subordinate stubs are
replaced one at a time with actual components.
•
Tests are conducted as each component is integrated.
•
On completion of each set of tests, stub is replaced with the real
component.
•
Regression testing may be conducted to ensure that new errors have not
been introduced.
Secondly, Bottom-up integration testing begins the structure and testing with
atomic modules, which are the components at the lowest levels in the program
structure as shown in Figure 3.7 below. Therefore, as components are integrated
from the bottom up, the need for stubs is eliminated and this process requires for
components subordinate to a given level is always available.
Figure 3.7 : Bottom-Up Integration
35
The Bottom-up integration testing strategy may be implemented with the
following steps, which are:
•
Low level components are combined into clusters that perform a specific
software sub function.
•
A driver is written to coordinate test case input and output.
•
The cluster is tested.
•
Drivers are removed and clusters are combined moving upward in the
program structure.
3.1.7.3 System Testing
System Testing tests all components and modules that are new, changed,
affected by a change, or needed to form the complete application [12]. Therefore,
this testing required the involvement of other systems.
However, it should be
minimized as much as possible in order to reduce the risk of externally-induced
problems.
Besides that, suppose testing the interaction with other parts of the complete
system is happened in Integration Testing. As a result, system testing is more on
validating and verifying the functional design specification and seeing how all the
modules work together.
Consequently, the first system test is often a smoke test, which is known as
an informal quick-and-dirty run through of the application’s major functions without
bothering with details of the system [12].
Hence, this term is adopt from the
hardware testing practice of turning on a new piece of equipment for the first time
and considering it a success if it does not start smoking or burst into flame.
36
3.1.7.4 User Acceptance Testing (UAT)
User Acceptance Testing is also called Beta testing, application testing, and
end-user testing. Therefore, it can be defined that the testing moves from the hands
of the IT department into the business users’ environment. In general rule of thumb,
no matter how bulletproof an application seems when it goes into user acceptance
testing, a user somewhere can still find a sequence of commands that will produce an
error. This is seems that this testing is important before can start run the real life of
product or system.
3.1.8 The Challenges and Current Research
Software is expected to work, meeting customer’s changing demands, first
time and every time, consistently and predictably. Thus, earlier software systems
were used for back-office and non-critical operations of organizations. However,
now more and more critical applications are implemented globally.
Software is not unlike other physical processes where inputs are received and
outputs are produced.
Software is differs in the manner in which it fails.
Approximately 20 percent of all small computers are abandoned after a short trial
period. The number of software packages acquired but not used is even higher [29].
Relatively, there are many of the excuses that people use to justify bad testing [30]
are such as like these:
•
Excuse 1: Tester can't do good testing without a specification.
•
Excuse 2: Tester can't do good testing without reviewing the code.
•
Excuse 3: Tester can't do good testing if the programmers keep adding
functionality while program under test.
•
Excuse 4: Tester can't do good testing if he gets along too well with the
programmers.
37
Moreover, there are many other issues that can complicate the testing of the
simple function [31]. These are all typical requirements for software systems that a
great many testers face every day during their testing careers, and which act to make
software systems highly complex and make testing an immense challenge. For
example:
•
What if the function needs to interoperate with other functions within the
same application?
•
What if the data for the calculation are obtained across a complex
Client/Server system an/or the result is returned across the Client/Server
system?
•
What if the calculation is driven via a complex Graphical User Interface
with the user being able to type the addition values into fields and push
the buttons to perform the calculation in any arbitrary order?
•
What if this function has to be delivered on a number of different
operating systems, each with slightly different features, and what if
individual users are able to customize important operating system
features?
•
What if this function has to be delivered on a number of different
hardware platforms, each of which could have different configurations?
•
What if the application this function belongs in has to interoperate with
other applications, and what if the user could be running an arbitrary
number of other applications simultaneously (such as e-mail or diary
software)?
Due to this issue, the problem with software, like other complex product, is
that it is difficult to build without defects [29]. Therefore, some of the challenges of
software testing that being defined from the past research [32] are:
•
Ambiguous and incorrect requirements.
•
Tight time schedules.
•
How to cover possible user interactions?
•
How to select a representative set of user test cases?
•
How to test without specifications?
•
How to know when testing is enough?
38
In addition, one software testing’s practitioner [33] also identify about four
fundamental challenges to competent testing, which are:
•
Complete testing is impossible - There is no simple answer for this.
Therefore testers live and breathe tradeoffs
•
Testers misallocate resources because they fall for the company’s process
myths - Testers have to rely on their wits, not on someone else’s
compliance with an (alleged but unrealistic) process
•
Test groups operate under multiple missions, often conflicting, rarely
articulated - Tester pick his own tests to conform to the testing mission
•
Test groups often lack skilled programmers, and a vision of appropriate
projects that would keep programming testers challenged
Although crucial to software quality and widely deployed by programmers
and testers, software testing still remains an art, due to limited understanding of the
principles of software.
This increased expectation for error-free functioning of
software has increased the demand for quality output from software vendors [34].
3.2
Software Testing Model
3.2.1 V- Model
Many of the process models currently used can be more generally connected
by the V-Model where the 'V' describes the graphical arrangement of the individual
phases [35]. This model is also a synonym for Verification and Validation approach
in software development model.
Figure 3.8 show the connection between
development and test activities in V-Model, which can be in time sequence and with
abstraction levels that make it clearer.
39
Figure 3.8 : V-Model Test
The V-Model was originally developed from the waterfall software process
model [36].
The four main phases are requirements, specification, design and
implementation, which have a corresponding to verification and validation testing
phase.
The implementation of codes and detailed design are tested by unit testing,
architecture design is tested by integration testing, formal system specifications are
tested by system testing and finally user acceptance testing verifies the business
requirements.
The V-Model is not only to identify the relationship between the development
and testing phases, but also to ensure that appropriate quality assurance and testing
takes place throughout the project lifecycle. Some advantages and disadvantages
[37, 38, 39] of V-Model are describes in Table 3.8.
40
Table 3.8: Advantages and Disadvantages of V-Model
No.
1.
Advantages
Disadvantages
The V-Model clearly suggests that The V-Model does not explain much
testing should be considered early in on static testing such as reviews,
the life of a project.
inspections, static code analysis and
Static testing techniques such as others.
inspections and walkthroughs can be The V-Model also treats testing as a
performed at early stage of software “back-door” activity on the right
development.
2.
hand side of the model.
The V-Model provides a consistent The V-Model has coarse division,
basis and standard for part of a test which a constructive work (including
approach, or test strategy document, the implementation) on the left-hand
which defines how testing will be side of the “V” and the more
performed throughout the lifecycle destructive tasks on the right-hand
of the project.
3.
side that shows imbalance activities.
The V-Model introduces the idea of A specific planned in removal of
specifying test requirements and defects and regression testing is not
expected
outcomes
prior
to given in this model.
performing the actual tests.
4.
The V-Model provides a focus for The timing of the phases where
defining the testing that must take testing
place
within
each
stage.
after
all
The implementation is done, is not an
definition of testing is assisted by the adequate
idea of entry and exit criteria.
occurs
approach
for
iterative
software processes.
It is also an impression may develop
that, after the implementation phase,
a ready product can be delivered.
5.
The V-Model provides a basis for One-to-one relationship between the
defining who is responsible for documents on the left hand side and
performing the testing at each stage the test activities on the right is
of testing levels.
rarely a perfect approach.
Testing is performed by:
For example:
•
Users - Acceptance testing
•
Functional specifications do not
41
No.
Advantages
Disadvantages
•
System testers - System testing
usually
•
Team leaders - Integration testing
information for a system test.
•
Programmers - Unit testing
•
provide
enough
System tests must often take
account of some aspects of the
business requirements as well as
physical design issues.
•
System testing usually draws on
several sources of requirements
information to be thoroughly
planned.
3.2.2 W- Model
A W-Model that being introduced by Paul Herzlich on 1993 [37, 40] is an
extension of the V-Model. This W-Model removes the vague and ambiguous lines
linking the left and right legs of the V-Model and replaces them with parallel testing
activities, shadowing each of the development activities [40, 39]. Furthermore, WModel of testing also focus specifically on the product risks of concern at the point
where testing can be most effective [37].
W-Model provides a better reflection of the interdependence between the
development team and the test team over the whole course of the software
development process [41]. This model includes testing tasks in the early stages that
are not reflected in the original model, such as the review of requirements, review of
system specifications, review of architecture and detailed design, and code reviews.
Therefore, these testing tasks shows in the inside layer of W-Model. Conversely, the
layer outside, such as Business Requirements block, represents other activities in the
software life cycle prior to the production launch. Figure 3.9 show the illustration of
W-Model.
42
Figure 3.9 : W-Model Test
This model of testing attempts to address shortcomings in the V-Model and
aim more on the development products themselves by represents a standard
development lifecycle with every development stage mirrored by a test activity [37].
Basically, every development activity that produces a work product is shadowed by a
test activity.
The purpose of the test activity particularly is to determine whether the
objectives of a development activity have been met and the deliverable meets its
requirements. It shows that on the left hand side, the deliverables of a development
activity such as write requirements is accompanied by a test activity like test the
requirements.
43
In this model, the verification of non-software products and tasks related with
preparation for the verification and validation of software are concentrated in the
early stages. This verification activity commonly focuses on product’s documents.
Hence, these tests are based on peer reviews, where the documents are subjected to a
review process that being established in the project quality assurance plan.
This review process defines who is responsible for the review, how
weaknesses should be corrected, and how the document is approved for use in
subsequent stages of the development cycle. Table 3.9 below lists two types of
testing activity in the W-Model.
Table 3.9 : W-Model Test Activities
Tests
On
Non-Software
Tests On Software Products
Products
•
Requirements review
•
Preparation of acceptance tests
•
Use case specification review
•
Preparation of system tests
•
Architecture design review
•
Preparation of sub-system integration
•
Detailed design review
tests
•
Preparation of unit tests
•
Code reviews
•
Performance of tests
•
Debugging and introduction of changes
For the later stages of the processes, the work focuses entirely on verification
and validation of the software produced. It is actually different from the original VModel in the later stages, where testing tasks as such as Integration test or System
test are broken down and separated from the work of debugging and error
corrections, which is performed by the developers.
44
3.2.3 Butterfly Model
Another variation on the V-Model is the little known of Butterfly Model by
Stephen Morton on 2001 [48], which shares many features of the W Model [40].
Hence, the Morton’s Butterfly Model shown in Figure 3.10 below.
Figure 3.10 : Morton's Butterfly Model
The butterfly metaphor is based on the idea that clusters of testing are
required throughout the development to tease out information about the
requirements, design and build. Therefore, these micro-iterations can be structured
into the familiar testing stages, and the early static testing stages envisaged by the VModel.
Furthermore, in this model, these micro-iterations explicitly shape the
development during the progression down the development leg. Therefore, each
micro-iteration can be represented by a butterfly, which graphically shows the left
wing for test analysis, the right wing for specification and design, and the body is test
execution, which defined as the muscle that links and drives the test [42].
45
The clear graphical of Butterfly Model for test development activities shown
in Figure 3.11 below.
Figure 3.11 : Butterfly Model Test
Consequently, as a Butterfly, this model is composed of three pieces, which
are two wings and a body. Thus, for each part of it, represents a piece of software
testing activities or process as being described in Table 3.10 below.
Table 3.10 : Butterfly Test Model Description
Butterfly
Testing
Part
Activities
Left Wing
Test Analysis
Descriptions
•
The left wing of the butterfly represents test
analysis, which includes the investigation,
quantization or re-expression of a facet of the
software to be tested.
•
Analysis is both the by product and
foundation of successful test design. In its
earliest
form,
analysis
represents
the
thorough pre-examination of design and test
artifacts to ensure the existence of adequate
testability,
including
checking
for
ambiguities, inconsistencies, and omissions.
•
Test analysis also concerned with validating
46
Butterfly
Testing
Part
Activities
Descriptions
the outputs of each software development
stage or micro-iteration, as well as verifying
compliance of those outputs to the products
of previous stages.
•
Test analysis mechanisms vary according to
the design artifact being examined.
•
Test analysis also serves a valid and valuable
purpose within the context of software
development.
Right Wing
Test Design
•
The right wing of the butterfly represents the
act of designing and implementing the test
cases needed to verify the design artifact as
replicated in the implementation.
•
The focus of test design is to implement
procedures, techniques, and data sets that
achieve the test’s objectives.
•
The outputs of the test analysis phase are the
foundation for test design. Each requirement
or design construct has had at least one
technique (a measurement, demonstration, or
analysis) identified during test analysis that
will validate or verify that requirement. The
tester must now put on his or her
development hat and implement the intended
technique.
•
Software test design, as a discipline, is an
exercise in the prevention, detection, and
elimination of bugs in software.
•
During the test design phase of test
development,
those
tentatively
selected
techniques and approaches must be evaluated
47
Butterfly
Testing
Part
Activities
Descriptions
more fully, until it is proven that the test’s
objectives are met by the selected technique.
Body
Test
•
Execution
Test execution is a separate piece of the
overall approach. Even it is the smallest
piece, as the slender insect’s body, but it also
provides the muscle that makes the wings
work.
•
Test execution includes the formal running
of the designed tests. Informal test execution
is a normal part of test design, and in fact is
also a normal part of software design and
development.
•
This formal test execution marks the moment
in the software development process where
the developer and the tester join forces.
•
In a way, formal execution is the moment
when the developer gets to take credit for the
tester’s work, which by demonstrating that
the software works as advertised.
3.2.4 Summary
Essentially, testing in the software development process is a critical activity.
A lot of evidence suggests that the earlier a fault is found, the cheaper it is to fix.
Testers often complain that they join a project too late to do much good. Although
they can report the faults they find, the critical decisions about usability and
reliability have already been made [43].
48
In real software development, most of the development models have some
deficiencies with regard to the test activities. Testing always starts after the coding
phase at which point the implementation appears to be complete. Testing is one of
the important means of software quality assurance.
Each software development paradigm requires an appropriate test model [49].
Table 3.11 below listed the summary of testing activities of three Test Models
corresponding to the basis software development phases.
Table 3. 11: Summary of Software Testing Model
Software
V-Model
W-Model
Butterfly
Development
Test
Test
Model test
Phases
on Test
Analysis,
Business
Provides Acceptance Reviews
Requirement
Test Plan for User Requirements and Test Design and
Acceptance Testing.
Promotes
Acceptance
Test Test
Plan
User for
for
Execution
Acceptance
Testing.
static Acceptance
techniques Testing.
testing
such as inspections
and walkthrough.
Promotes
Debugging
and
Changes at every
phases.
Formal
Provides System Test Reviews
Specification
Plan
for
Testing.
System System
on Test
Test Design and
Specification and Test
System Test Plan for
for
Analysis,
Execution
System
System Testing.
Testing.
Architecture
Provides
Sub- Reviews
Design
systems Test Plan for Design
on Test
Analysis,
Test Design and
49
Software
V-Model
W-Model
Butterfly
Development
Test
Test
Model test
Phases
Integration Testing.
Architecture
and Test
Sub-system
Test for
Plan
Execution
Integration
for Testing.
Integration
Testing.
Detailed Design
Performed
Testing.
Unit Design review for Test
Unit Testing.
Analysis,
Test Design and
Test
Execution
for Unit Testing.
Code
and Performed
Unit Code Review.
Implementation Testing.
Test
Analysis,
Test Design and
Test
for
Execution
code
and
software
implementation.
The Test Models that previously discussed introduced an aims to overcome
such problems and to improve the status of testing in the software development life
cycle. From this review, all of these three Test Models suggest that testing activities
or process must start at the early stage of software development life cycle, which is
during business requirements and analysis phase.
CHAPTER 4
TESTING METHODOLOGIES
4.1
Introduction
This chapter reviews three testing methodologies or frameworks which are
HeiTech Test Process [44], RUP Test Discipline [3] and Systematic Test and
Evaluation Process (STEP) [4]. In this review, several aspects of these testing
methodologies such as concepts, main activities, advantages and disadvantages are
clearly defined.
Hence, a good testing framework is important as one of software testing main
goal is to detect defects as soon as possible during the software development, looking
for the improvement of the software quality [45].
Basically, a different testing approaches or tactics are needed to be used for
different types of projects, which refer to the environment or methodology in which
the software will be developed. Table 4.1 shows different test tactics for different
type of software development methodology.
51
Table 4.1 : Test Tactics for Different Software Development Methodology
Type
Traditional
Characteristics
•
System
Development
Iterative
Test Tactics
Uses a system development •
Test
methodology
task/step / phase
•
User knows the requirements
•
Development
•
development / •
•
at
end
of
each
Verify that specifications
match needs
determines
structure
•
Test function and structure
Requirements unknown
•
Verify that CASE tools are
used properly
Structure pre-defined
Prototyping /
•
Test functionality
•
Test structure
•
Works best with release
CASE
System
•
Modify structure
Maintenance
methods
•
Requires regression testing
•
Verify that functionality
Purchased /
•
Structure unknown
Contracted
•
May contain defects
matched need
Software
•
Functionality defined in user •
Test functionality
documentation
Test fit into environment
•
Documentation
•
may
vary
from software
4.2
HeiTech Software Testing Process
Software Development Methodology in HeiTech Padu is known as ADVISE
(Application Development Information System) [44]. This methodology is based on
RUP approach. Thus, Figure 4.1 shows HeiTech Application Development Life
Cycles and the objectives for these five phases of application development life cycles
are describes in Table 4.2.
52
Figure 4.1 : HeiTech Application Development Life Cycles
Table 4.2 : HeiTech Application Development Life Cycles Objectives
Phases
Descriptions
Inception
The objective is to achieve concurrence among all stakeholders
on the lifecycle objectives for the project.
Elaboration
The objective is to baseline the architecture of the system to
provide a stable basis for the bulk of the design and
implementation effort in the construction phase.
Construction
The objective is on clarifying the remaining requirements and
completing the development of the system based upon the
baseline architecture.
The objective is to ensure that software is available for its end
Transition
users.
Maintenance
4.2.1
The objective is to support the software after deployment.
Testing Concepts
Testing process and procedures for HeiTech Defined Process [44] include the
testing process flow, ability to test, level of testing, type of testing, tools and test
documentation. Figure 4.2 show the high level of testing process flow for HeiTech
Test Process, which consists of three main flows:
i.
Prepare for Testing
•
Preparing the content of Test Plan document shall be performed in
this process
ii.
Perform Peer Review on documents
53
•
Filing up the Master Test Plan/Test Plan Review Checklist and
Test Report Review
•
iii.
Checklist shall be performed in this process
Perform Testing
•
Perform the testing as planned in the project’s Test Plan and the
result will be recorded in the project’s Test Report document
Figure 4.2 : Testing Process Flow Diagram
4.2.2
Main Activities
The four main activities in HeiTech Test Process [44] are Plan Test, Design
Test, Implement Test and Evaluate Test.
Figure 4.3 below shows four main
activities in HeiTech Test Process.
Figure 4.3 : HeiTech Test Process
54
HeiTech Test Process starts when the specific project begins its development
phases, which normally known as system or software requirement and analysis.
During this project initiation, several documents that being produced are the
prerequisites of this discipline, such as SRS, project plan and schedule and system
baseline for software and documents. Therefore, at the end of the testing process, the
evaluation on test result will affects the project closeout activity.
In each of this stage or activities, different tasks are required to be performed
and several test documents will be produced. The tasks and activities of software
testing should be completed during the Test discipline phase. However, the tasks and
activities actually performed depend on the nature of the project. Therefore, the
activities of software testing should include the following objectives:
i.
To ensure users and operations personnel know how to use and run
the system
ii.
To verify before conversion that the new system contains all required
function that work correctly
iii.
To prove that the developed system satisfies the requirements defined
in the System Requirement Specification (SRS)
iv.
To perform an integrated system test function as specified by the
design parameters
Based on ADVISE methodology, the tasks and activities for test management
shall be performed with reference to the HeiTech Testing Guideline [44]. This
testing guideline contains the proposed testing workflow, testing level and guideline
for the different testing types. For that reason, the details of each task in HeiTech
Test Process activities are describes in Table 4.3 below.
Table 4.3 : Main Activities of HeiTech Test Process
Main
Tasks
Activities
Plan Test
Artifacts/
Test Documents
•
Before start testing, a Test Plan needs to be •
Master/ Test
developed because planning the test is very
Plan
55
Main
Tasks
Artifacts/
Activities
Test Documents
•
important to ensure the success of product •
Test Plan
testing.
Review
Test Plan need to be prepared at early in
Checklist
the life of the project in order to make clear
understanding
between
and
good
developer
agreement
and
relevant
stakeholder.
•
Test Plan contains information about the
purpose of testing within project, which
also identifies the target test items, test
approach, deliverables of testing, test
workflow, environmental needs for testing
and resources needed.
•
Test Plan needs to be reviewed using
Master Test Plan or Test Plan Review
Checklist
by
the
nominated
Quality
Assurance Team.
Design
•
Test
In design test stage, first task is to identify •
and describe Test Cases.
•
Test Cases are a set of inputs, execution
conditions and expected results developed
for particular objective of software testing.
•
Then, testing procedures and criteria are
defined to ensure that the product will
fulfill its intended use when placed in its
intended environment.
•
A test procedure is a set of detailed
instructions for the set-up, execution, and
evaluation of results for a given test case.
•
Upon completion, all the information will
Test Cases
56
Main
Tasks
Artifacts/
Activities
Test Documents
be added in Test Plan.
•
In developing test cases, several steps as
follows are required:
a) Identify types of testing required
b) Types of testing for each level of
testing are identified in Master Test
Plan.
c) List criteria for testing
d) Develop the criteria that need to be
tested from the documentation for
that level.
e) Detailed
objectives
that
can
measure if the system is successful.
f) Expand Criteria into Test Cases
g) Each of the criteria identified to be
expanded into test cases that will
fully verify that each criterion is
met.
h) Uniquely numbered for each test
case and listed the expected result.
i) Rationalize test cases
j) Logical order, where testing should
be done in sequence order to
minimize the time taken.
Implement •
Test
•
The next step is to implement the test.
Testing activities are performed and the
resulting data are collected according to
the established methods, procedures and
criteria.
•
The levels of testing are:
57
Main
Tasks
Artifacts/
Activities
Test Documents
a) Unit Testing
b) Integration Testing
c) System Testing
d) Acceptance Testing
Evaluate
•
Test
The purpose of evaluating test is to •
Defect Log
generate and
Test Report
summary
•
deliver the
overall
test result •
assessment
of
the •
software or system tested.
Review
This is accomplished by reviewing and
Checklist
evaluating the test results in the Defect
Log, identifying and logging change
requests, and calculating the key measures
of test.
•
The test result shall be documented in Test
Report.
•
This Test Report will summarize the
execution of the tests and describe the
result,
including
the
status
of
all
documented defects.
•
Test result summary presents the test
results and defect data shall be recorded in
Defect Log. These data will be further
analyzed to understand the defect density
•
Test Report
Test report review will be performed by
using Test Report Review Checklist. This
review is to evaluate test report and test
result.
58
4.2.3
Testing Levels
Levels of testing for HeiTech Test Process consist of Unit Testing,
Integration Testing, System Testing and Acceptance Testing. Table 4.4 below lists
the detail descriptions of these levels and their testing procedures and documents
base.
Table 4.4 : Detail Descriptions of Testing Levels
Testing
Descriptions
Procedures
Documents
Level
Unit
Base
•
Testing
•
Testing
of
the •
Team
smallest divisible unit
shall perform Unit
of the system.
test.
Usually
at
the
function or program
•
SRS
Each unit test result
will be recorded in
level.
•
Developer
standard
The
more
comprehensive
documentation.
the
unit test plan and unit •
Completion of unit
test cases, the more
testing occurs when
economical
all unit test cases
and
quicker the correction
have
been
of errors.
successfully
conducted and their
results
have
been
reviewed.
Integration •
Testing
•
Also
known
as •
System Designer and
module testing.
the
Modules or a logical
shall
grouping of units that
Integration Test Plan
perform
a
function
of
subthe
•
Analyst
develop
Team
the
Each integration test
result
will
be
SRS
SDD
59
Testing
Descriptions
Procedures
Documents
Level
Base
system
are
recorded in standard
tested
documentation.
together.
•
Useful as an interim
test to catch errors
•
before the systemtesting phase.
•
existing
of
integration
occurs
testing
when
all
integration test cases
Performed on groups
of
Completion
units,
making better use of
team resources.
have
been
successfully
conducted and their
results
have
been
reviewed and signed.
System
•
Testing
Testing of the system •
The
as a whole and the
Support and System
system test needs to
Designer Team are
be
responsible
very
comprehensive
•
•
and
Technical
SDD
to
develop the System
exacting.
Test Plan.
Final level of testing •
As each system test is
performed before the
performed, the results
system delivered to
are recorded by the
client.
tester in the System
System testing will
Test cases.
concentrate on areas
that are more critical
to the success of the
system, especially in
terms
of
functionality.
Acceptance •
Testing
To be develop and •
The acceptance test
BRS
performed
procedure
SRS
by
the
requires
60
Testing
Descriptions
Procedures
Documents
Level
Base
•
users.
two
Based on Business
deliverables,
Requirements
are Acceptance Test
of
which
or
Plan which includes
System Requirements
the Acceptance Test
Specification.
Cases
and
To ensure that the
Acceptance
Test
system
the
Report which include
user’s requirements,
the Acceptance Test
not how well it meets
cases.
Specification
•
types
meets
the specification.
•
When all the testing
has been accepted,
the Project Sponsor
or
Representative
User
and
Project Manager will
signed off on the
Acceptance
Test
Report.
4.2.4
Testing Types
Besides that, HeiTech testing guideline also contains the principles for the
different testing types and its consideration based on levels of testing. Therefore,
Table 4.5 describes testing types that being considered to be tested at each levels of
testing.
61
Table 4.5 : Types of Testing and Its Descriptions
No
Types of
.
Testing
1.
Descriptions
Functionality
•
Most essential form of testing
•
Perform at all levels of testing
•
Tests the adherence of each level of testing to the
specifications from which it comes.
•
Unit functionality testing is develop from SDD and
SRS
•
System functionality testing is developed from SDD.
•
Tests
the
correctness
of
analysis,
design
and
specification process.
2.
Error Handling •
•
Perform at unit testing level.
Ensure that any error could occur during the processing
of unit is covered.
•
Normally for the unit “interfaces” with anything
outside itself (i.e. reading and writing to file)
•
Every possible failure must be accounted, whether
through an explicit procedure or in a “catch-all” error
routine.
3.
Spelling
& •
Grammar
•
Spelling and grammar are in any user interfaces.
To ensure any Help functions are correct and the
abbreviations are meaningful and consistent.
4.
Consistent
•
User Interface
Relates to both layouts of reports and screens, and the
methods of processing.
•
Performs at unit, module, system and acceptance
testing levels.
•
Testing layouts consistency for reports and screens,
which include:
o Consistent placement and format of standard
fields
o Consistent user of abbreviations and acronyms
62
No
Types of
.
Testing
Descriptions
o Consistent use of color, borders, fonts
o Consistent cursor control, screen navigation
•
Testing the consistency methods of processing, which
include:
o Exiting, updating, menu navigation
o Warning message, information message and
Help
5.
All Codes lines •
A program may have many paths that could be used
tested
during executions
•
Test for each condition in program (i.e. IF statements,
LOOPS, CASE statements and others)
6.
On-line help
•
Perform at unit testing level.
•
May not be applicable to all system.
•
Not only work consistently throughout the system, but
also must be relevant to the topic.
7.
Ease of Use
•
Perform at unit testing level.
•
Relates to the ability of the user to perform their job in
a logical manner, and to be able to use the system.
•
Should be thought of and investigated in the design
phase.
•
Test using the work methods defined in BRS.
•
Best performed during the system and acceptance
testing levels.
8.
Boundary
•
Exist where data is to be within a specified range.
Conditions
•
Ensure that the program will correctly process any data
for these conditions, regardless of its values.
•
Test cases need to be designed to test the following
values:
o Zero
o One less than minimum
63
No
Types of
.
Testing
Descriptions
o Minimum
o Midpoint
o Maximum
o One more than maximum
•
9.
Data
Best done at unit testing level
and • The quality of a system’s data and database is integral
Database
to the quality of a system.
Integrity
• Corrupted data could lead to processing errors and
generally hard to fix.
• Relates to two ideas:
o Ensure that only one user can update data at any
one time, which best done at integration and
system testing levels.
o Ensure that if a record is added, modified and
deleted on one file, all references to that record
on other files are suitably updated, which best
done at unit testing level.
10.
Access
and • Ensure that the system’s data is protected from
Security
unauthorized
and
unwarranted
viewing
and
modification.
• Should be installed physically and electronically.
• Program level security can be performed at unit and
module testing levels.
• System wide and all physical security are best
performed at the system testing level.
• All access and security testing are performed at the
acceptance testing level.
11.
Interfaces
– • Unit interfaces
external/unit/m
odule
o Connection between units, and will normally
take the form of parameters
o Test cases need to be designed to ensure that all
64
No
Types of
.
Testing
Descriptions
possible data that can be passed by a unit can be
correctly processed by a receiving unit.
o Best done at integration testing level.
• External interfaces
o External connections with the system, including
user interfaces
o Test cases need to be designed to ensure that a
performing module can correctly handle any
data passed to it and that full range of values for
that data is provided.
o Best done at unit testing level.
• Module interfaces
o Test cases need to be designed to ensure that a
performing module can correctly handle any
data passed to it and that full range of values for
that data is provided.
o Best done at the system testing level.
12.
Performance
• Ensure the system performs to specified levels.
• Performance parameters should include both processing
speed and processing volume.
• Processing speed:
o Measuring the response time for a number of
users doing a typical set of transactions.
o Testing should emulate normal processing and
peak testing is defined somewhere else.
• Processing volume:
o Processing the number of transactions to be
entered during a set time frame.
o Testing for background and batch jobs rather
than user response.
• Best done at the system and acceptance testing levels.
65
No
Types of
.
Testing
13.
Processing
Descriptions
• Ensure the system will correctly perform under peak
Limits
loads (include: no of users, amount of data)
• Also known as stress testing.
• Best done at the system and acceptance testing levels.
Hence, Table 4.6 shows the specific testing category for each of levels testing
that previously discussed.
Table 4.6 : Testing Types Consideration Based on Levels of Testing
Levels of Testing
Unit
Integration
System
Acceptance
Testing
Testing
Testing
Testing
x
x
x
x
Error Handling
x
-
-
-
Spelling & Grammar
x
-
-
-
Consistent User
x
x
x
x
All Codes lines tested
x
-
-
-
On-line help
x
x
-
x
Ease of Use
-
-
-
x
Boundary Conditions
x
-
-
-
Data Integrity
x
x
x
-
Access and Security
x
-
x
x
Interfaces
Levels of–Testing
external/unit/module
x
x
x
-
-
-
x
x
Test Category
Functionality
Interface
Performance
66
Test Category
Processing Limit
Documentations
4.2.5
Unit
Integration
System
Acceptance
Testing
Testing
Testing
Testing
-
-
x
x
-
-
-
x
Roles and Responsibilities
In HeiTech test guideline, the principal roles and responsibilities in testing
process also defined clearly, which explain in Table 4.7.
Table 4.7 : Roles and Responsibilities
Roles
Project Manager
Responsibilities
•
Ensuring that testing activities and processes
are carried out as described in project and
testing plan.
System Analyst
•
Ensuring the testing activities follow the
QA Manager
defined qualification methods stated in the
AD Leader
project’s System Requirements Specification.
•
Producing the project’s Test Plan and Test
Report document.
•
Perform testing.
Users/
•
Verify Test Plan & Test Cases
Subject Matter Experts
•
Perform Testing
•
Fill up the Acceptance Test Result form.
•
Auditing the testing deliverables in the manner
Quality Assurance
Committee Members:
Tech Lead/AD
Lead/Architect
QA Lead
Functional Lead
defined in HeiTech’s Process and Product
Quality Assurance Plan.
•
Verifying and validating the requirements
through testing activities.
67
Roles
Responsibilities
CM Lead
SPEG Representative
Implementation
•
Produce Test Cases.
Analyst/Business
•
Perform testing.
•
Produce Test cases.
•
Perform testing.
•
Fill up the Unit Test Results form.
•
Verifying the requirements through unit testing
Analyst/System Analyst
Application Developer
activity.
4.2.6
Test Documentations / Artifacts
In addition, once the system is implemented and the development team has
left, the main source of reference for users is the supplied documentation. This
documentation is also used as a basis for system maintenance and enhancements.
Therefore, the system documentation needs to be comprehensive, relevant and
addressed at the appropriate level.
Acceptance testing should be performed in
conjunction with the documentation to ensure that it meets the users' needs.
Basically there are five documents related to testing process and activities in a
project as shown in Table 4.8 below.
Table 4.8 : HeiTech Test Documents
Test Documents
Descriptions
Testing Plan
The Testing Plan document is made generic and applicable
Guideline
for all software/application development projects in
HeiTech. This document is to be referred by each person
of all application development-related projects specifically
in the testing phase and generally in all other phases
throughout the project lifecycle.
68
Test Documents
Descriptions
Test Plan
The Test Plan document must be prepared for planning the
testing purposes.
Planning includes test schedule, modules to be tested, and
specific test description.
The tester shall fill up the Test cases during the testing
Test Cases
activities. It records the list of test cases, test date and
many more
The Test Report document must be prepared for recording
Test Report
of results from the testing activities performed. Items to be
reported include recommended improvement, attachment
of test results form or log, and impact of test environment
4.2.7
Advantages and Disadvantages
Based on the study that conducted in HeiTech, the summary of advantages
and disadvantages for HeiTech Test Process is listed in Table 4.9 below.
Table 4.9: Advantages and Disadvantages of HeiTech Test Process
No.
1.
Advantages
Established
HeiTech
Disadvantages
Defined HeiTech practice this defined process
Process for Testing Process.
for testing activities only on several
large project.
Whereas, for small
project, testing process is rarely follow
the defined process.
2.
HeiTech Test Process clearly Main activities of testing in HeiTech are
defined the four main activities of too general and time estimation for
software testing.
testing process on several projects only
for a few weeks or days.
3.
Practice
standard
documentations
that
test HeiTech
test
documents
also
not
follow comprehensive because no automated
69
No.
Advantages
Disadvantages
HeiTech Defined Guideline.
test case or scripts that provided as
guideline.
4.
HeiTech Test Process clearly Mostly, all types of testing are clearly
defined levels of testing and types defined and planned in Test Plan.
of testing in Test Plan.
However, due to some limitation of
resources, a few testing types are not
performed during the testing activities.
5.
All
tasks
and
activities
of Basically,
software testing are required to development
most
projects
of
start
HeiTech
testing
complete during Test Discipline process or activities when the products
phase
based
on
ADVISE nearly finish the implementation stage.
methodology.
4.3
RUP Test Discipline
The Rational Unified Process is a Software Engineering Process, which
provides a disciplined approach to assigning tasks and responsibilities within a
development organization [46]. In addition, the Rational Unified Process is also a
modern software development process that uses elements of all the process bases
mentioned in the methodology section, as well as a series of best practices to obtain a
quality product.
Moreover, The Rational Unified Process is a software process product,
originally developed by Rational Software, and now available from IBM.
The
product includes a hyperlinked knowledge base with sample artifacts and detailed
descriptions for many different types of activities. Besides that, RUP is included in
the IBM Rational Method Composer (RMC) product [2] which allows customization
of the process. The evolution of the RUP process can be seen over the course of four
phases, which shown in Figure 4.4.
70
Figure 4.4 : Illustration of the Rational Unified Process (RUP)
The Rational Unified Process can be described in two dimensions, or along
two axes, which are:
i.
The horizontal axis represents time and shows the dynamic aspect of the
process as it is enacted, and it is expressed in terms of cycles, phases,
iterations, and milestones.
ii.
The vertical axis represents the static aspect of the process, which how it
is described in terms of activities, artifacts, workers and workflows.
In addition, RUP also captures many of the best practices in modern software
development in a form that is suitable for a wide range of projects and organizations.
Hence, this process is can be used as the basis for all projects of software or
application development. Table 4.10 below listed the objectives for the following
series of RUP iterations.
Table 4.10: Objectives of RUP Iteration Phases
Phases
Objectives
Conception
The objective in this phase is to establish the business
requirements to be covered by the system, identifying all
entities that will interact with the system, such as people, other
systems, hardware, and others, and also assessing the capability
71
Phases
Objectives
of the project.
Preparation
The objective in this phase is to understand the problem from
the standpoint of the development team.
This involves
preparing the framework architecture for the system and
designing the technical solution, as well as drawing up the
project plan and identifying key risks. The output obtained
from this phase consists of the defined architecture, the model
for systems requirements based on use cases specified in UML
(Unified Modeling Language), the development plan, the
quality standards for the project and the tools to be employed in
the course of the work.
Construction
This phase concentrates on the design of components and the
addition of custom software functionalities through iteration as
construction and testing go further, while allowing room for the
inclusion of changes. Deliveries can be planned at the end each
iteration, when the end user is asked to provide feedback and
changes are proposed. After an analysis of the impact of the
proposed changes, a decision is taken as to the best moment to
include them in the system. The end result is a fully operational
system with user documentation.
Transition
The last phase of RUP is concerned with shifting the software
from the development to production environments in which the
end user will run the system. Hence, depending on the type of
project, it may be necessary to use intermediate environments
such as pre-production, user acceptance, and others for rigorous
validation before moving on to the production phase.
Hence, each phase ends with various iterations involving as series of
activities. The RUP model classifies these into nine disciplines, the importance of
which changes as the project progresses towards its end. Table 4.11 describes the
nine disciplines or workflows in RUP.
72
Table 4.11 : Nine Disciplines of Rational Unified Process
Disciplines
Descriptions
Business
This set of activities seeks understanding of business needs.
modeling
General and high level requirements documentation, business
rules, glossaries and others are used to help define the software
product to be produced.
Requirements
These activities translate the needs established in the business
model to automated systems requirements of a more technical
nature.
The aim is for the development team members to
achieve an in-depth understanding of the business model.
Analysis and
Based on requirements, these activities establish the most
design
appropriate system architecture and the detailed design
necessary for implementation.
Implementation These activities consist of coding the software based on the
design and the system requirements.
Test
Verification of all of the elements produced (documents,
designs and code) to ensure compliance with the requirements
and quality standards defined for the project.
Deployment
These activities involve the installation of the system in the
environments in which it will finally operate.
Project
These activities are aimed to manage the development in terms
management
of plans, resources, monitoring and risk control and
management.
Configuration
and Change
Management of changes and other matters arising in the
construction process.
management
Environment
These activities seek to provide the project with the hardware
and software resources required to facilitate start-up and
maintenance
in
the
different
development
and
test
environments, as well as the production launch of the system.
73
4.3.1
Test Concepts
One of disciplines in Rational Unified Process model is Test. The RUP
proposes an iterative approach, which means that tester needs to perform test
throughout the project. Hence, this helps to find defects as early as possible, which
radically reduces the cost of fixing the defect. Moreover, tests are also carried out
along three quality dimensions, which are reliability, functionality, application and
system performance.
Therefore, for each of these quality dimensions, the process describes how to
go through the test lifecycle of planning, design, implementation, execution and
evaluation. For this reason, the purposes of testing based on RUP approach are:
•
To verify the interaction between objects.
•
To verify the proper integration of all components of the software.
•
To verify that all requirements have been correctly implemented.
•
To identify and ensure defects are addressed prior to the deployment of
the software.
In addition, RUP Test discipline acts as a service provider to the other
disciplines in many respects. Testing focuses primarily on evaluating or assessing
the product quality, which is realized through these core practices:
•
Find and document defects in software quality.
•
Advise on the perceived software quality.
•
Validate and prove the assumptions made in design and requirement
specifications through concrete demonstration.
•
Validate that the software product works as designed.
•
Validate that the requirements are implemented appropriately.
An interesting difference exists between Test and the other disciplines in
RUP is essentially Test is tasked with finding and exposing weaknesses in the
software product. Thus, tester needs to identify a different general philosophy than
what is used in the Requirements, Analysis and Design, and Implementation
74
disciplines, which is a subtle difference is that those three disciplines focus on
completeness, whereas Test focuses on incompleteness [2]. Furthermore, the Test
discipline is related to other disciplines as follows:
i.
The Requirements discipline captures requirements for the software
product, which is one of the primary inputs for identifying what tests to
perform.
ii.
The Analysis and Design discipline determines the appropriate design for
the software product, which is another important input for identifying
what tests to perform.
iii.
The Implementation discipline produces builds of the software product
that are validated by the Test discipline and within an iteration, multiple
builds will be tested, which typically one per test cycle.
iv.
The Deployment discipline delivers the completed software product to the
end user. Thus, while the software is validated by the Test discipline
before this occurs, beta testing and acceptance testing are often conducted
as part of Deployment.
v.
The Environment discipline develops and maintains supporting artifacts
that are used during Test, such as the Test Guidelines and Test
Environment.
vi.
The Project Management discipline plans the project and the necessary
work in each of iteration. Hence, the tasks are described in an Iteration
Plan, this artifact is an important input used when you define the correct
evaluation mission for the test effort.
vii.
The Configuration and Change Management discipline controls change
within the project team. The test effort verifies that each change has been
completed appropriately.
75
4.3.2
Main Activities
Diagram in Figure 4.5 represents the default workflow for the Test discipline
that may require variations based on the specific needs of each iteration and project.
Figure 4.5 : RUP Test Discipline Workflow
Software is refined through iterations in the RUP software development
lifecycle.
The testing lifecycle benefits from following an equivalent iterative
approach in this process environment.
Thus, in each of iteration, the software
development team produces one or more builds, with each build being a potential
candidate for testing.
Moreover, the focus and objectives of the development team differ from
iteration to iteration. Therefore, the test team members must structure their test effort
accordingly.
76
The detail breakdowns for the Test discipline workflows are explain as
follows:
i.
Workflow Detail: Define Evaluation Mission
Figure 4.6 : Define Evaluation Mission Workflow
The purpose of this workflow detail is to identify the appropriate focus of
the test effort for the iteration, and to gain agreement with stakeholders on
the corresponding goals that will direct the test effort as refer to Figure
4.6. Therefore, for each of iteration, this work is focused mainly on:
•
Identifying the objectives for, and deliverables of, the testing
effort
•
Identifying a good resource utilization strategy
•
Defining the appropriate scope and boundary for the test effort
•
Outlining the approach that will be used
•
Defining how progress will be monitored and assessed
77
ii.
Workflow Detail: Verify Test Approach
Figure 4.7 : Verify Test Approach Workflow
The purpose of this workflow detail is to demonstrate that the various
techniques outlined in the Test Approach will facilitate the planned test
effort as shown in Figure 4.7. The intent is to verify by demonstration
that the approach will work, produces accurate results and is appropriate
for the available resources.
The objective is to gain an understanding of the constraints and
limitations of each technique as it will be applied in the given project
context, and to either to find an appropriate implementation solution for
each technique or find alternative techniques that can be used. This helps
to mitigate the risk of discovering too late in the project lifecycle that the
test approach is unworkable.
78
For each of iteration, this work is focused mainly on:
•
Early verification that the intended test strategy will work and
produces results of value
•
Establishing the basic infrastructure to enable and support the test
strategy
•
Obtaining commitment from the development team to develop the
software to meet testability requirements necessary to achieve the
test strategy, and to provide continued support for those testability
requirements.
•
Identifying the scope, boundaries, limitations and constraints of
each technique
iii.
Workflow Detail: Validate Build Stability
Figure 4.8 : Validate Build Stability Workflow
79
The purpose of this workflow detail is to validate that the build is stable
enough for detailed test and evaluation effort to begin as shown in Figure
4.8. This work is also referred to as a smoke test, build verification test,
build regression test, sanity check or acceptance into testing. In addition,
this work helps to prevent the test resources being wasted on a pointless
and ineffective of testing effort.
For each Build to be tested, this work is focused on:
•
Making as assessment of the stability and testability of the Build
•
Gaining an initial understanding or confirming the expectation of
the development work delivered in the Build
•
Making a decision to accept the Build as suitable for use as guided
by the evaluation mission in further testing, or to conduct further
testing against the previous Build.
iv.
Workflow Detail: Test and Evaluate
Figure 4.9 : Test and Evaluate Workflow
80
The purpose of this workflow detail is to achieve appropriate breadth and
depth of the test effort to enable a sufficient evaluation of the items being
targeted by the tests, where sufficient evaluation is governed by the
current test motivators and evaluation mission as shown in Figure 4.9.
Typically performed once per test cycle, this work involves performing
the core tactical work of the test and evaluation effort, which namely as
implementation, execution and evaluation of specific tests and the
corresponding reporting of incidents that are encountered.
For each test cycle, this work is focused mainly on:
•
Providing ongoing evaluation and assessment of the Target Test
Items
•
Recording the appropriate information necessary to diagnose and
resolve any identified Issues
•
Achieving suitable breadth and depth in the test and evaluation
work
•
Providing feedback on the most likely areas of potential quality
risk
v.
Workflow Detail: Achieve Acceptable Mission
The purpose of this workflow detail which shows in Figure 4.10 is to
deliver a useful evaluation result to the stakeholders of the test effort,
where useful evaluation result is assessed in terms of the Evaluation
Mission. In most cases that will mean focusing testing team efforts on
helping the project team achieve the Iteration Plan objectives that apply to
the current test cycle.
81
Figure 4.10 : Achieve Acceptable Mission Workflow
For each test cycle, this work is focused mainly on:
•
Actively prioritizing the minimal set of necessary tests that must be
conducted to achieve the Evaluation Mission
•
Advocating the resolution of important issues that have a
significant negative impact on the Evaluation Mission
•
Advocating appropriate quality
•
Identifying regressions in quality introduced between test cycles
•
Where appropriate, revising the Evaluation Mission in light of the
evaluation findings so as to provide useful evaluation information
to the project team
vi.
Workflow Detail: Improve Test Assets
The purpose of this workflow detail is to maintain and improve the test
assets as shown in Figure 4.11. This workflow is important especially if
the intention is to reuse the assets developed in the current test cycle in
subsequent test cycles.
82
Figure 4.11 : Improve Test Assets Workflow
For each test cycle, this work is focused mainly on:
•
Adding the minimal set of additional tests to validate the stability
of subsequent Builds
•
Removing test assets that no longer serve a useful purpose or have
become uneconomic to maintain
•
Conducting general maintenance of and making improvements to
the maintainability of test automation assets
•
Assembling Test Scripts into additional appropriate Test Suites
•
Exploring opportunities for reuse and productivity improvements
•
Maintaining Test Environment Configurations and Test Data sets
•
Documenting lessons learned for both good and bad practices
discovered during the test cycle
83
Additionally, a test cycle is a period of independent test activity that includes,
among other things, the execution and evaluation of tests. Thus, each of iteration can
contain multiple test cycles; with the majority of iterations contain at least one.
Besides that, each test cycle starts with the assessment of a software build's stability
before it's accepted by the test team for more thorough and detailed testing.
Furthermore, the RUP recommends that each build be regarded as potentially
requiring a new cycle of testing, but there is no strong coupling between build and
test cycle. Typically, Inception iterations of new projects did not produce builds, but
iterations in all other phases do. Although each build is a potential candidate for a
cycle of testing, there are various reasons why no need to test for every software
build.
For example, in situations where a build is created daily, a useful test cycle
may take longer than the available time between builds. Thus, in this case it may be
appropriate to test every nth of software build.
4.3.3
Roles and Responsibilities
The RUP defines not just one role specifically for the Test discipline, but
four, as shown in Figure 4.12, which the activities conducted as part of the test and
evaluation work grouped by responsible roles. Thus, the four roles focusing on test
related activities in the RUP test discipline are:
i.
Test Manager
ii.
Test Analyst
iii.
Test Designer
iv.
Tester
84
Figure 4.12 : Roles and Test Activities Workflows
4.3.4
Test Documentations / Artifacts
Figure 4.13 : Roles and Test Artifacts
85
Figure 4.13 show the artifacts developed as products of the test and
evaluation activities are clearly grouped by responsible role. Meanwhile, Table 4.12
summarized the roles and responsibilities for activities and artifacts have clearly
illustrated above.
Table 4.12: Roles and Test Artifacts in RUP Test Discipline
Roles
Test Artifacts
Test Manager
Test Analyst
Test Designer
Tester
•
Test Evaluation Summary
•
Test Plan or Master Test Plan
•
Test Ideas, and Test-Idea List
•
Test Cases
•
Workload Analysis Model
•
Test Data
•
Test Result
•
Test Strategy
•
Test Automation Architecture
•
Test Interface Specification
•
Test Environment Configuration
•
Test Suites
•
Test Script
•
Test Log
In performing testing activities, the decision of what artifacts to be use and
how to effectively make use of them is important in order to perceived successful of
software testing. Table 4.13 describes the purpose and some recommendation to
make use of those artifacts that consider using in particular contexts.
86
Table 4.13 : Purpose of Test Artifacts
Artifact
Purpose
Tailoring
(Optional, Recommended)
Test
Summarizes
the
Test •
Recommended
for
most
Evaluation
Results for use primarily by
projects.
Summary
the management team and •
Where the project culture is
other stakeholders external
relatively information, it may
to the test team.
be appropriate simply to record
test results and not create
formal evaluation summaries.
•
In other cases, Test Evaluation
Summaries can be included as a
section within other Assessment
artifacts, such as the Iteration
Assessment or Review Record.
Test Results
This artifact is the analyzed •
Recommended.
result determined from the •
Most test teams retain some
raw data in one or more Test
form of reasonably detailed
Logs.
record of the results of testing.
•
Manual
testing
results
are
usually recorded directly here,
and combined with the distilled
Test Logs from automated tests.
•
In some cases, test teams will
go directly from the Test Logs
to
producing
the
Test
Evaluation Summary.
Master Test
Defines high-level testing •
Optional.
Plan
goals, objectives, approach, •
Useful for most projects.
resources,
A Master Test Plan is defines
schedule
and •
deliverables that govern a
the high level strategy for the
phase or the entire the
test effort over large parts of the
lifecycle.
software development lifecycle.
87
Artifact
Purpose
Tailoring
(Optional, Recommended)
•
Optionally, the Test Plan can be
included as a section within the
Software Development Plan.
•
Consider whether to maintain a
"Master" Test Plan in addition
to the "Iteration" Test Plans.
•
The Master Test Plan covers
mainly logistic and process
enactment
information
that
typically relates to the entire
project lifecycle, therefore it is
unlikely to change between
iterations.
Iteration
Defines finer grained testing •
Recommended
Test Plan
goals,
projects.
objectives,
motivations,
resources,
approach, •
schedule
deliverables
that
A
separate
for
Test
Plan
most
per
and
iteration is recommended to
govern
define the specific, fine-grained
iteration.
test strategy.
•
Optionally, the Test Plan can be
included as a section within the
Iteration Plan.
Test Ideas
List
This is an enumerated list of •
Recommended
ideas,
projects.
often
partially
for
most
formed, to be considered as •
In some cases these lists will be
useful tests to conduct.
informally
defined
and
discarded once Test Scripts or
Test Cases have been defined
from them.
Test Script,
Test Data
The Test Scripts and Test •
Recommended
Data are the realization or
projects.
for
most
88
Artifact
Purpose
Tailoring
(Optional, Recommended)
implementation of the test, •
Where projects differ is how
where
formally
the
embodies
Test
the
Script
procedural
these
artifacts
are
these
are
treated.
aspects, and the Test Data •
In
the defining characteristics.
informal and transitory, and the
some
cases,
test team is judged based on
other criteria.
•
In other cases, especially with
automated tests, the Test Scripts
and associated Test Data are
regarded as major deliverables
of the test effort.
Test Suite
Used to group individual •
Recommended
related tests (Test Scripts)
projects.
together
Also required to define any Test
in
meaningful •
subsets.
for
most
Script execution sequences that
are required for tests to work
correctly.
Test Case
Defines a specific set of test •
Recommend on most projects,
inputs, execution conditions,
were the conditions required to
and expected results.
conduct a specific test are
complex or extensive and where
Documenting
test
cases
they are a contractually required
allows them to be reviewed
for
completeness
and
correctness, and considered
before
effort
deliverable.
•
recommended to maintain the
implementation
is
planned
In most other cases, it is
Test-Ideas
&
List
Implemented
expended.
and
Test
the
Scripts
instead of detailed textual Test
Cases.
This is most useful where
•
Some
projects
will
simply
89
Artifact
Purpose
Tailoring
(Optional, Recommended)
the
input,
conditions
results
execution
outline Test Cases at a high
expected
level and defer details to the
and
are
particularly
complex.
Test Scripts.
•
Another style commonly used is
to document the Test Case
information
as
comments
within the Test Scripts.
A specialized type of Test •
Recommended
Analysis
Case. Used to define a
systems, especially those where
Model
representative workload to
system performance under load
allow
must be evaluated, or where
Workload
quality
risks
for
most
associated with the system
there
operating under load to be
quality risks associated with
assessed.
system operation under load.
•
Not
are
other
usually
significant
required
for
systems that will be deployed
on a standalone target system.
Test Classes
The
Design
Model
in the Design Implementation
and •
Model •
Where Required.
Stubs are a common category of
Model Test
include Test Classes and
Test
Components
Components if the project
Component.
in the
has to develop significant
Implementat additional
ion Model
Classes
and
Test
specialized
behavior to accommodate
and support testing.
Test Log
The raw data output during •
Optional.
test
Many projects that perform
execution,
produced
tests.
by
typically •
automated
automated testing will have
some form of Test Log, where
projects differ is whether the
Test Logs are retained or
90
Artifact
Purpose
Tailoring
(Optional, Recommended)
discarded after Test Results
have been determined.
•
Retain Test Logs if need to
satisfy
certain
requirements,
audit
if
want
to
perform analysis on how the
raw test output data changes
over time, or if uncertain at the
outset of all the analysis that
may be required to give.
Test
Provides
Automation
overview
an
architectural •
of
the
test •
Architecture automation system, using a
number
of
Optional.
Recommended
on
projects
where the test architecture is
different
relatively complex, when a
architectural views to depict
large number of staff will be
different
collaborating
aspects
of
the
system.
on
building
automated tests, or when the
test
automation
system
is
expected to be maintained over
a long period of time.
•
In some cases this might simply
be a white-board diagram that is
recorded centrally for interested
parties to consult.
Test
Defines a required set of •
Optional.
Interface
behaviors by a classifier •
On many projects, there is
Specification (specifically,
a
Class,
either sufficient accessibility for
Subsystem or Component)
test in the visible operations on
for the purposes of testing
classes, user interfaces and
(testability). Common types
others.
include test access, stubbed •
Some common reasons to create
91
Artifact
Purpose
Tailoring
(Optional, Recommended)
behavior,
and
diagnostic
logging and test oracles.
Test
Interface
Specifications
include UI extensions to allow
GUI test tools to interact with
the tool and diagnostic message
logging routines, especially for
batch processes.
4.3.5
Advantages and Disadvantages
The RUP testing activities are concerning continuously providing the
management and the development teams with an objective assessment of the quality
of the product. The definition of the level of quality is an engineering trade-off, an
optimization of highly dependent on the business context in which the software
product will be deployed. The expected level of quality and the requirements may
evolve during the lifecycle, and testing also should evolve with this process.
Testing is not a complete, separate workflow, parallel to or appended to
software development, but fully integrated in the iterative cycle of the RUP. Hence,
taking advantage of iterations, testing becomes an almost continuous process that
continually feeds back into the requirements, the design, and the management of the
project. It is a collaborative activity and also more effectively done by automated
tools.
In addition, testing can start early, since iterative development produces
testable code early, and can therefore provide a crucial feedback, both on the product
and the process. Thus, the role of the tester or the quality engineer in the RUP is not
primarily to find defects, but to provide other team members such as developers and
managers with an objective assessment of the quality of the product.
92
Table 4.14 below listed several advantages and disadvantages of RUP Test
Discipline [2, 3, 46, 50].
No.
1.
Table 4.14: Advantages and Disadvantages of RUP Test Discipline
Advantages
Disadvantages
RUP provides an iterative development Even RUP is an iterative process;
process.
Thus, testing does not start it still not considered particularly
with just test plans.
The
tests adopting agile approach.
themselves are developed early and
conducted early, and a useful subset of
them is accumulated in regression suites
and iteration after iteration.
2.
RUP
provides
low
up-front RUP consists of a large collection
documentation, where the Detailed Test of documents, role descriptions,
planning
is
defined
iteration
by activities
and
others.
This
iteration, based on a governing master stresses the need for tailoring to a
Test plan, to meet the needs of the team specific organization, which in
and
match
the
objectives
iteration.
of
the most projects equals downsizing
of the methodology. RUP is
considered
and
criticized
for
being a heavy-weight approach.
3.
RUP promotes a holistic approach in In technical perspective, RUP is a
order to identify appropriate tests is not large
collection of processes,
strictly and solely based on deriving artifacts and roles. These sources
tests from requirements. Tests in the must be scaled down for most
RUP are derived from the requirements projects except for the very
and from other sources.
4.
largest ones.
RUP also promotes automation testing. RUP is a commercial product.
As testing starts early in, and continues Hence, an effort must be spent on
throughout, the RUP lifecycle, it is tailoring
RUP,
where
93
impractical to work on many aspects of organizations need to revise their
testing without appropriate tool support. cost and budget.
Automated tools can help generate test
data conditions, run tests, and analyze
results.
5.
The RUP assists verifying product RUP fails to provide any clear
quality
in
the
implementation,
planning,
design, implementation
guidelines,
in
and order to access quality at early
execution,
evaluation stages. Quality assessment is development stage.
built into the process, in all activities,
involving
all
participants,
using
objective measurements and criteria,
and not treated as an afterthought, or a
separate
activity
performed
by
a
separate group.
Quality should be
reviewed
respect
with
requirements
based
on
to
the
reliability,
functionality, application performance
and system performance.
6.
The ability to manage change making RUP leaves the tailoring of its’
certain that each change is acceptable, process to the user entirely.
and being able to track changes is
essential in an environment in which
change is inevitable. The RUP process
describes how to control, track and
monitor changes to enable successful
iterative development.
4.4
Systematic Test and Evaluation Process (STEP)
94
4.4.1
Testing Concepts
The Systematic Test and Evaluation Process (STEP) were first introduced in
1985 as part of the course material for the Systematic Software Testing seminar
series [27]. STEP provides a model process and a step-by-step sequence of activities
and tasks for performing software testing at any level from unit testing through
acceptance testing and is a proprietary methodology developed by Software Quality
Engineering [4]. The methodology grew from and is built upon the foundation
provided by the American National Standards Institute (ANSI) testing standard.
STEP was unique in that it broadened the definition of test to include more
than a procedure performed after the system was fully assembled. STEP expanded
that original definition to include test planning, test case design, test implementation,
and test execution [53]. Therefore, large organizations that have a test function have
found that this approach provides significant benefits in quality and control,
meanwhile smaller organizations that did not have a separate test function have also
seen remarkable improvements in their testing process.
Furthermore, STEP is built upon the foundation of the IEEE Std. 829-1983
Standard for Software Test Documentation and subsequently updated based on the
latest version (IEEE Std. 828-1998) of this standard and the IEEE Std. 1008-1987
Standard for Software Unit Testing [27]. Hence, while retaining compatibility with
these standards, this methodology has grown in scope and now stands as one of the
leading models for effective software testing throughout the industry.
STEP covers the broad activity of software evaluation. Evaluation is defined
as that sub-discipline of software engineering concerned with determining whether
software products do what they are supposed to do. Thus, the major techniques
employed in evaluation are analysis, review and test.
Hence, STEP’s scope and objectives are focuses on testing as the most
complex of the three, but stresses overall coordination and planning of all aspects of
evaluation as a key to success. Moreover, it stresses the prevention potential of
testing, with defect detection and demonstration of capability as secondary goals.
95
Figure 4.14 : Different Views of Testing
In addition, there is an evolution approach in views of testing as shown in
Figure 4.14 above. Thus, early views saw testing as a phase that occurred after
software development, or something that programmers need to get the bugs out of
their programs. However, for more modern view sees testing as a process to be
performed in parallel with the software development or maintenance effort, which
incorporating the several activities such as:
4.4.2
•
planning to determine risks and selecting strategies
•
analysis to set up test objectives and requirements
•
design to specify tests to be developed
•
implementation to construct or acquire the test procedures and cases
•
execution to run and re-run the tests
•
maintenance to maintain and updating the tests as the software changes
Main Activities
This STEP methodology breaks down the testing process into three major
phases, which are Planning, Acquisition, and Measurement as shown in Figure 4.15.
96
Figure 4.15 : Major Phases in STEP
In planning phase, information about the software to be tested and the project
is used to develop testing objectives and an overall testing approach. The output of
the phase is a test plan that serves to guide the remainder of the testing activity and
coordinate the test levels.
Next, in Acquisition phase, more information about the software
requirements and design, along with previous testing product documentation and
data, is used to specify and develop a test configuration for each level of testing
performed. The output of this phase is the test set and its documentation.
Finally, in Measurement phase, the test set is executed. The input to this
phase is the software to be tested, and the output is test reports documenting the
execution and measurement activity along with records of any failures or incidents
observed.
97
Table 4.15 below shows the major testing activities in these three testing
phases of STEP. Then, for each of the eight activities is further subdivided into
detailed steps or tasks to be performed to complete the activity.
Table 4.15 : Major Testing Activities in STEP
Phases
Planning
Testing Activities
1. Plan the general approach
2. Determine testing objectives
3. Refine the general plan
Acquisition
4. Design the tests
5. Implement the tests
Measurement
6. Execute the tests
7. Check termination
8. Evaluate results
4.4.3
STEP Architecture
STEP assumes that the total testing job is divided into levels during planning.
A level represents a particular testing environment, such as unit testing usually refers
to the level associated with program testing in a programmer's personal development
library. Figure 4.16 illustrate the project testing architecture in STEP.
For simple projects, such as minor enhancements, the activity timing may
consist of just one or two levels of testing, such as unit testing and acceptance
testing. However, for complex projects, such as a new product development, may
have more levels that consist of unit test, function test, subsystem test, system test,
acceptance test, alpha and beta test.
98
Figure 4.16: Project Testing Architecture in STEP
4.4.4
Timing of STEP Activities
STEP specifies when the testing activities and tasks are to be performed, as
well as what the tasks should be and their sequence, as shown in Figure 4.17 below.
The timing emphasis is based on getting most of the test design work completed
before the detailed design of the software.
Figure 4.17: Activity Timing at Various Levels of Test
99
The trigger for beginning the test design work is an external, functional, or
black box specification of the software component to be tested. For higher test
levels, such as acceptance or system testing, the external specification is equivalent
to the system requirements document. Hence, as soon as that document is available,
test activity can begin on the design of the requirements-based tests.
The test design process continues as the software is being designed and an
additional tests based on the detailed design of the software are identified and added
to the requirements-based tests.
As the software design process proceeds, the
detailed design documents are produced for the various software components and
modules comprising the system.
These documents serve as functional specifications for the component or
module, and thus may be used to trigger the development of requirements-based tests
at the component or module level. As the software project moves to the coding
stage, a third increment of tests is designed based on the code and implementation
details.
The test inventory and design activities at the various levels are overlap. The
goal at each level is to complete the bulk of the test design work as soon as possible.
This helps to ensure that the requirements are testable and well thought out and that
defects are discovered early in the process. This strategy supports an effective
software review and inspection approach.
Figure 4.18 shows the details of activity timing within a given test level. The
test activity starts with developing plans and identifying specific test objectives.
Then, the task continues with test design and the implementation of test plans and
designs. Next, the activity proceeds with test execution and evaluation. Overlap of
activities is possible.
100
Figure 4.18: Details Activity Timing at Various Levels of Test
4.4.5
Elements of STEP
The STEP methodology consists of specified tasks, which is individual
actions, work products, which is documentation and implemented tests and roles to
define responsibilities associated with groups of tasks, as shown in Figure 4.19.
These elements had being packaged into a system with proven effectiveness for
consistently achieving quality software.
Figure 4.19 : Elements of STEP
101
In addition, another aspect of the STEP process model is the set of work
products produced in each phase and activity. STEP uses the word "testware" to
refer to the major testing products such as test plans and test specification documents
and the implemented test procedures, test cases, and test data files.
The word "testware" is intentionally analogous to software and, as shown in
Figure 4.20 below, is intended to reflect a parallel development process. Hence, as
the software is designed, specified, and built, the testware is also designed, specified,
and built.
Figure 4.20 : Parallel, Mutually Supportive Development
Furthermore, these two broad classes of work products support each other.
Testware development, by relying on software work products, supports the
prevention and detection of software faults. In other hand, software development, by
reviewing testware work products, supports the prevention and detection of testware
faults.
102
4.4.6
Test Documentations / Artifacts
STEP uses IEEE standard document templates as a recommended guideline
for document structure and content. Table 4.16 below lists the test documents for
STEP methodology.
Table 4.16 : Template for Test Documents from IEEE Std. 829-1998
Test Documents
Descriptions
Test Plan
Used for the master test plan and level-specific test
plans.
Test Design Specification
Used at each test level to specify the test set
architecture and coverage traces.
Test Case Specification
Used as needed to describe test cases or automated
scripts.
Test Procedure
Specification
Test Log
Used to specify the steps for executing a set of test
cases.
Used as needed to record the execution of test
procedures.
Test Incident Report
Used to describe anomalies that occur during
testing or in production. These anomalies may be in
the requirements, design, code, documentation, or
the test cases themselves. Incidents may later be
classified as defects or enhancements.
Test Summary Report
Used to report completion of testing at a level or a
major test objective within a level.
4.4.7
Roles and Responsibilities
Additionally, STEP also defined roles and responsibilities for various testing
activities.
Thus, the four major roles defined in STEP are Manager, Analyst,
Technician, and Reviewer, which listed in Table 4.17.
103
Table 4.17 : Roles and Responsibilities in STEP
Role
Manager
Description of Responsibilities
Communicate, plan, and coordinate.
Test manager is responsible for providing overall test
direction
and
coordination,
and
communicating
key
information to all interested parties.
Analyst
Plan, inventory, design, and evaluate.
Test analyst is responsible for detailed planning, inventorying
of test objectives and coverage areas, test designs and
specifications, and test review and evaluation.
Technician
Implement, execute, and check.
Test technician is responsible for implementation of test
procedures and test sets according to the designs provided by
the analyst, for test execution and checking of results for
termination criteria, and for test logging and problem
reporting.
Reviewer
Examine and evaluate.
Test reviewer provides review and oversight over all steps and
work products in the process.
4.4.8
Advantages and Disadvantages
STEP is an example of one of the testing methodologies now in place in a
number of organizations. Testing methodologies have matured and achieved proven
success. It is no longer the case that testing or development team have to practice the
art of testing and approach the activity from an ad hoc, disorganized, and
uncontrolled perspective. Thus, testing can be systematic, and appropriate models
such as STEP are available.
disadvantages of STEP.
Table 4.18 summarized the advantages and
104
Table 4.18: Advantages and Disadvantages of STEP
No.
1.
Advantages
Disadvantages
The overall goal of the testing activity
Organization
requires
extra
for STEP, which is prevention oriented, efforts on testing activity because
with a primary focus on finding activity timing in STEP permits
requirements
and
defects overlaps from one level to another
design
through early development of test level of tests.
designs. Thus, major testing activities
are begun early, in example planning
timing and activity timing begins during
requirements.
2.
STEP
using
documents
the
to
IEEE
standard If there is any amendment or new
provides
full changes
of
the
IEEE
documentation, in order to define the documentation standard, STEP
visibility of testing activities.
test documentation also need to
adopt the changes.
3.
This STEP methodology is not a tool Testing can be less effective if the
dependent and does not assume any requirements information of the
particular test organization or staffing, product is ambiguous and not
such as independent test groups. It does clearly defined.
assume a development effort, where the
requirements
information
product
the
and
for
technical
the
design
information are comprehensible and
available for use as inputs to testing.
4.
STEP takes the requirements presented NA.
(requirements-based
inventory)
and
constructs test cases to validate each
requirement. The creation of a group of
test cases with known coverage in
STEP, are mapping to the inventories of
requirements, design, and code of
software products.
105
No.
Advantages
Disadvantages
STEP sets three major objectives, which NA.
5.
are
preventing
defects,
and
defects,
detecting
demonstrating
the
capability of the software. In order to
meet these goals, the test activity is
broken up into levels of testing, which
allow for focused attention toward
specific system characteristics as they
are delivered.
6.
One of the strengths of STEP is its NA.
adaptability to change. This allows
much of the work that is constructed
initially to be
reused during the
remaining life of the system.
4.5
Summary
A summary of the comparison study on these three different testing
methodologies is listed in Table 4.19 below. This comparison study is to define the
test activities during the software development life cycle or phases.
Table 4.19 : Test Methodologies Comparison based on Software Development
Phases
Software
Systematic Test and
Development
Evaluation Process
Process
Phases
(STEP)
(HTP)
Business
•
Develop Plan
Requirement
•
Analyze
Objectives
Formal
Specification
•
Design Test
RUP Test Discipline
•
HeiTech Test
None
Define Evaluation
Mission
•
Verify Test
Approach
•
Plan Test
106
Software
Systematic Test and
Development
Evaluation Process
Process
Phases
(STEP)
(HTP)
Architecture
•
Design
•
Plan and Designs
Detailed Design •
Code and
Implement Test
RUP Test Discipline
•
Implementation •
Validate Build
•
Stability
Execute Test
•
Test and Evaluate
Check Adequacy
•
Achieve
Evaluate
Acceptable
Software and
Mission
Testing
HeiTech Test
•
Design
Test
•
Implement
Test
•
Evaluate
Test
Improve Test
Assets
As a result, based on the summary, all test activities or tasks are performed
started during business requirements analysis. However, from the study conducted in
HeiTech, the initial testing activity such as develop test plan is started after
conformation or sign off the product requirements with the stakeholder. Besides
that, in HeiTech, the Test Analyst and Test Designer roles are only effective after the
requirements documents such as Scope of Work and User Functional Specifications
has been approved by the stakeholder and the development team.
As a summary, a best approach of testing process or methodology can be
comprises to have a good test planning and strategy at early stage of software
development phases, where the defects and risks can be identified earlier. Hence, the
initial testing activities from these testing methodologies can be summarized as
represent an intensive testing for effective testing process. In addition, a good testing
methodology also require best testing types and techniques based on specific
functions, and also accommodate enough testing roles and responsibilities and
advocate early involvement in order to performed successful testing activities.
CHAPTER 5
SHARED BANKING SERVICES (SBS) SYSTEM
5.1
Introduction
This chapter will discuss on the overall of Shared Banking Services (SBS)
system and its characteristics. Generally, Shared Banking Services (SBS) system is
one of banking application system that offers core banking services at another
organization’s branches, which have business deals with the particular banks. The
objectives of this shared banking services application is to accommodate an easiness
of any transaction or activities from core banking services system. Therefore, the
next section will describe the details of core banking services and its relation with
shared banking services (SBS) system.
5.2
Core Banking Systems
Core banking is another way of saying the core functions of a bank. These
functions represent the essential or vital business activities of banking.
The
definition of core banking may have been muddied by the emergence of packaged
computer solutions which combine core banking functions with other elements of a
bank’s operations but at the most basic level core banking manages financial
transactions and their impact on the accounts of its customers [47].
108
A core banking systems often provided other routine maintenance activities
[51]. Therefore, the essential activities of core banking are opening and closing
accounts, calculating interest for both due to the customer and due from the customer
and processing customers’ standing orders.
Besides that, providing account statements and interfacing to outside systems
for making and receiving payments are also considered to be part of the core
business of banking and therefore the legitimate functions of a core banking system.
Thus, some of core banking components in details should include:
•
Interest calculations
•
Processing of cash deposits and withdrawals
•
Processing of incoming and outgoing of remittances and cheques
•
Customer management
•
Customer account management
•
Definition of the bank’s products (product management) including such
things as minimum balances, interest rates and number of withdrawals
•
Interest rate definition
•
Customer’s standing instructions
•
Maintaining records of all financial transactions
In addition, a packaged retail core banking system might include functions
that are closely related to core banking activities that may include functions such as:
•
Processing applications for loans received from branches
•
Branch management, often including facilities for maintaining teller cash
drawers and others
•
Cheque book ordering
•
Internet banking
Generally, banks can have differences in the type of business that they
conduct. They may for example be in retail banking, which is the type of banking
that is seen in the high street, or be in wholesale banking, which is the bank-to-bank
109
market often referred to as the inter-bank market or securities trading, which is the
buying and selling of stock, shares or government debt instruments.
As a result, their core businesses can be considerably different and their core
banking system will therefore reflect the type of business of the bank which such as:
•
Retail banking
•
Commercial banking
•
Wholesale banking
•
Treasury banking
•
Private banking
Consequently, a super breed of core banking systems has emerged which
offer functionality in addition to core banking system which called universal banking
systems. These systems can accommodate combinations of banking services such as
retail, wholesale, private banking and securities trading. Therefore, an advantage of
using a universal system is that data can be transferred easily between the different
modules so a bank can identify customer trends or selling opportunities for example
if a customer has high levels of cash balances and also performs securities trading
then they may be a sales opportunity for private banking services.
However, these systems still has drawbacks such as it is unlikely that a single
vendor is able to offer modules that are ‘best of breed’ in each function. Hence, the
alternative approach is to use a core banking system and augment its functionality by
using ‘best of breed’ packages for the specific functionality needed, for example such
as foreign exchange trading or portfolio management.
More recently, the arrival of Service Oriented Architecture (SOA) has caused
package vendors to redesign their core banking systems. This SOA enables broad
packages to be de-constructed into their constituent parts with each part or function
then offered as a service.
110
For example, a core banking activity of opening a new account could be split
into multiple services, such as one for establishing a customer name and address in
order to check if one already exists for that customer, one for performing a credit
check, one for opening the actual account type needed, one for ordering a ‘new
customer’ pack, one for ordering a plastic card for the account and others. As a
result, this is allows a return to the pure core banking system component of
transaction and account management.
5.3
Shared Banking Services (SBS) at R@PIC
Shared Banking Services (SBS) [6] is a counter-based transaction system
developed on top of a software framework (Hybrid Client) for developing a frontend, transaction based system. This system is the case study system that being
develops in R@PIC. Therefore, this system offers selected banking services that can
be carried out at Pos Malaysia (PMB) branches. This SBS system comprises three
major modules, which are:
•
Transaction system
•
Utilities Functions
•
System Configuration
This SBS system will be installed at PMB branches to enable offerings of
Bank A’s banking services at the selected locations. The end users of this system are
categorized into four, which are:
•
Managers
•
Administrator
•
Supervisor
•
Teller
This system adopted smart client architecture, which this solution makes use
of local PC (Personal Computer) processing power to process Bank A’s transactions.
Therefore, Smart Client architecture combines the benefits of both Thin Client and
111
Rich Client. It offers rich user interface, ease of integrating to local devices and
simple deployment model using ClickOnce technology.
ClickOnce technology will enable centralized the deployment of SBS
modules and updates. A Web Server will act as the deployment server to distribute
SBS to the selected PMB branches. Besides that, the communication between PMB
branches to the servers at PMB Headquarters (PMB HQ) will be done via web
services and to communicate with the backend (host) system, SBS will make use of
Simple Object Access Protocol (SOAP) approach.
In addition, for this services system, a generic of client/server branch delivery
system usually consists of a front-end application and a back-end or “host” system.
Hence, the front-end application is installed at every branch of the organization and
the common roles of this application is to capture transaction data, perform field
level validations, update local database, print and communicate to the back-end
system. These common roles are generic to all organizations that implement a
branch-delivery system. The variations are only at business rules and transaction
flow, which is unique to each business requirements.
Furthermore, in SBS architecture also includes this Device Service Server
(DSS) that was developed to make devices integration and device sharing easier.
Thus, this software provides a set of uniform APIs so that access to various devices
can be done in a unified manner. One of the prominent features of this server
software is its ability to enable integration with various devices for example printers,
RFID readers, thumb print scanners, and MyKad readers.
Moreover, this server software was designed and developed in a very
modular manner so that new servers for newly supported devices can be added easily
and ready to be used by applications. Besides that, another interesting feature of
DSS is it enables web-based application to control local devices in a simple way via
112
Web Service and the sharing of devices activities can be done across different
platforms such as Windows and Linux.
5.3.1
Transaction System
This module consists of several categories, which are Open Account, Cash
Activities, Remittance, Inquiry, Reversal, Passbook Maintenance, Cash Settlement
Total and Others. Table 5.1 explains the transactions listed for each category in
details.
Table 5.1 : Transaction System Categories
Category
Open Account
Cash Deposit and
Payment
Withdrawal
Descriptions
To open new account for different types of account:
•
Individual Savings Account for Passbook
•
Individual Savings Account for Passbookless
•
Joint Savings Account for Passbookless
Daily transactions are:
•
Saving Account (SA) Cash Deposit and Reversal
•
Corporate Current Account (CCA) Cash Deposit
•
Personal Saving Account (PSV) Cash Deposit
•
Loan Repayment
•
Hire Purchase (HP) Payment
•
Credit Card Payment
Daily withdrawal activities for account:
•
Remittance
Saving Account (SA) Withdrawal and Reversal
The list of transactions:
•
Foreign Telegraphic Transfer (FTT)
•
Foreign Worker Telegraphic Transfer (FWTT)
•
Inquire Membership
•
Inquire IC No
113
Category
Passbook Maintenance
Reversal
Descriptions
•
Agent NOSTRO - Philippines
•
Other Countries
•
GIRO Funds Transfer
The list of transactions:
•
SA Passbook Update
•
Change Posting Line
•
Change Passbook Status To New
•
Inquire Passbook Tagging
The list of transactions:
•
SA Cash Deposit-Reversal
•
CA Cash Deposit – Reversal
•
PSV Cash Deposit – Reversal
•
Loan Cash Repayment – Reversal
•
HP Payment via HP A/C No or Vehicle
Registration No – Reversal
•
Credit Card Cash Payment – Reversal
•
SA Cash Withdrawal – Reversal
•
FTT Reversal
•
Foreign Worker TT – Reversal
•
GIRO Funds Transfer – Reversal
Reversal can be done by in two ways:
Inquiry
•
Reversal - By Journal No.
•
Reversal - By Electronic Journal
The list of transactions:
•
Name/IC No Inquiry
•
SA Last Transaction Inquiry
•
SA Activity Inquiry
•
CA Last Transaction Inquiry
•
CA Activity Inquiry
•
Credit Card Inquiry
•
FTT Transaction Detail Inquiry
114
Category
Others
Cash Settlement Totals
5.3.2
Descriptions
•
FWTT Transaction Reference Inquiry
•
FWTT Transaction Inquiry
•
GIRO Transaction Detail Inquiry
•
HP Inquiry
•
Loan Activity Inquiry
The list of transactions:
•
Rounding Mechanism
•
GL Cash Credit and Debit
The list of transactions:
•
Teller Total
•
Branch Teller Total
Utilities
This section describes about SBS utilities that being provided for end user of
this system. Therefore, upon completion of installation, some of these utilities need
to be performed so that the users of the counter system, which are Teller, Supervisor
and Manager, can continue with daily system transaction. Table 5.2 shows the
summary of utilities functions provided in SBS System.
Table 5.2 : Utilities Functions
Utilities Functions
Descriptions
Mandatory Utility
Start of Day
To performed branch start up once a day because branch
cannot start any operations before Start of Day is
executed.
End of Day
Used by teller to complete tasks after the last transaction
of the day is done.
Transmission
Transmission is done to consolidate the branches
Quality Control (QC) file at the Hybrid Server. After
115
Utilities Functions
Descriptions
confirmation of Branch Total is done the system will
automatically transmit the branch QC file to the Hybrid
Server. Upon receiving all QC files from all the PMB
branches the system will generate a consolidated QC file
and send the file to Bank A HQ using File Transfer
Protocol (FTP).
Teller total
Teller total function provides teller total at Bank A host.
Therefore, teller could make comparison with teller total
at Bank A counter system.
Branch total
Branch total function provides branch total at Bank A
host. Therefore, the post master or the supervisor could
make comparison with total at Bank A counter system.
Final branch total
Final branch total function provides the same function
as branch total. The difference is that after performing
final branch total, teller will not be able to perform any
financial transaction.
User Management
Sign-on/off
Forced User Sign Off
Allow user to sign in or sign out from the system.
Auto sign out of user if any Hybrid application has been
idle for more than five minutes.
User ID issuance
Verify user ID validity for branch code and user ID not
exist.
Unlock ID
Password maintenance
Function to unlock user ID.
Verification
on
password
management,
such
as
Password Expired, Change Password, or Password does
not match.
Access level
Provide access level restrict on certain functions for
assignment
each of users.
Stock Control Module
Provide Passbook Control Register that can be
maintained by user.
Transaction Related
116
Utilities Functions
Descriptions
Repeat key (F9)
Teller can perform a repeat function by going to the
selected field and press Repeat button or F9 key, thus
relieving the teller from keying in the same data.
Remote override
Remote override will be triggered by any transaction
that needs approval from supervisor.
For example,
withdrawal for RM5000 and above needs an approval
from a supervisor.
Electronic Journal and
All transactions will be updated in an Electronic Journal
Viewer
for tracking and recovery exercises. Teller will be able
to do search on the journal and view activities and
transactions posted for the day. This is really helpful to
trace any abnormality if problems such as black-out or
system down occur.
Calculator function
Enables a teller to do calculations and transferred
relevant data to the respective fields.
Successful and
unsuccessful
transaction update
This is to enable the system to perform reversal of those
successful as well as unsuccessful transactions.
For
those unsuccessful transactions that is updated at the
host but the local pc get a message of ‘host timeout’
and not updated at the local pc, the system still allow the
transaction to be reversed.
Reversal
The system enables financial transaction such as
withdrawal, deposit, and remittance to be reversed after
successfully updated to host by referring to the
transaction’s journal number.
Foreign Exchange Rate
System shall download rate provided by Bank A for
remittance purpose. System shall provide utility to view
the downloaded rate.
Passbook Control
Register
This utility allows supervisor/manager to control
passbook stock.
Reactivate Online
Manager shall perform Reactivate Online Posting to
Posting
restart the system if a transaction needs to be performed
117
Utilities Functions
Descriptions
after branch has close and perform balancing.
Reference Table and
This utility is for the user, either Bank A administrators
Devices files
or PMB administrators to maintain reference tables and
Maintenance
devices configuration files.
Reports
Daily Cash Balance
Report
This report provides a summary of individual teller
cash-in, cash-out, and cash-in-hand summary.
Teller Transaction
Report
This
report
provides
Deposit/Payment,
a
summary
Remittance,
and
of
teller
Withdrawal
summary.
Teller Activity Report
Teller report produces detail transactions done by the
teller.
The report can be used to make comparison
against teller total at Bank A host.
Activity Report
This report lists detail financial and non financial of
each teller.
Reversal Transaction
This report lists detail reversal transaction of each teller.
Report
Total Summary Report
This report provides a summary of each teller cash-in,
cash-out, and cash-in-hand summary for the branch.
5.3.3
System Configuration
This module provides functions for SBS System Configuration, such as
Branch Configuration, Manager Configuration, User Profile, Table Maintenance,
View Archive, Administrator Configuration and others.
Hence, every function
provided user accessibility to add new, modify or update and delete the record.
Table 5.3 below shows the summary for SBS system configuration functions.
Table 5.3 : SBS System Configuration Functions
Category
Descriptions
118
Category
Descriptions
Branch Configuration
Administrator can perform this configuration from Bank
A HQ in order to add new branch, update or delete
existing branch, and deactivate or reactivate branch.
Manager
Administrator can perform this configuration in order to
Configuration
add new manager, update or delete manager profile. For
every creation or modification will be update in
Electronic Journal and notification email will be sent to
particular manager.
User Profile /
This function is for Administrator to manage his/her
Administrator
profile and password, such as change or reset password.
Configuration
For reset password, only HQ Administrator can reset
password of Branch Administrator.
Table Maintenance
Allows Administrator to maintain the table information
based on current technical specification. Administrator is
allowed to Add, Update or Delete table based on current
requirements.
View Archive
This function is provided for HQ Administrator to view
Electronic Journal that is kept for two years, for certain
reason. Searching options are provided, such as date,
time, journal number, successful status, account number
and also transaction amount.
5.4
Testing Characteristics for SBS System
Banking IT systems are critical to the competitiveness of banks, owing to
their sheer size, the number of transactions they facilitate, and the wide range of their
product and service offerings. These banks also begin to expand rapidly and
customer demands for centralized operations become louder, the need to integrate the
IT systems of new branches and subsidiary banks into the main IT stream is
becoming critical [52].
119
Shared Banking Services (SBS) is about knowing customers' needs and
providing them with the right banking transaction at the right time through the right
channels like 24 hours a day, 7 days a week. Hence, the best-of-breed solutions for
credit processing, document management, core banking transactions, and knowledge
management are required to be clearly identified by the development team and
stakeholder of the system.
The banks also like to integrate a whole range of financial products covering
all the foreign branches of the bank. The system is required to have external and
internal interfaces to functional sub systems such as Foreign Exchange, Money
Markets, Funds Transfer, Profitability Analysis and Credit. Hence, the customer was
looking for better adaptability, stability and reliability of this Shared Banking
Services (SBS) system.
Banks and financial institutions are sensitive to the knowledge that a single
error can result in loss of repeat business, revenues and reputation [53]. They realize
the importance of testing and re-testing systems, processes, protocols and products.
The focus acquires are more importance, when it comes to banking application
domain process.
Software testing is a very exacting job, making it imperative for this service
to be managed by dedicated experts with the necessary domain knowledge. Banks
and financial institutions today face an environment marked by rapid mergers,
acquisitions, rising customer expectations, increasing regulatory requirements and
fierce competition. In this dynamic scenario, creating, leveraging and retaining value
from customer relationships and maintaining profitably pose crucial challenges are:
•
Applications are complex in nature
•
Carry Legacy Systems
•
Involves large volumes of data
•
Creation of business scenarios for complete test coverage
•
Transactions needs to be secure
•
Ensuring data integrity
120
Establishing right software testing processes is critical for any organization
that wants to improve quality, reduce time-to-market, and manage costs [54].
Mostly, software vendors often focus on software development activities, which
leave them with very little time to develop testing competencies, with lack proven
processes and methodologies especially in testing for banking application domain.
Therefore, to test the banking application whether for functionality or any
other testing, one should have enough banking knowledge to know how the system
will behave with respect to end users. Next subsection will discuss on four defined
characteristics of SBS system as shown in Figure 5.1 that required comprehensive
testing, which are:
•
Functionality test
•
Performance test
•
Security test
•
Automation test
Figure 5.1: SBS Testing Characteristics
121
5.4.1
Functionality Testing
Functional testing service aims to find how well the system executes the
functions it is supposed to execute-including user commands, data manipulation,
searches and business processes, user screens, and integrations.
Good testing
procedures need to covers the obvious surface type of functions, as well as the backend operations. The individual components and processes required to be tested
before testing the entire system, where the industry standard defect tracking tools to
track defects in the system and deliver detailed test metrics at the end of each test
cycle can be utilized.
Besides that, based on the product functionality testing cycle, regression
testing can be conducted, which ensures the proper behavior of an application after
fixes or modifications are made to the system or its environment. Table 5.4 lists
several challenges and solutions that require the testing team to conduct the
functional testing for banking application or SBS system specifically.
Table 5.4: Challenges and Solutions for Functional Test
Challenges
Client
requirements
increasingly
are
vertical
Solutions
becoming An
end-user focused approach
focused; functional
testing
resulting
in
to
an
demanding strong domain expertise to optimized view of the functionality
ensure quality design and optimum testing cycle. A similar approach also to
coverage with minimized risk.
Module, Integration, System and UAT
testing.
Conduct end-to-end software functional
testing
Module,
services
and
Integration
include
and
also
System
Testing.
Greater degree of standardization / Performed User Acceptance Testing
productization with shorter planned (UAT)
release cycles.
services
for
end-user
organizations and system integrators,
122
including on-going regression testing of
planned and maintenance releases.
Use approach to test design is based on
"customer experience cycle" and not on
product or application flow.
Solution complexities involve high Provides data migration testing to
degree of integration across multiple ensure accurate and complete migration
products.
of data from legacy systems.
Proprietary
domain
frameworks
developed for the different sub-verticals
encapsulating deep understanding of the
domain as well as powerful design
techniques like 'Orthogonal Arrays' resulting in improved testing coverage.
5.4.2
Performance Testing
Performance testing is focus on ensuring the compliance of a system or
component with specified performance requirements facilitating conformance to high
service level goals and faster time to market. An effective extendable, repeatable,
iterative performance testing practice is in place with well defined guidelines that are
integrated into the SDLC to measure and monitor the application performance.
Performance testing spanning load testing, volume and stress testing requires
a comprehensive strategy to address the challenges like:
•
Constantly changing software applications with shorter release cycles
•
Ever increasing user base and access channels
•
Enhanced hardware capabilities resulting in more complex deployment
architectures
123
•
Demands a healthy mix of long-term assessment and planning coupled
with the ability to address problems and bottlenecks in the short term
Predicting performance capability of banking solutions is essential to succeed
in this competitive market. Performance testing services help to manage risk with
developing or deploying business critical systems, by clearly determining the scope,
complexity and size of the load and the test architecture is used for test execution.
Several performance testing services that can be performed for banking application
like SBS system are:
•
Load Testing
•
Stress/Scalability/Capacity Testing
•
Spike and Synchronization Testing
•
Failover and Resilience Testing
•
Performance Benchmarking
•
Performance Diagnostics Testing
•
Performance Tuning
•
Soak and Reliability Testing
•
Network Bandwidth Verification
•
Application Performance Monitoring
Besides that, several criteria or metrics of the system performance are
required to record, analyze and report are as followings:
•
Connect Time
•
HTTP Request Time
•
Transaction Response Time
•
Throughput
•
Web Page Break Down
•
Database Resources
•
Web Server Resources
124
5.4.3
Automation Test
Manual Testing requires operator input, analysis or evaluation throughout the
entire test cycle with emphasis on evaluating correctness and ascertaining test status.
Basically, manual testing framework gives the tester the flexibility to perform adhoc/ random tests that help detect real user bugs.
Meanwhile, Automation Testing reduces the test cycle time since it involves
very minimum operator input, analysis or evaluation leading to increased test
development time, enhanced test coverage quality, fast defect detection and
correction. Test cases for automation are prioritized based on business risk and
application complexity and accentuate, in order to improve the efficiency of the
testing process.
Table 5.5 lists several challenges and solutions regarding to
automation testing for banking application.
Table 5.5: Challenges and Solutions for Automation Test
Challenges
Solutions
Dynamic business needs requiring Provide Software Test Automation strategy,
constant enhancements / upgrades automated testing tool selection and QA test
to software solutions.
automation framework definition.
Provide Testing professionals proficient in
Mercury, Rational, Segue and other leading
industry standard test automation tools.
Enhance experience in different test and
defect
management
tools;
including
integration of the same to functional
automation tools.
Greater product driven solution Provide automation pack creation and
focus with multiple releases in a execution; with an integrated automation
year.
approach that covers test planning and
management, test scripting and defect
management.
125
Enhance experience in product environment
involving multi product suites with regional
variations and multiple planned releases in a
year.
Ever shortening software testing QA Testing Automation pack maintenance
cycle times coupled with the need with strong configuration management and
for enhanced regression coverage.
version control processes.
Process consulting practice integration to
offer end-to-end automation solutions that
also address process improvement initiatives
necessary to leverage QA test automation
benefits.
5.4.4
Security Test
Banking application customers expect quick access and tight security, and
have no patience for delays or downtime of the system. A solution that could handle
the testing challenges in order to deliver a secure and satisfying user experience on
the system is important. To ensure that the security infrastructure is solid, the testing
solution needs to evaluate overall performance, supply a high degree user and
network realism, and deliver the ability to test with both normal and malicious
traffic. In addition to providing comprehensive testing, it should also be easy to set
up and use.
Therefore, the software security testing service should involves tests targeted
to break the security built into the product. Scenarios where the application fails or
behaves abnormally, and can withstand the attack are identified and verified. Some
various attack scenarios, which include buffer overflows, memory leaks, reverse
engineering, license evasion and registry tampering (operating system specific) are
required to be defined. This security tests are conducted in a state-of-the-art security
126
test room, equipped with the requisite tools and malware and comprehensive testing
approach is adopted with a clearly defined methodology.
The security testing cycle for software begins with the scope definition and
an understanding of customer expectations, followed by multiple phases like
analysis, test planning, execution and reporting. A detailed analysis is carried out on
the application to identify relevant scenarios.
Tests are performed simulating
customer end scenarios, including testing the ability for similar applications to
operate securely. For SBS system, security tests are more required to focus on sign
on authentication and transaction flows with encryption approach.
Getting a security test done for a banking application help improves the
software quality and aids customers by reducing development and maintenance costs
as the system is shipped with minimal security issues. Besides that, the security
flaws created during the system’s development can be discovered earlier.
5.4.5
Advantages
A focus on all technologies related to the characteristics of core banking
applications or SBS system and their integration and interfaces with other banking
applications is important. The SBS application required managing the technology
related to checking accounts, saving and certificate of deposits, and funds transfer.
Therefore, a good practical approach of software testing on this banking
product lead to several advantages from business perspective, such as:
•
To protect from unauthorized and fraudulent users
•
To support multilingual, multicurrency and global operations
•
To ensure efficient data warehousing to support management in decision
making
127
•
To handle high volume of transactions from various channels such as
ATM, Internet and telecommunication devices
5.5
•
To leverage risk management, business continuity and disaster recovery
•
To meet stringent government regulations and norms
•
To determine the capabilities of the application when using over load
SBS Testing Implementation at R@PIC
Figure 5.2 below illustrate the SBS testing process that being implemented at
R@PIC that comprise of four main activities, which are Plan Test, Design Test,
Implement Test and Evaluate Test. This figure also shows the input and output
documents that required during this testing process.
Figure 5.2: SBS Testing Implementation at R@PIC
128
At system requirements phase of SBS system, a Scope of Work document is
proposed to the client. This document comprises all objectives, scope and activities
that need to be performed for this project. This document in general also defined the
test planning and strategy that later can be carry out through the project development.
Furthermore, all system requirements for SBS system have been documented
in User Functional Specification (UFS) that consists of three modules, which are
Transaction System, Utilities and, Installation and System Configuration. These
documents are more likely as user manual, where test case design only can depends
on the system functionality test approach.
5.5.1
Plan Test
The first stage in SBS testing implementation is test strategy and planning. In
this stage, a Test Plan is required to be produced, in order to make clear tactic on
how the testing is to be performed. Generally, test planning and strategy is focused
on what, how and when is the testing activities to be performed. Therefore, this test
planning will defined several criteria such as test objective and scope, test approach,
test duration and venue, roles and responsibilities, levels of testing and types of
testing.
Hence, the test planning for SBS system has followed an established HeiTech
Defined Test Plan Guideline. A Master Test Plan has been prepared for this project
and submitted to the stakeholders. However, due to certain reason, another Test Plan
is prepared, which follow the stakeholder’s Test Plan template. All these test plans
are clearly defined the testing strategy and activities to be carried out during testing
implementation on this system.
However, the preparation of this Test Plan is conducted after the development
team and stakeholder already endorse all the requirements documents. Besides that,
the test analyst and test designer roles are still not effective during this requirement
129
stage, because only project manager and software developers that involve in this
requirement discussion with the stakeholder.
5.5.2 Design Test
In SBS system, the test design is classified into three criteria which is
software, hardware and system integration between both. Therefore, in terms of
software, tests will cover for all three modules or major parts of SBS system, which
are Transaction System, Utilities Functions and System Configuration.
Then, for hardware and system integration, tests was design to focused on
Device Service Server (DSS), which connects to Printer and Host Server and its
performance towards Hybrid Client application. However, the test design for SBS
system testing is only focus on functional testing approach of three modules of SBS
system.
Then, the real test design is drawn into specific documents, which are test
cases. The test design is the most critical one, which decides the test case
preparation. Hence, the test designs portable to assess the quality of testing process.
Test cases are design based functional requirements that stated in UFS documents.
Therefore, the test cases that being prepared covers all validation of each functions
and flows of the specific modules.
5.5.3 Implement Test
SBS system is currently in test execution stage, which all testing levels are
carried out step by step. For SBS system, levels of testing that being defined in Test
Plan consists of Unit Testing, Integration Testing, System Testing and Acceptance
Testing. Hence, the developers are responsible for the Unit Testing activities. Next,
at Integration and System Testing, the developers, tester and project manager is taken
130
the responsible to perform the testing. Then, for Acceptance Testing, the developers
and tester are conducting testing at the simulation environment, which similar to the
production environment.
5.5.4 Evaluate Test
In this SBS system, development team performed integration and system
testing modules by modules, which is if bugs found, they fixed the infected modules
and continue testing on another part of modules.
Therefore, all bugs found is
reported into Defect Logs, which follows HeiTech Defined Document.
At the end of each levels of testing, a Test Report will be prepared in order to
assess the effectiveness of testing implementation for this project. However, due to
the time constraint for this industrial training, involvement in Test Report preparation
is only performed by Tester Leader. As a result, Test Report for SBS system will not
be included in this report.
As SBS testing process is an iterative activities, which need to be carried out
until whole parts of product is be released into the productions area. Therefore, the
next stage will come in is software maintenance which comprise a lot of
modifications and changes. Hence, a regression testing is the next focused for this
testing process, which can be continues by R@PIC team.
CHAPTER 6
CUSTOMIZED SOFTWARE TESTING PROCESS
6.1
Issues with Software Testing Implementation at R@PIC
Software testing is a process of analyzing the effectiveness of software.
Testing has two objectives in order to determine if the software performs as
expected, which are:
i.
To identify the differences between existing and expected conditions,
which this differences are sometimes called ‘bugs’, but it now connotes a
defect in the performance of either hardware or software.
ii.
To enable the expected performance of software to be determined before
it is used for business purposes and this type of testing is to determine
whether the right mix of software, hardware and personnel can satisfy the
business needs.
However, testing implementation for SBS at HeiTech less effective in several
aspects such as late preparation of test planning and strategy, that leads late
involvement of testing team into the project. Besides that, testing approach or types
that performed for SBS system only cover on functionality of the system. Based on
the study conducted during testing implementation on SBS system, several important
testing types or characteristics are not covered in the testing, which performance
testing, security testing and also no tool are provided in order to conduct any
automation testing.
132
In addition, during software development of this banking application, there
are no reviews conducted with the testing team or stakeholder, in order to get fully
information of this application. This practice may lead several others drawback for
post-implementation if several issues, such as incorrect requirements, faults system
design and other happened without early detection of these defects.
6.2
Developing Customized Software Testing Process (CSTP)
As software testing process is important in software development activities,
and SBS system is also important for core banking application, an intensive software
testing process is required to be developed and provided into this organization.
Therefore, the next subsection will discuss the summary of every comparison study
that being conducted previously and several testing characteristic for SBS system.
Finally, a proposed Customized Software Testing Process (CSTP) is clearly defined
based on these comparison studies.
6.2.1
Main Phases for Testing Correspond to SDLC
The Test Models that previously studied, which are V-Model, W-Model and
Butterfly Model are suggested that testing activities or process must start at the early
stage of software development life cycle, which is during business requirements and
analysis phase. Figure 6.1 shows the summary of main phases for testing activities
that correspond to software development phases.
133
Figure 6.1: Main Phases for Testing Correspond to Software Development Phases
6.2.2
Main Activities of Software Testing Methodologies
This comparison study is conducted on three different testing methodologies,
which are Systematic Test and Evaluation Process (STEP), RUP Test Discipline and
HeiTech Test Process and its activities summary shows in Figure 6.2. From this
study, several main activities for software testing process that can be performed
during the software development phases are being defined.
134
Figure 6.2: Main Activities of Software Testing Methodologies
6.2.3
Main SBS Testing Characteristics
Shared Banking Services (SBS) is about providing customer with the right and
secure banking transaction at the right time through the right channels. Hence, the
best-of-breed solutions such as cash activities, credit processing, document
management, others core banking transactions and knowledge management are
required to be clearly identified by the development team and stakeholder of the
system.
The testing focus acquires are more importance, when it comes to banking
application domain. Banks and financial institutions are sensitive to the knowledge
135
that a single error can result in loss of repeat business, revenues and reputation. They
realize the importance of testing and re-testing systems, processes, protocols and
products. Therefore, four of define characteristics of SBS system are shown in
Figure 6.3 below.
Figure 6.3: Main SBS Testing Characteristics
6.2.4
Proposed Customized Software Testing Process (CSTP) for SBS
In the whole development process, testing consumes highest amount of time.
However, most of the developers in organization oversee this issues and therefore
testing phase is generally abandoned. As a consequence, erroneous software is
released.
Hence, one of good approach to improved product quality is provide a good
testing methodology that can be implemented at early phase of software
development.
Figure 6.4 shows testing methodologies comparison with the
Customized Software Testing Process (CSTP) that is proposed in this project.
136
Figure 6.4: Software Testing Methodologies Comparison
Figure 6.5 illustrate the details of the Customized Software Testing Process
(CSTP) for banking application, such as Shared Banking Services (SBS) system,
with regard to the software development phases.
137
Figure 6.5: The Customized Software Testing Process (CSTP)
6.2.4.1 Requirements Reviews
138
Normally in many organizations nowadays, developers itself take part in the
requirements stage. Thus, a tester should also be involved in this stage, especially
for product-based organizations, since a tester can thinks from the user side whereas
a developer cannot. All the requirements should be documented properly for further
use and this document is called normally known as Software Requirements
Specifications or Business Requirements Specifications.
For banking application testing, early involvement of testing activities such as
requirement reviews can help to minimize risk. There are several common issues
that can be identified in a Requirements Review, such as:
o
Insufficient detail in the current requirements to manage the project to
a successful conclusion
o
Vague requirements which make it difficult to create a realistic
project estimate
o
Critical requirements that are not captured in the current requirements
o
Incomplete requirements making the creation of test cases and designs
difficult
Requirements Reviews [55] is when a group of people read and analyze the
requirements, look for problems, meet and discuss the problems and agree on actions
to address these problems. Figure 6.6 show the process of Requirements Reviews
and Table 6.1 describe the details of each task.
139
Figure 6.6: Requirements Reviews Process
Table 6.1: Details of Requirements Reviews Process
Tasks
Plan review
Descriptions
The review team is selected and a time and place for the
review meeting is chosen.
Distribute documents
The requirements document is distributed to the review
team members.
Prepare for review
Individual reviewers read the requirements to find
conflicts, omissions, inconsistencies, deviations from
standards and other problems.
Hold review meeting
Individual comments and problems are discussed and a set
of actions to address the problems is agreed.
Follow-up actions
The chair of the review checks that the agreed actions
have been carried out.
Revise document
The requirements document is revised to reflect the agreed
actions. At this stage, it may be accepted or it may be rereviewed.
140
6.2.4.2 Test Plan
A successful work always contains a good plan, in terms of achieving specific
goals. Hence, almost people believe that without a good plan, no work is a success.
As a consequence, software testing process also requires a good plan. Test plan
document is the most important document that brings in a process oriented approach.
Moreover, a test plan document should be prepared earlier during the requirements
stage of the project, in order to start identifying the best test strategy and approach
for further testing process.
Generally, the test plan document consists of the following information that
can help later for performing software testing activities:
•
Total number of features to be tested
•
Testing approaches to be followed
•
The testing methodologies
•
Number of man-hours required
•
Resources required for the whole testing process
•
The testing tools that are to be used
•
The test cases
In addition, during this testing planning, the test strategies which are blackbox testing and white-box testing need to be defined. Besides that, several test
approaches such functional and non-functional testing also required to be performed
for this SBS banking application system.
6.2.4.3 Test Design
Besides good test planning, a good test design is also one important aspect for
successful software testing. Test design is done based on the requirements of the
project. Test has to be designed based on whether manual or automated testing is
done. Therefore, for automation testing, the different paths for testing are to be
141
identified first and an end to end checklist has to be prepared covering all the features
of the project.
In addition, the test design is represented pictographically of software testing
activities.
This test design involves various stages that can be summarized as
follows:
•
The different modules of the software are identified first
•
Next, the paths connecting all the modules are identified
As banking application is a risky system, which provides daily transaction
and usage by many users, performance testing is one of the important types of testing
that need to be considered during this test design stage. Therefore, application and
network performance are the best testing strategy in order to improve the
performance of SBS application.
Moreover, to conduct successful performance
testing, various tools that available in market today can be utilized for this testing
activity.
Apart from performance testing, conducting security testing for banking
application system like SBS system can help to improve the reliability of the system.
Most of banking application either counter-based system or online system requires
login id and password management, in order to protect the data integrity. In SBS
system, user authentication and transaction activities are the critical parts that need to
be more secure and reliable to the customers.
6.2.4.4 Design Reviews
In a good practice of system development process, the need of software
design review is important, in order to perceived good software quality. Nowadays,
mostly software design is done in systematical manner or using the UML language.
142
Therefore, all parties involved in the project can review and understand the system
design. Besides that, testing teams and quality assurance committee also can do the
reviews over the design and can suggest for any ideas or the modifications that are
needed.
Design Review Process is a mechanism for ensuring design standards,
alignment, and diligence throughout the course of the product design process.
Standards are to ensure that designs meet appropriate standards for consistency,
accessibility, usability, download time, and others. Alignment are to ensure that
designs meet business goals, designs can be well integrated into the brands on which
they will be deployed and to minimize late-stage changes to product requirements
and concepts.
Besides that, diligence are to realize maximum value from early-stage design
methodologies, increase accountability and clarity of action plans by keeping
minutes of each design review and involve people outside the design team at
appropriate junctures. Hence, design reviews have several objectives such as:
•
Provide independent and critical assessment
•
Identify issues and resolve them off-line
•
Assure that interfaces are well understood
•
Promote communication among participants
•
Formalize and document accomplishments
•
Promote confidence in accomplishments
•
Signify that a particular accomplishment is completed
•
Formalize the expected date of the accomplishment
Here are steps in the Design Review Process:
i.
Conceptual Design Preview
This step is to ensure that the initial design direction maps to the
business goals and user needs, and to review the design for alignment
143
with broader initiatives and possible integration with other product
designs.
ii.
Design Standards Checkpoint
This step is to confirm that the design meets required design
standards.
iii.
User Interface Design Review
This step is to review specific interaction behaviors and to provide
guidance to designers on problematic issues.
iv.
Creative Direction Review
This step is to ensure that the visual design maps to the creative
direction of the project.
6.2.4.5 Test Cases Preparation
Designing good test cases is a complex art [56]. Generally, test cases should
be prepared based on the following scenarios:
•
Positive scenarios
•
Negative scenarios
•
Boundary conditions and real world scenarios
A test case is a set of conditions or variables under which a tester will
determine whether a software system meets the specifications. A test oracle is the
mechanism to determine whether a software program or system has passed or failed
in certain test conditions. An oracle also could be identified from the requirements
or use cases. Therefore, it may take many test cases to determine that a software
program or system is functioning correctly.
144
Test cases are often referred as test scripts, particularly when written. Then,
these written test cases are usually collected into test suites. A test case may include
the followings:
•
The purpose of the test.
•
Special hardware requirements, such as a modem.
•
Special software requirements, such as a tool.
•
Specific setup or configuration requirements.
•
A description of how to perform the test.
•
The expected results or success criteria for the test.
Organizations may take a variety of approaches to documenting test cases;
these range from developing detailed, recipe-like steps to writing general
descriptions. In detailed test cases, the steps describe exactly how to perform the
test. In descriptive test cases, the tester decides at the time of the test how to perform
the test and what data to use.
Hence, most organizations prefer detailed test cases because to determine
pass or fail criteria is usually easier with this type of case. In addition, detailed test
cases are reproducible and are easier to automate than descriptive test cases. This is
particularly important if testers plan to compare the results of tests over time, such as
when they are optimizing configurations.
In addition, test cases should be written by a team member who understands
the function or technology being tested, and each test case should be submitted for
peer review. Hence, test cases preparation for SBS system can be based on various
types of testing such as functional, usability, security and performance testing,
which are the most important criteria for banking application testing.
145
6.2.4.6 Code Reviews
Another good practice is performing code reviews. This code reviews are
more similar to unit testing. Therefore, the testing team or tester should be ready to
do unit testing for the code, once the code is ready for release. Tester must be ready
with his own unit test cases.
In current practice, a developer always do unit testing themselves. However,
a tester must also performed code reviews or unit testing, in order to confirm no error
or defects before the software can be released. Sometimes, the developers may
oversee some of the minus mistakes in the code, which a tester may find out.
Code reviews have two purposes, which are the first purpose is to make sure
that the code that is being produced has sufficient quality to be released. In other
words, it's it is to check whether the code should be promoted to the next step in the
process, because code reviews are very effective at finding errors of all types,
including those caused by poor structure, those that does not match business process,
and also those have simple omissions. Therefore, code reviews is good for code
quality checking.
Next, the second purpose of code review is as a teaching tool to help
developers learn when and how to apply techniques to improve code quality,
consistency, and maintainability.
The developers have the opportunity to learn
different and potentially better ways of coding after went through thoughtfully
evaluating code on a recurring basis.
However, code reviews often start off on the wrong foot because they are
perceived as an unnecessary step that has been forced upon the developers or, in
some cases, evidence that management does not trust the developers. Conversely,
neither of these perspectives is accurate.
effective way to minimize defects.
Code reviews are a proven to be an
146
Code reviews is about a time of great rejoicing, when a team of people who
write code get together and constructively review each other’s work in order to share,
learn, and teach better programming habits and techniques. Thus, spending time on
code that is just going to change or does not work is a massive waste of time.
The entrance requirements for a code reviews are:
•
Code should compile without errors or warnings according to coding
standard.
•
Code should be already be integrated with its parent branch.
•
Code should be fully unit tested.
•
Code should already pass the system tests where possible.
A good way of reducing the conflict in a code review is to create a checklist.
The list becomes a contract between the developers on the team. If everyone agrees
the items on the list then people have less ground for complaint when someone
points out things that do not meet the standards in the checklist. Secondly it helps
reviewers stay on track and keeps reviews short and sweet. This stops endless time
being devoted to reviews when reviewers keep looking until they find something.
Consequently, for SBS system, code reviews is one of effective process for
identifying defects as early as possible before the application release to the
production area. Most developers are assigned for different segments or modules of
the application, therefore, conducting this code reviews can improve the
understandability of the developers on the specific functions of this banking
application.
6.2.4.7 Test Execution and Bugs Reporting
After tester team has designed the test cases, test execution can start begin as
early as possible regarding to the available modules. When conducting tests, the
147
tester must perform each test as described in the test case, evaluate the test results,
escalate problems that arise until they are resolved, and document the test results.
In addition, the tester also needs to follow the written test cases carefully in
order to define the accurateness of assess results.
Besides that, the team members
need to know exactly which steps the tester took and the exact sequence in which
those steps were performed for reproducing a test to compare results over time.
Next, when a test is complete, the tester must evaluate the results against the
criteria in the test case to determine if the test passed or failed. Hence, not all tests
fail because there is a problem with the system implementation, but, the tests can fail
because there is a problem with the test itself, either the problem come from the test
simulation setup, or with the proposed design. Therefore, if one of these problems
causes a test to fail, the tester should take the appropriate measures to remedy it this
situation.
Normally, test execution is conducted based on levels of testing, which start
with Unit Testing, Integration Testing, System Testing and User Acceptance Testing.
For regression testing, it will be conducted if the application arrives at maintenance
phase, which is not covered in this report.
The test reports should be documented properly and the bugs have to be
reported to the developer after the testing is completed. All bugs or defects found
need to be documented in Defect Logs or any similar bugs reporting. Then, a test
report is prepared for further reviews between the developers and stakeholders.
CHAPTER 7
CONCLUSION AND RECOMMENDATION
7.1
Recap
Software testing process plays an important role in standard software
development phases.
This process consists of a few basic activities, such as
developing test plan and strategy, test design, test execution and evaluation of test
result. However, for a specific domain, like banking application, that might have
different characteristics from other software applications, a customized testing
process is required in order to ensure the correctness and completeness of the test
result.
Therefore, this project is proposing a Customized Software Testing Process
(CSTP) for the Shared Banking Services (SBS) system. This banking application
was developed by R@PIC, HeiTech.
Firstly, the study was conducted on several
testing model, which are V-Model, W-Model and Butterfly Model, in order to
identify some issues on initial testing activities that correspond to software
development phases. From this study, all of the testing model suggest that testing
tasks should be started earlier, which during business requirements gathering and
analysis. Therefore, a basis software development phases is clearly identified.
149
Besides that, the study continues for three testing methodologies, which are
HeiTech Testing Process, RUP Test Discipline and Systematic Test and Evaluation
Process (STEP), were compared based on criteria such as main activities, roles and
responsibilities, artifacts and level of testing. From this study, a summary on main
activities that correspond to software development phases that being rectify earlier
are visibly acknowledged.
Next, to propose a customized software testing process, a study on several
aspects of SBS system is needed. Thus, the study is conducted to identify its specific
modules and characteristics that different from other software applications. From the
result, four main testing characteristics that required for implementing testing on
SBS system are identified, which functionality test, performance test, security test
and automation test.
Finally, from all comparison result and summary, a proposed customized
software testing process for SBS is successfully produced based on all criteria that
being studied.
7.2
Project Outcome
Software testing is an important technique for the improvement and
measurement of a software system’s quality. Any approach to testing software faces
essential and accidental difficulties. Indeed, the construction of the needed test
programs is a major intellectual effort [57]. Hence, software testing is always focus
on the important part of system which is on core functionality that includes the parts
that are critical or popular, before looking at the other features, such as interfaces.
Thus, concentration on the application’s capabilities in common usage situations
before going on to unlikely situations is a proven strategy to produce good software
quality.
150
In addition, software testing normally involves the stages of test case
specification, test case generation, test execution, test adequacy evaluation, and
regression testing. Therefore, each of these stages in the software testing process
plays an important role in the production of programs that meet their intended
specification. Hence, while software testing is not a silver bullet that can guarantee
the production of high quality applications, theoretical and empirical investigations
have shown that the rigorous, consistent, and intelligent application of testing
techniques can improve software quality.
As a result, the implementation of software testing process for SBS system
has given a lot of knowledge and experiences about shared banking services
application and also improve skills on software testing activities. Moreover, this
industrial training exposed a good experience on working environment in IT-based
Company like HeiTech.
Furthermore, a bunch of knowledge on software testing process,
methodology, organization testing framework, activities and techniques also has been
gained from these five months industrial training. Therefore, a better approach of
software testing process for shared banking services application has been proposed in
this project. This approach is more likely suitable for testing banking application.
For this reason, a better approach for software testing process of SBS system
encompasses several stages such as testing start at requirements stage,
comprehensive test plan and test design, conduct design reviews and code reviews,
effective test cases preparation, performed test execution for each levels of testing,
prepared test reports and bugs reporting, and finally reworking on patches, which
requires regression testing as software then can be released to production area.
151
7.3
Future Study
Software testing process identifies what the test activities to carry out and
when, which what is the best time to accomplish those test activities. Hence, even
though testing may differs between organizations, there is still a testing process that
need to be performed has the basic phases such as test planning, test design, test
execution and test evaluation.
Furthermore, software testing has its own process or life cycle that intersects
with every stage of the software development life cycle.
Thus, the basic
requirements in software testing process are to control or deal with software testing
such as manual testing, automated testing and performance testing.
Consequently, several recommendations over these project that can be
include for further study are performed more details research on banking application
testing either for testing framework, techniques or strategies. Besides that, this
research project can be further carried out based on various software testing tools
available and then recommend the most suitable of performance testing tools for
banking application. In addition, there is also recommendation for future research on
security testing for banking application as this can help to improve the reliability of
the application.
7.4
Summary
As a summary, from this project, many knowledge and experience in
Software Engineering discipline especially in Software Testing is gained.
In
addition, from this industrial attachment, new experiences also gained in real
working environment. Hence, some expectations from this industrial practice are to
learn how to adapt with real working environment which need to follow their own
guideline and standard in software development approach, and also continuously
152
improving knowledge and skills in order to be successful in this software engineering
fields.
Additionally, as software testing is nowadays plays as an important phase or
steps in every software development project, a good practice and best approach of
software testing process can helps to improve the product quality. Moreover, there
are a lot of testing methodology, framework and approach with several of testing
techniques and types, that can be use and streamline based on the specific project
domain. Hence, in banking application domain, there are also several independent
testing organizations that already establish a good testing methodology, which helps
banks and any financial organizations to improve their services.
Consequently, the characteristics of a good software testing process can be
summarized as follows:
i.
Testing must be timely
Any system without a tight feedback loop is a fatally flawed
system. Test early, test often. Testing is that feedback loop for
the software development process. Therefore, it must begin in the
initial phase of the project, which is when objectives are being
defined and the scope of the requirements are first drafted. In this
way, testing is not perceived as a bottleneck operation.
ii.
Testing must be effective
The approach to test-case design must have rigor to it. Testing
should not rely solely on individual skills and experiences.
Instead, it should be based on a repeatable test process that
produces the same test cases for a given situation, regardless of
153
the tester involved. The test-case design approach must provide
high functional coverage of the requirements.
iii.
Testing must be efficient
Testing activities must be heavily automated to allow them to be
executed quickly. The test-case design approach should produce
the minimum number of test cases to reduce the amount of time
needed to execute tests, and to reduce the amount of time needed
to manage the tests.
iv.
Testing must be manageable
The test process must provide sufficient metrics to quantitatively
identify the status of testing at any time. The results of the test
effort must be predictable, for example, the outcome each time a
test is successfully executed must be the same.
154
REFERENCES
1.
HeiTech Padu Berhad. Retrieved on November 3, 2008, from
http://www.heitech.com.my/.
2.
Test Discipline in RUP. Retrieved on December 8, 2008, from
http://www.ibm.com/us/en/
3.
IBM Rational Method Composer 7.0.1. Method Composer Application. 2008
4.
Hetzel, William C. The Complete Guide to Software Testing. 2nd edition.
Wellesley, MA. : QED Information Sciences, Inc. 1988.
5.
Rick D. Craig and Stefan P. Jaskiel. Systematic Software Testing. USA:
STQE Publishing. 2002
6.
R@PIC. Shared Banking Services (SBS) Scope of Work, SOW Version 3.0.
2008.
7.
R@PIC. Shared Banking Services (SBS) User Functional Specification, UFS
Sign-off Version. 2008.
8.
Myers G. J. Revised and Updated by Tom Badgett, Todd M. Thomas with
Corey Sandler The Art of Software Testing. 2nd edition. New York, USA: John
Wiley and Sons. 2004
9.
Institute of Electrical and Electronic Engineers. IEEE Standard Glossary of
Software Engineering Terminology. New York. IEEE Std 610.12 – 1990.
1990
10.
Institute of Electrical and Electronic Engineers. IEEE Guide for Software
Verification and Validation Plans. New York. IEEE Std 1059 – 1993. 1993
155
11.
Bach, J. Exploratory Testing Explained. 2003. Retrieved on February 16,
2009, from http://www.satisfice.com
12.
John E. Bentley. Paper 141-30 Software Testing Fundamentals—Concepts,
Roles, and Terminology. Wachovia Bank, Charlotte NC.
13.
Institute of Electrical and Electronic Engineers. IEEE Standard for Software
Verification and Validation Plans. New York. IEEE Std 1012 – 1986. 1986
14.
Schmidt, Michael E.C. Implementing the IEEE Software Engineering
Standards. USA: Sams Publishing. 2000
15.
P.K. Davis, Generalizing Concepts of Methods of Verification, Validation and
Accreditation (VV&A) for Military Simulations. RAND Report. 1992
16.
Ron Patton. Software Testing. Indiana, USA : Sams Publishing. 2nd edition.
2006
17.
Beizer, B. Software Testing Techniques. 2nd edition. USA: Van Nostrand
Reinhold. 1990
18.
M. Harrold. Testing: A Roadmap. International Conference on Software
Engineering, (ICSE 00). ACM Press, New York. 2000
19.
SEI. Software Quality Measurement: A Framework for Counting Problems
Retrieved on November 3, 2008, from
www.sei.cmu.edu/pub/documents/92.reports/pdf/tr22.92.pdf
20.
Kaner C. Software Testing as a Social Science. IFIP Working Group10.4,
Florida Institute of Technology, Siena Italy. 2004
21.
William E. Perry. Effective Methods for Software Testing. 2nd edition. John
Wiley & Sons: USA. 2000
22.
Scott Barber & Karen N. Johnson. A Close Look at the Five Schools of
Software Testing. 2009
23.
Bret Pettichord. Schools of Software Testing. 2007
156
24.
Rob Pirozzi. Introduction to Software Testing. LogiGear Corporation.
Retrieved on November 19, 2008, from
http://www.logigear.com/newsletter/introduction_to_software_testing.asp
25.
Goutam Kumar Saha. Understanding Software Testing Concepts
ACM Ubiquity Vol. 9, Issue6, 2008 February 12, 2008 - February 18, 2008
26.
Peter Sestoft. Systematic Software Testin. IT University of Copenhagen,
Denmark. Version 2. 2008
27.
Lee Copeland. A Practitioner's Guide to Software Test Design, USA: STQE
Publishing. 2004
28.
Software Testing Guide Book. Software Testing Research Lab, Retrieved on
January 14, 2009, from http://www.softrel.org/Modeling.html
29.
Perry, William E. How to Test Software Packages : A step- by- step Guide to
Assuring They Do What You Want. New York, USA: John Wiley & Sons.
1986
30.
Kaner C. The Ongoing Revolution in Software Testing. Software Test &
Performance Conference. December 8. 2004
31.
John Watkins. Testing IT: An Off-the-Shelf Software Testing Process.
Cambridge, United Kingdom: Cambridge University Press. 2001
32.
Wasif Afzal. Metrics in Software Test Planning and Test Design Processes.
Msc. Thesis. Sweden. 2007
33.
Kaner C. Fundamental of Software Testing. Florida Tech, Colloquium
Presentation, Butler University. 2003
34.
Srinivasan D., Gopalaswamy R. Software Testing: Principles and Practices.
New Delhi, India: Pearson Education. 2006
35.
Test Development Model. Software Testing Research Lab, Retrieved on
January 21, 2009 from http://www.softrel.org/Modeling.html
157
36.
PMOC. V-Model Testing – Process Model Configuration Using SVG. 2003.
Retrieved on March 3, 2009 from http://www.soberit.hut.fi/T-76.115/0203/palautukset/groups/pmoc/de/vmodel.pdf
37.
Paul Gerrard. Managing Projects with Intelligence. Gerrard Consulting
Limited. 2004
38.
Software Development Models. Retrieved on January 22, 2009, from
http://sqa.fyicenter.com/FAQ/Software-DevelopmentModels/Software_Development_Models_W_Model.html
39.
Spillner A. The W-MODEL – Strengthening the Bond Between Development
and Test. University of Applied Sciences Bremen. Germany. 2002
40.
James Christie. V Model Article. Retrieved on January 26, 2009, from
http://www.clarotesting.com/page11.htm
41.
Test methodology. Retrieved on January 26, 2009, from
http://www.kynetia.com/quality/methodology.html
42.
Test Development Model. Software Testing Research Lab, Retrieved on
January 26, 2009, from http://www.softrel.org/Modeling.html
43.
Student Accountant. Developing Systems. The V model relevant to
Professional Scheme Paper 2. 2006. Retrieved on April 15, 2009, from
http://www.accaglobal.com/pubs/students/publications/student_accountant/
44.
HeiTech. Application Development Information System (ADVISE). 2008
45.
Fantinato, M. Applying Extended Finite State Machines in Software Testing.
2003
46.
Rational Software Team. RUP: Best Practices for Software Development
Team. Rational Software White Paper, 1998. Retrieved on December 6, 2008,
from http://www.rational.com
47.
Bank Negara Malaysia. Basic Banking Services. Malaysia: Info Guide –
158
Banking Info. 2005. Retrieved on March 10, 2009, from
http://www.bankinginfo.com.my
48.
Morton Stephen D. The Butterfly Model for Test Development Applied
Dynamics International. 2001
49.
Li Jin-Hua, Li Qiong, Li Jing. The W-Model for Testing Software Product
Lines. International Symposioum on Computer Science and Computional
Technology. 2008
50.
Per Runeson, Greberg P. Extreme Programming and Rational Unified Process
– Contrasts or Synonyms? Lund University, Sweden. 2004.
51.
Banking Application. Retrieved on March 18, 2009, from
http://findarticles.com/p/articles/mi_m4153/is_n1_v48/ai_10380967
52.
Infotech Banking Services. Retrieved on March 18, 2009, from http://www.3iinfotech.com/content/services/software_testing.aspx
53.
Third Eye. Software Testing. Retrieved on February 25, 2009, from
http://www.stcthirdeye.com/banking.htm
54.
Thinksoft Global. Software Testing. Retrieved on February 25, 2009, from
http://www.thinksoftglobal.com/business_areas/core_banking/
55.
Rodina. Requirements Validation. Retrieved on April 20, 2009, from
http://fsktm.um.edu.my/~rodina/WKES3202_LEC4_Rodina.ppt
56.
Kaner. C. What Is a Good Test Case? Florida Institute of Technology. STAR
East. 2003
159
Appendix A
(Project Plan & Gantt Chart)
160
Project Plan – IA Gantt Chart
161
Project Plan – IA Gantt Chart
162
Appendix B
(Industrial Attachment Progress Report)
163
Appendix C
(Proposed Customized Software Testing Process)
164
Proposed Customized Software Testing Process
Download