Project Management, Software Testing Nasreen Iqbal Msc. Software Engineering P13194231@myemail - Dmu.ac - Uk de Montfort University
Project Management, Software Testing Nasreen Iqbal Msc. Software Engineering P13194231@myemail - Dmu.ac - Uk de Montfort University
______________________________________________________________________________________
1 INTRODUCTION
1.1 Purpose
The overall purpose of this project is to evaluate and analyses the requirement of the customer, design and
implement the system, testing the functionality and maintain the software of an ATM component of a larger
ATM network project, consistent with the requirement specification.
1.2 Scope
The scope of the ATM is to support a computerized banking network. All activities directly related to the purpose
are considered to be in scope. The other activities not directly related to the purposes are considered to be out of
scope, such ATM hardware and concern issues.
1.3 Assumptions and Constraints
The Assumptions of the project are as follows:
The project is a model of a larger ATM network.
This project will deliver the software components.
The ATM hardware will available later in the installation and handle as a separate project.
All hardware documentation will be available at the time of installation.
XYZ-ATM project will involve Object-Oriented Analysis and Development process and write the code
in C++ on Microsoft .Net platform on IBM mainframes.
The project should complete within the due date and budget.
The project will have the following constraints:
Budget
o 2 Million
o Should not exceed
Time
o 12 Months
Staff
o XYZ appointed the deputy director of data center to liaise with the project leader, to monitor
progress, and set priorities for the development team.
o The development team will be composed of 20 staff from the Data Centre,
o 6 additional staff from the client / server interface development and required them based on
priority of the project.
1.4 Schedule & Budget Details
The project kick-off: 09 December, 2013
Software ready for operation: 09 December, 2014
1.5 Project Promises
The following items listed are the deliverables to the ATM project manager.
Software documentation
1 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
o Installation documentation
o End-user detailed document
Software installation
Software training provided to the staff
o Bank staff
o ATM installers
o The maintenance team
Project deliverable documentation
o The software requirements document
o The software design document
o The software project document
o Software test document
2 DESCRIPTION
2.1 Product Viewpoint
The ATM network will work together with the software provided by the banks, where banks have defined
interfaces for the communication.
Banks Networks
Bank Bank
Computer Database
ATM
ATM
Network
Bank Bank
Computer Database
Bank Bank
Computer Database
ATM NETWORK
Card Reader
Cash Dispenser
KeyPad
Screen
Printer
Operator
2 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
[Incorrect]
Verify Handle Incorrect
Access Code Access Code
[Correct]
Ask forAmount
[Resolved]
[Note
Resolved]
[Amount not
available]
[Amount
available]
Deposit Slot
Prepare to print
Dispense Cash
Receipt
2.2 Organization
XYZ has one data center in the UK, employing some 200 IT professionals. Their work involve the maintenance
of the company’s existing Information Systems; network support; providing a help desk service to XYZ staff and
the development of new applications.
The following attached diagram (Appendix B) discussed the proposed team and their relation with the project
management group. The team led will assign by the project leader for each group. The role and responsibilities
for the below organization will discuss and diagrammed in the next project plan specification section.
3 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
4 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
5 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
System Security Analysis: the security of the data is an important part in this section which planned to
gain the customer faith and reliability.
Create Software Requirements Specification Report: the final activity of this phaseto prepare reports
for the next phase.
1.2. System Designing:
System designing will model the architecture, components and interfaces for a system to specify the
requirement. The designing duration estimated total 67 days with the team Software Architecture and
designers.
Perform Architectural Design: will cover the internal and communication architecture between ATM
and the bank.
Designing Interfaces: this phase will cover to achieve the goal to make the user's interaction as simple
and efficient in the form of designing interfaces.
Develop Algorithm: algorithm follows the well-defined set of instructions for completing a task, not a
program, but a specific language that explore the idea of step the program will take to perform its tasks.
Perform Detailed Design: This process will perform with the development team to generate the
application software and integrating the softwares and communications with these applications.
Design Test Cases: the test plan describes what to test, but a test case describes how to perform a
particular test, our team will develop a test case for each test listed in the test plan.
Create Software Design Specification: This phase will be ended with the final document and handover
to the next phase.
1.3. Coding
The Data Center arranged 10 designers and programmers using the new technologies for the source code of the
program and a Java programmer for the object oriented (OOPS) technology. The team facilitates the work of
computer programmers, who specify the actions to be performed by a computer mostly by writing source code
for the duration of 47 Days with the consideration of Lines of Code (LOC) essentials.
Create Test Data: before begin with the coding phase the test data developed for the programmers and
test specialist.
Create Source Code: the source code that contained an instruction to tell the computer what to do
using language C++.
6 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
7 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
1.1 Develop System 20 days Mon 12/9/13 Fri, 1/3/14 Requirement $64,000.00
Architecture Analysts-1
1.4 Define Interface 14 days Fri, 12/27/13 Wed, Business Analyst, $89,600.00
Requirement 1/15/14 DB2 Expert
1.6 System Security 22 days Mon 1/6/14 Tue, 2/4/14 Security Specialist $70,400.00
Analysis
1.7 Software 14 days Thu, 1/16/14 Tue, 2/4/14 Project Leader, $89,600.00
Quality & Risk Requirement
Analysis Analysts-1
8 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
9 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
10/6/14
4.1 Develop, Test 24 days Tue, 7/15/14 Fri, Software Testers-1 $76,800.00
Requirement 8/15/14
4.2 Unit Testing 14 days Mon 8/18/14 Thu, Software Testers-2 $44,800.00
9/4/14
4.3 Component 22 days Mon 8/18/14 Tue, Software Testers-1 $70,400.00
Testing 9/16/14
4.4 System Testing 13 days Mon 9/5/14 Wed, Software Testers-2 $41,600.00
9/23/14
4.5 Provide 14 days Wed, 9/17/14 Mon Software Testers-1 $44,800.00
Feedback to 10/6/14
Programmers
5.1 Final checks and 28 days Tue, 10/7/14 Thu, Project Leader $89,600.00
verification 11/13/14
Total = 1984000
10 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
This Project Planning includes scheduling diagrams using Gantt where activities and links represent task
dependencies as follows.
Define Activity
Identify Activity
o Activity based approach
o Product based approach
o Hybrid approach
Network Planning Model
The task performed using CPM (Critical path method) to visualize the project as a network followed by start and end.
4.1 Task Dependency Specification for WBS:
3 Interview 12 days
11 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
17 Coding 47 days
18 Create Test Data 19 days 17
19 Create Source Code 19 days 17
20 Generate Object Code 30 days 15,17,16
21 Plan Integration 7 days 20,21,19
22 Perform integration 9 days 22
23 Document Program Model 10 days 22
24 Testing 60 days
12 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
13 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
14 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Technical
Risk
Decision Merge
15 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Work Environment: the levels of cooperation, communication of the employee played a very import role in the
development environment.
Management process and methods: management process includes planning, controlling, budgeting and
schedule task which help to eliminate the risk.
5.7.3 Program Constraints
Many projects rely on the schedule and cost signs, but they must examine their plans and control technical risks
with the intention to accomplish project quality. The top approach is to achieve the control upon the risks in the
entire software development life series.
Resources: According to time management the team must be experienced and cooperation. So better to
have high paid staff will help to complete their task in a short period based on their experience.
Dependency: We have dependency in the project i.e. Hardware providers, must define a timeline and
contract between them with the legal lines.
5.8 The Risk Assessment Table & Project Risk
The following categorized table will be maintained for the duration of the project, listed the risk range from 1 to 10 and
its severity (Negligible, critical and marginal) that obtained by the current risk factors.
Risk Assessment Datasheet
Risk Assessment Area
Level 1 Level 2 Risk Rank Severity Comments
Mission And Project fit 2 Negligible
Goal Factor
Management Application factors
Risk
-Nature of the application 5 Marginal
-Expected size of the 4 Negligible
application
Project team stability 5 Marginal
-Experience and skills 8 High Experience with application
development projects,
management plan and set the
target to monitor the
performance.
-Appropriateness of 8 High New experience in this type
experience developing, Management has to
hear experts with the same skills
and experience
-Staff satisfaction 5 Marginal Staff involved since many
projects and the staffing is not an
issue for the Datacenter.
-Staff turnover rates 7 High The more you pay, more you gain
strategy need to apply by the
management to avoid the hazard
-Project Factors 8 Marginal The management so far planned
and decided factor, required more
attention and documented.
-Project objective 5 Marginal
16 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
17 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
18 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Technical risk appears when the application, techniques, theories and principles failed to generate the required
software. In the ATM software development many external, unfamiliar interfaces and software involved with the
different platform from the various banks and the ATM software has to work together in order to establish the
communication between the bank and ATM. In many ATM network projects, the more challenges and efficiency
required without any compromises in terms of skills, language experience and planning. The application failure most
common factor in this kind of development. It is extremely difficult to work with different software, system languages
and processes with the new technology like C++ with the DOT NET. In this environment, providing the accuracy and
stability that will be required in order the expected tasks by customers to be completed successfully.
Compatibility factor may emerge the failure of the final software application that ended with the software crash and
become challenging at certain complex individual cases.
Impact Description:
The security impact a lot on the image of the software provider because the stockholder expectation into more quality
standard and capabilities. Therefore, considering that a tiny defect may cause some inconsistency.
Recommended Risk mitigation:
The approach to control technical risks is to manage them in the entire software development process. This can result
in more successful software programs and reduce the major crash risk. Focus on the development and risk monitoring
through the testing only the resolution.
Last, The management concentrates on capable and expertise resources in the development process and includes the
risk specialist in the team.
19 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
RE before RE after
RRL
risk reduction cost
20 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
21 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
o Keypad
o Cash dispenser
o Deposit slot
o Messages
o Slot reader
o Logs
Interfaces
o The screen that displays a message to the user
o A keypad that receives numeric input from the user
o Cash dispenser that dispenses cash to the user
o Deposit slot that receives envelop from the customer
o Key operation switches to allow operator to start and stop the machine
7.4 Features Not To Test
Hardware components
Bank Integration software with the ATM hardware
Bank database Security
7.5 Refinement Approach
7.5.1 Testing levels
The testing for the ATM simulation project will consist of apparent, unit, system and acceptance test levels will
completed by the test specialist and the development team participation.
Unit Testing performed by the testers includes list of cases, tester output and bug information must be provided
before unit testing will be accepted and passed.
System Testing: The Ellipse best suitable testing tool is acceptable for this project. The criteria say that the two
major defects can be avoidable; provided as they do not obstruct testing of the program. The entire system test
will be completed by the Testers in order to provide acceptance document to the team management.
Acceptance Testing will completed by the ATM stockholder in order to confirm the system achieved its
requirements.
The programs Acceptance test will complete when all the major defects will be corrected, the critical and
foremost defects must be corrected and verified by the stockholder. This will require careful coordination of the
control table for the manufacturing system to avoid post testing into the system.
7.5.2 Configuration & Change Control
The configuration and change control will look into the movement of programs, from the development portion
of the ‘RED’ sign system to the test portion of the ‘RED’ sign. This will ensure that program under
development/test and in the same version controls and tracking of changes. The exact process will use to
migrate the programs from the development/test ‘RED’ system to the production ‘BLUE’ system once all
testing has been completed as per plans and guidelines.
All changes, enhancements and other modification requests to the system will be handled through the published
change control procedures. Any modifications to the standard procedures are identified in the change control
section.
22 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
23 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
o TC0.. – Session completed correctly when the customer finish or cancel the transaction.
o TC0.. – The system performs valid transaction for deposit correctly
Withdrawal
o TC0.. – Successful selection amount to withdraw
o TC0.. – Successfully withdraw
o TC0.. – Expected messages due to amount greater than day withdrawal limit
o TC0.. – Expected message to withdraw due to selection amount greater than the account
balance.
o TC0.. – Withdrawal operation unsuccessful due to selection cancels option.
Deposit
o TC0.. – Unsuccessful withdraw due to lack of amount in the dispenser
o TC0.. – System Accept Cash Amount entered by Customer to deposit
o TC0.. – Depots Transaction cancels by the customer any time before the envelop insert in the
slot.
o TC0.. – Get a receipt after deposit envelope.
Checking Balance
o TC0.. – Balance check against valid account
o TC0.. – Get receipt after the balance check
ATM Operation
o TC0.. – ATM Operator function Testing (Switch ON /OFF)
o TC0.. – Connection between banks and ATM is established
o TC14 – Bank connection terminated when the ATM shut down
User Interface
o TC0.. – Screens visual have proper format and text
o TC0.. – Check Welcome screen display after insert the card
o TC0.. – Buttons correspond to proper items on screen
o TC0.. – Keypad entries are properly displayed
o TC0.. – Can backspace to delete entries
Note: TC0.. (Dot denotes as the number given by the tester to complete the test specification number)
7.7 Fail & Pass Slandered
The test method will completed once the initial set of stockholder have successfully sent and reassigned to the
team leader to complete the failure task.
In the test completion process the initial set of providers must pass the data comparison test, the application is
considered live till the end of this process. All additional activations will be ready, if the stockholder is ready
and their data is verified.
All withdraw cash tests must pass
90% of check account balance must pass.
All deposits must pass
24 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
25 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Input Output
Black Box Testing
Black box testing strategies are discussing about the functional point of view. The numbers of the following types
of the tests are available.
Equivalence Partitioning
Boundary Value Analysis Based Testing
State Transition Testing
Decision tables
Error Guessing
Use case testing
8.1 Test Case Specification for ATM withdrawal System
Test Case Identifier: TCI-01-01-14-1.0
8.1.1 Purpose
This ATM test case based on functionality of withdrawal, all the required tests will be done without its code
specification. The test recognizes its functionality based on requirements. I choose below Use-Case
specification because it is reliable, easy to use and accepted widely in all the major system test requirements.
8.1.2 Test case specification identifier for the withdrawal operation
Test Code Test Case Specification
TC001 Inquiry, Balance $80
TC002 Withdraw $20 from a valid account, check with $80
TC003 Withdraw $40 from a valid account, check with $40
TC004 Withdraw $60 from a valid account, check with $40
TC005 Withdraw $20 from a valid account, check with $20
TC006 Withdraw $20 from a valid account, check with $980
TC007 Withdraw $20 from a valid account, check with $980
TC008 Withdraw $20 from a valid account, check with $0
TC009 Withdraw $200 from a valid account, check with $980
TC010 Withdraw $40 from a valid account, check with $0
TC011 Withdraw $100 from a valid account, check with $880
TC012 Withdraw $40 from a valid account, check with $840
26 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
27 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
28 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
29 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
30 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
31 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
}
{
money=new Money(20,12); //constructor dollar
result =new Money(80,12);
mn.add(money);
assertEquals( "Result",result.toString(),mn.toString());
32 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
}
}
8.5.1 Result:
I compared the automatically generated result of the system from the Money type object and the result generated
manually in the coding and the result was matching. The Result found 100% accepted without failure and error.
The following attached screenshot for the result.
33 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Card crd,getcrd;
Message msg ;
@Test
public void testMessage()throws Exception
{
Money money=new Money(20) ;
mon=new Money(money);
crd= new Card(1);
msg =new Message(0, crd, 42, 1, 1, 0,money);
bl=msg.equals(money);
int1=msg.getFromAccount();
int2=msg.getPIN();
int3=msg.getToAccount();
mon=msg.getAmount();
msg.equals(money);
getcrd=msg.getCard(); //not responding
msg.setPIN(0);
int4=msg.getSerialNumber();
int5=msg.getMessageCode();
str="";
switch (msg.getMessageCode())
{
case 0:
msg =new Message(0, crd, 42, 1, 1, 0,money);
//str += "WITHDRAW";
case 1:
msg =new Message(1, crd, 42, 1, 1, 0,money);
//str += "INIT_DEP";
case 2:
msg =new Message(2, crd, 42, 1, 1, 0,money);
// str += "COMP_DEP";
case 3:
msg =new Message(3, crd, 42, 1, 1, 0,money);
//str += "TRANSFER";
case 4:
msg =new Message(4, crd, 42, 1, 1, 0,money);
str += "INQUIRY ";
}
str += " CARD# " + crd.getNumber();
str += " TRANS# " + int4;
if (int1>=0)
str += " FROM " + int1;
34 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
else
str += " NO FROM";
if (int3 >= 0)
str += " TO " + int3;
else
str += " NO TO";
if (! mon.lessEqual(new Money(0)))
str += " " + money;
else
str += " NO AMOUNT";
assertEquals("Result",msg.toString(),str);
}
}
8.6.1 Result:
Successful result found in the Message testing using assertEquals function, following are the result short screen.
9 CODE COVERAGE
For the code coverage we used EclEmma for the Eclipse tool.
Code coverage is a white box testing procedure that requires knowledge to access the code rather than simply using the
interface. Code coverage, perhaps most useful during the module testing phase, though it has also benefited during
integration testing, but depends absolutely on how and what you are testing.
9.1 Classes for the Test:
Message.java
35 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Money.java
9.2 Created Test Classes:
ATMMoneyTest.java
ATMMessageTest.java
9.3 Result:
Here we run the ATMMoneyTest.java test in code coverage and found 100% coverage. I found that lexical function has
not coverage, 100% due to the function coding itself, showing errors in the Money.java class as below can be viewed on
the screen
shortly
36 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
37 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
38 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
o Community
o Estelle
o Esterel
o Lotus
o Overture Modeling Language
o Petri Nets
o RAISE
o SDL
o TRIO, Unity, and VDM
o Any programming language
10.3 Proposed Method for the Testing
Based on above study, we would propose Unified Modeling Language for the ATM PIN testing. This approach is
new in the technology with its various qualities, such as it is easy to understand and implement; moreover eliminate
the complexity by using Java behavior. Due to its natural supportive design, the Unified language allowing
specifications to be written in the form of preconditions, post conditions, class invariants, and an abstract model of
an object’s state.
The main contribution of JML-Unit testing is to eliminate the writing codes that decide the success and failure of
the testing on hand. Moreover the JML-Unit detects a test failure when a post condition is violated after the method
under test is called, or when a precondition violation occurs during execution of the method. The test will be
meaningless if the test violated in the precondition before execution, but JML tell us whether the method is
behaving correctly or not timely. Furthermore JML Unit provided the reusability that relaxing more writing and
giving abstract and robust method to test.
JML
Is
Java + FO Logic + pre/post-conditions, invariants + more. . .
The other most important reason to select this technique is to escape from the high cost estimation and extra
resources. As we have Java specialist in the team to understand the language during the development process, test
group can utilize his expertise in finding the bugs even during coding. In this way we can gather the various ideas
and include other team members to find the bugs that help the tester with elimination of errors during
implementation.
Formal
Formal Formal Abstraction
Specifications
Proofs Checking
39 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
40 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
41 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
The Use Case it is very easy to use that using common language without caring typical inner coding that could be
understandable by anyone or ATM stockholder even, as a result the withdrawal functional defects or hidden
requirements can be found easily by this testing and stockholder will verify.
11.2 Task 6:
We selected Ellipses for the JUnit Testing. We created the environment in the Ellipse and write 2 test codes using
separate folder advised in the LAB. These test codes are dedicated to the respective classes, called each function in
the test code and run the test environment successfully. During our testing, we found that few functions are not
responding and throwing errors whenever calling them, but the rest of the functions called and responded properly.
The Message class has many multiple calls from one construction. This construction works for all other messages
such as withdraw, deposit, balance and other messages too. This Message class has many functions to test that
required to get the various values passed in the constructor. For example getCard(), getPIN() etc.
We used a switch statement for the various construction calls for the different requirement. Finally, we tested result
in the assurtEquals () function. For the expected result, we disable few coding, if you noticed, but this will not
affect the testing because the purpose of testing to test all the function working as per requirement. Similar
purposely we haven’t used break statement in each case because we want to move cursor in each case to hit all the
transactions. We found sometime Message functions are not responding, but sometimes responding well. We
called other class objects to pass the parameter in the message construction like Card class.
We have tried to create the test environment, but bound with some partially completed functions such as notifying
and wait, truly they are not required as such, but they are inherited functions in the Money.java class, as a result we
tested all the functions declared in the Money.java. The result throws no error and found none of any other failure.
The test went through logics to test the requirements of the system. The main intention of the test plan was to test
withdrawal and deposit of an amount. These two functions are entirely different process required different
environment. The Money.java class has three constructors, one is for withdrawal and second is for the deposit
amount, last is to copy constructors. We called all constructors in order to test them. To start, we called other class
operations i.e. balance to set the total and available balance to the environment, although it is not required but we
tried to neutralize our test environment. So the coding started with calling packages, declaration and initialization
of the object. The avialableBal and Total Balance is a Money type that set the initial amount in the balance class
also these objects comparing the amount availability before withdrawal amount. If the lessEqual() function return
true that means the available balance and total balance greater than the withdrawal amount, then the subtraction
function will activate for the withdrawal.we declared result object ‘Money’ type to check the expected result in the
assertEqual function which required both the parameter object type as same. Last we called mn.subtract(money)
function to subtract the given amount and tested expected result in the assertEqual function. To test the add()
function not required any condition to check, but required the constructor for dollar and cent as per requirement
stated that deposit money essentially calculates the cents procedure for the test, therefore simply called this
function with the given expected result.
In the code coverage we used EclEmma tools, experienced an easy to install and adoptable. When we run coverage
code we found the best results more than 88% to 100% presently. The coverage actually indicates your coding
perfection. When we used code coverage, we realized that we are missing coding and this realization helped me to
do the correction in our test coding, and covered almost functions.
11.3 Task 7:
The formal technique based on mathematics and formal logic, a foundation of most descriptions of complex
systems. It defines external behavior without describing implementation using logical and structural division. The
formal technique identified undocumented or unexpected assumptions and clarify the in the high level designs. On
the other hand the PIN verification system in the ATM is a critical approach that must satisfy the bank requirement
authentication. This Pin verification must accurate and exact in its approach, therefore the formal method will
identify the unexpected bugs in the PIN verification process.
We selected JML Unit testing for the PIN verification that generated automatically JUnit test case. We do not
require much experience in Java, and this tool cooperated in general and creates the formal method for the testing.
This method is based on mathematical approach that exactly works on the critical issues. Our preference for JML
Unit formal method for the PIN will provide the unexpected approach towards finding error and bugs in pre and
post condition, the detection of unclear and hidden bugs for such a complex system would help to build a bug free
42 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
and secured system. Although this method has a precondition for selecting test inputs and post conditions provides
the properties to check the test results approach will identify the bugs in the PIN function. In the proposed section
we created the PIN test code to give a better idea in the selection.
43 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
APPENDIX A - GLOSSERY
Coley Consulting (2009) IEEE 829 Documentation. http://www.coleyconsulting.co.uk/IEEE829.htm.
IEEE Xplore (2009) IEEE 829-1988 Standard for Software Test Documentation.
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?tp=&isnumber=16010&arnumber=741968&punumber=5976
Software Engineering Technical Committee of the IEEE Computer Society, USA (1998) IEEE 829-1988
Standard for Software Test Documentation. 0-7381-1443-X
The course slides consider as references through the report.
Software Engineering using Formal Methods Java Modeling Language by Wolfgang Ahrendt, Moa
Johansson acceptance criteria
Acceptance testing - Formal testing conducted to determine whether or not a system satisfies its acceptance
criteria and to enable the customer to determine whether or not to accept the system. [IEEE-STD-610],
Taxonomy-Based Risk Identification Marvin J. Carr
Project Cost Estimating Manual Fifth Edition March 2012
44 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
APPENDIX- B
Organization Chart
(General Description)
45 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
A
Finance Director
XYZ
International Banking &
Finance Services Group B
Deputy Director
C
Project Leader
A A A A Communication
Software Architect and Designer Software Document Training Business Analysts
Requirement Expert
Analyst Testers Writer &
Installation
B B Specialist DB2 Expert Security Specialist
B A F Software Document
Requirement
Front End ATM Front End ATM Testers Writer B
Designers and Designers and Training
Analyst Programmers Programmers
& Database Specialist Java Programmer
Installation
C B Specialist
G
Requirement Front End ATM Front End ATM
Analyst Designers and
Client / Server Interface Developer
Designers and
Programmers
Programmers
D
Requirement
C H
Analyst Front End ATM Front End ATM
Designers and Designers and
Programmers Programmers
D I
Front End ATM Front End ATM
Designers and Designers and
Programmers Programmers
E J
Front End ATM Front End ATM
Designers and Designers and
Programmers Programmers
Development Team
46 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
APPENDIX- C
47 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
48 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
49 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
50 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
51 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
52 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
53 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
54 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
on
ati
Dur
rt
Sta
sh
Fini
s
me
Na
ce
our
Res
up
Gro
ce
our
Res
t
Cos
rt
Sta
y
Earl
sh
Fini
y
Earl
rt
Sta
e
Lat
sh
Fini
e
Lat
ck
Sla
rt
Sta
dec
Pre
ors
ess
55 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Business Business
Define Interface 14 Fri Wed Fri Wed Mon Thu 26
5 Analyst,DB2 Analyst,DB2 £89,600.00
Requirement days 12/27/13 1/15/14 12/27/13 1/15/14 2/3/14 2/20/14 days
Expert Expert
Prioritize and
11 Wed Wed Requirement Requirement Wed Wed Tue 19
Integrate 4 £35,200.00 Tue 2/4/14
days 12/25/13 1/8/14 Analysts-3 Analysts 12/25/13 1/8/14 1/21/14 days
Requirements
Create Software
Requirements 22 Wed Requirement Requirement Wed Wed 0
Thu 3/6/14 7,8 £70,400.00 Thu 3/6/14 Thu 3/6/14
Specification days 2/5/14 Analysts-2 Analysts 2/5/14 2/5/14 days
Report(SRS)
67 Wed Wed 22
System Designing Thu 5/8/14 £339,200.00 Thu 5/8/14 Fri 3/7/14 Thu 5/8/14
days 2/5/14 2/5/14 days
Perform
21 Wed Wed Software Front End ATM Wed Wed Thu Thu 26
Architectural 9 £67,200.00
days 2/5/14 3/5/14 Architect-1 as Designers 2/5/14 3/5/14 3/13/14 4/10/14 days
Designing
Develop 12 Thu 3/6/14 Fri 3/21/14 12 Software Front End ATM £38,400.00 Thu 3/6/14 Fri 3/21/14 Fri 4/11/14 Mon 26
56 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Software
Perform Front End
8 Mon Wed Architect- Mon Wed Tue Thu 26
Detailed 14 ATM as £51,200.00
days 3/24/14 4/2/14 4,Software 3/24/14 4/2/14 4/29/14 5/8/14 days
Design Designers
Architect-1
Create
Front End
Software 24 Mon Thu Software Mon Thu Mon Thu 0
13 ATM as £76,800.00
Design days 4/7/14 5/8/14 Architect-2 4/7/14 5/8/14 4/7/14 5/8/14 days
Designers
Specification
47 Fri Mon Fri Mon Fri Mon 0
Coding £518,400.00
days 5/9/14 7/14/14 5/9/14 7/14/14 5/9/14 7/14/14 days
Create Test 19 Fri Wed Database Database Fri Wed Mon Thu 11
17 £60,800.00
Data days 5/9/14 6/4/14 Specialist Specialist 5/9/14 6/4/14 5/26/14 6/19/14 days
Front-End
Designer &
Programmer-
Front End
Create 19 Fri Wed 5-6,Front- Fri Wed Mon Thu 11
17 ATM as £121,600.00
Source Code days 5/9/14 6/4/14 End Designer 5/9/14 6/4/14 5/26/14 6/19/14 days
Designers
&
Programmer-
5
Java
Programmer,
OOPS,Front
Generate 30 Fri Thu Front-End Fri Thu Fri Thu 0
15,17,16 End ATM as £192,000.00
Object Code days 5/9/14 6/19/14 Designer & 5/9/14 6/19/14 5/9/14 6/19/14 days
Designers
Programmer-
5-7
Plan 7 Fri Mon Front-End Front End Fri Mon Fri Mon 0
20,21,19 £22,400.00
Integration days 6/20/14 6/30/14 Designer & ATM as 6/20/14 6/30/14 6/20/14 6/30/14 days
57 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Programmer- Designers
5-8
Front-End
Front End
Designer &
Perform 9 Tue Fri ATM as Tue Fri Wed Mon 1
22 Programmer- £57,600.00
integration days 7/1/14 7/11/14 Designers, 7/1/14 7/11/14 7/2/14 7/14/14 day
5-9,Java
OOPS
Programmer
Front-End
Designer &
Programmer-
Document Front End
10 Tue Mon 5-10,Front- Tue Mon Tue Mon 0
Program 22 ATM as £64,000.00
days 7/1/14 7/14/14 End Designer 7/1/14 7/14/14 7/1/14 7/14/14 days
Model Designers
&
Programmer-
5
60 Tue Mon Tue Mon Tue Mon 0
Testing £278,400.00
days 7/15/14 10/6/14 7/15/14 10/6/14 7/15/14 10/6/14 days
Develop Test 24 Tue Fri Software Software Tue Fri Tue Fri 0
24,23 £76,800.00
Requirement days 7/15/14 8/15/14 Testers-1 Testers 7/15/14 8/15/14 7/15/14 8/15/14 days
14 Mon Thu Software Software Mon Thu Fri Wed 9
Unit Testing 26 £44,800.00
days 8/18/14 9/4/14 Testers-2 Testers 8/18/14 9/4/14 8/29/14 9/17/14 days
Component 22 Mon Tue Software Software Mon Tue Mon Tue 0
26 £70,400.00
Testing days 8/18/14 9/16/14 Testers-1 Testers 8/18/14 9/16/14 8/18/14 9/16/14 days
System 13 Fri Tue Software Software Fri Tue Thu Mon 9
27 £41,600.00
Testing days 9/5/14 9/23/14 Testers-2 Testers 9/5/14 9/23/14 9/18/14 10/6/14 days
Provide
14 Wed Mon Software Software Wed Mon Wed Mon 0
Feedback to 28 £44,800.00
days 9/17/14 10/6/14 Testers-1 Testers 9/17/14 10/6/14 9/17/14 10/6/14 days
Programmers
Operation & 50 Tue Mon Tue Mon Tue Mon 0
£307,200.00
Maintenance days 10/7/14 12/15/14 10/7/14 12/15/14 10/7/14 12/15/14 days
58 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Document
17 Tue Wed Writer- Document Tue Wed Fri Mon 18
Documentation 30 £108,800.00
days 10/7/14 10/29/14 1,Document Writers 10/7/14 10/29/14 10/31/14 11/24/14 days
& User Manual
Writer-2
Training &
Training and
8 Tue Thu Installation Tue Thu Thu Mon 27
Training 30 Installation £25,600.00
days 10/7/14 10/16/14 Specialists- 10/7/14 10/16/14 11/13/14 11/24/14 days
Specialists.
1[0%]
Training & Training and
Distribute 5 Fri Thu Fri Thu Tue Mon 7
32,33,34 Installation Installation £16,000.00
Software days 11/14/14 11/20/14 11/14/14 11/20/14 11/25/14 12/1/14 days
Specialists-2 Specialists.
Training & Training and
Install 12 Fri Mon Fri Mon Fri Mon 0
32 Installation Installation £38,400.00
Software days 11/14/14 12/1/14 11/14/14 12/1/14 11/14/14 12/1/14 days
Specialists-1 Specialists.
Perform Training & Training and
9 Tue Fri Tue Fri Tue Fri 0
Adaptive 36,35 Installation Installation £28,800.00
days 12/2/14 12/12/14 12/2/14 12/12/14 12/2/14 12/12/14 days
Maintenance Specialists-2 Specialists.
Perform
1 Mon Mon Mon Mon Mon Mon 0
Preventative 37 £0.00
day 12/15/14 12/15/14 12/15/14 12/15/14 12/15/14 12/15/14 days
Maintenance
0 Mon Mon Mon Mon Mon Mon 0
Finish Task 38 £0.00
days 12/15/14 12/15/14 12/15/14 12/15/14 12/15/14 12/15/14 days
59 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
60 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
61 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
62 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
Resource Usage
63 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
64 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
65 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
66 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
67 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
68 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
69 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
70 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
71 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
72 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
73 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
74 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
75 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
76 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
77 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
78 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
79 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
80 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
81 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
82 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
83 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
84 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
85 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
86 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
87 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
88 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
89 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
90 Page
Automation Teller Machine (XYZ-ATM)
______________________________________________________________________________________
91 Page