You are on page 1of 50

2

Document Revision History

Version

Date

Changed By

Items Changed Since Previous Version

1.0

25th March

Bhavnesh

Initial Version

2014

Asar

Table of Contents
1

Project Overview............................................................................................................................. 6

Project scope .................................................................................................................................. 7

SRS ................................................................................................................................................ 8
3.1

System Requirements ............................................................................................................. 8

3.2

Functional Requirements Specification .................................................................................... 8

Cost estimation ............................................................................................................................. 12

Software Design ........................................................................................................................... 14

6
7

5.1

Introduction ............................................................................................................................ 14

5.2

Application and Function ....................................................................................................... 14

5.3

Section 3 System Behavior I ............................................................................................... 15

Code ............................................................................................................................................. 17
Screen Shots ................................................................................................................................ 30
7.1

Onclick Record from table flourishes to input screen. ............................................................ 30

7.2

Change the information on Personal Details screen and click Save button to update details . 31

7.3

Click on Delete button to delete selected record on screen.................................................... 32

7.4

Screen After deleting Record ................................................................................................. 33

7.5

Before Saving New Record.................................................................................................... 34

7.6

New Record Saving ............................................................................................................... 35

7.7

New Record Saved ................................................................................................................ 36

7.8

New Record Saved ................................................................................................................ 37

Testing.......................................................................................................................................... 38
8.1

Document Scope ................................................................................................................... 38

8.2

Scope of Address Book Web Application Test ...................................................................... 38

8.3

Address Book Web Application Test Boundary ..................................................................... 39

8.4

Address Book Web Application Test Phases ........................................................................ 39

8.5

Address Book Web Application Test Timeline....................................................................... 40

8.6

Test Scenarios....................................................................................................................... 40

8.7

Exit Criteria for Test Model .................................................................................................... 41

8.8

Entry Criteria to Detailed Test Preparation ............................................................................. 41

8.9

Input Scripts .......................................................................................................................... 42

8.10

Expected Results ............................................................................................................... 42

8.11

Exit Criteria to Detailed Test Preparation ........................................................................... 43

8.12

Test Execution ................................................................................................................... 43

8.13

Entry Criteria to Test Execution .......................................................................................... 44

8.14

Report and Fix Defects....................................................................................................... 45

8.15

Re-testing Scenarios .......................................................................................................... 45

8.16

Exit Criteria to Test Execution ............................................................................................ 45

8.17

Address Book Web Application Test Closure Report has been signed off .......................... 46

8.18

Test Script: ......................................................................................................................... 47

Maintainance Adaptation .............................................................................................................. 50

10 Biblography................................................................................................................................... 50

Project Overview

What is this Project about?


This project is provide the facility to manage Address book. An address book or a name and address
book (NAB) is a book or a database used for storing entries called contacts. Each contact entry usually
consists of a few standard fields (for example: first name, last name, company
name,address, telephone number, e-mail address, fax number, mobile phone number). Most such
systems store the details in alphabetical order of people's names, although in paper-based address
books entries can easily end up out of order as the owner inserts details of more individuals or as
people move. Many address books use small ring binders that allow adding, removing and shuffling of
pages to make room.
This application is designed to store related data in Internet Browser. It can be accessed via Internet
Explorer, Chrome and many other.

Project scope

This software system will be a Address Book Maintainance System for user who is looking for way to
manage all the contact. This system will be help user to maintain all the contact with various details like
First Name ,Last Name, Email, Cell Phone, Home Phone, Office Phone, Birthday, Home Address,
Office Address.
An online address book typically enables users to create their own web page (or profile page) which is
then indexed by search engines like Google and Yahoo. This in turn enables users to be found by other
people via a search of their name and then contacted via their web page containing their personal
information. Ability to find people registered with online address books via search engine searches
usually varies according to the commonness of the name and the amount of results for the name.
Typically users of such systems can synchronize their contact details with other users that they know to
ensure that their contact information is kept up to date.

SRS
3.1

System Requirements

User

Maintain
Address Book

WebBrowser
DB

Address Book System

The Address Book System has one active actors and one cooperating system. The user acces the
application through the Internet. User can add new contact, edit existing contact or Delete the contact.
User can also reset the screen to clear the data in the form.
3.2

Functional Requirements Specification

This section outlines the use cases for each of the user separately. The User has four use case in
system
3.2.1

Add New Contact User Case

Use case: Add New Contact


Diagram:

Add New
Contact
User

Brief Description
The User access Address Book on Internet Browser and add new Contact to the Address Book. This
new contact will be saved in Browser Database.

Initial Step-By-Step Description


Before this use case can be initiated, the user has already accessed the Address Book System
Website. If any record already exist in Database, it will be displayed in the grid.

1. ID is auto Generated.
2. Enter details as First Name ,Last Name, Email, Cell Phone, Home Phone, Office Phone,
Birthday, Home Address, Office Address.
3. Once all the value is entered, click on save.
4. Newly added record should be visible in Grid as last record.
3.2.2

Edit Contact User Case

Use case: Edit Contact


Diagram:

Edit Contact

User

Brief Description
The User access Address Book on Internet Browser and Edit new Contact to the Address Book. Edited
contact will be updated in Browser Database.

Initial Step-By-Step Description


Before this use case can be initiated, the user has already accessed the Address Book System
Website. If any record already exist in Database, it will be displayed in the grid.
1. Click on Contact record to Edit.
2. Currently selected record data will be populated on the screen.
3. ID cant be changed as its a system generated.
4. Make changes as required First Name ,Last Name, Email, Cell Phone, Home Phone, Office
Phone, Birthday, Home Address, Office Address.
5. Once all the required information updated, click on save.
6. Recently updated record should be visible in Grid with updated details.
3.2.3

Delete Contact User Case

Use case: Delete Contact


Diagram:

10

Delete
Contact
User

Brief Description
The User access Address Book on Internet Browser and Delete Contact to the Address Book. Deleted
contact will be removed from Browser Database and will not appear in the Grid.
Initial Step-By-Step Description
Before this use case can be initiated, the user has already accessed the Address Book System
Website. If any record already exist in Database, it will be displayed in the grid.
1. Single Click on Contact record to Delete.
2. Currently selected record data will be populated on the screen.
3. Click on Deleted.
4. Recently deleted record should be removed from Grid.
5. Deleted ID will not be reused.
3.2.4

Reset Page Content User Case

Use case: Reset Page Content


Diagram:

11

Reset Page
Content
User

Brief Description
The User access Address Book on Internet Browser.

Initial Step-By-Step Description


Before this use case can be initiated, the user has already accessed the Address Book System
Website or the AddressBook.html in chrome browser. If any record already exist in Database, it will be
displayed in the grid. Use has already entered values in the fields on the screen.
1. Click on Reset.
2. All the values on the screen will be removed from the fields. No changes will be capture to the
Database.

Cost estimation

Cost Estimation for this project is done using Simple Medium Complex (SMC) technique in which
assumpstion value is considered for each complexity and linked to number of hours taken to complete
the task and phase in the project the complexity is assigned to each task in WBS (Work breakdown
structure) which required to be coded in the project and percentage of phases are calucated based on
actual hours of code. Which is show in the below tables.
Activity Category
Simple
Medium
Complex

Effort Hours
2
3
6

12

The above table shows the different categories of complexities and number of effort hours assigned to
them.

`
Create Database
Create Table
Design UI
Coding Click on detail to flourish
Screen
coding Click on Save to save new
record or update existing record
coding click to delete record
Coding to reset the screen

Complexities
Description
Simple
Simple
Simple

Manhours
2
2
2

Simple

Medium
Simple
Simple
Total

3
2
2
15

The above table shows the list of task in WBS(Work Breakdown Structure) to complete the project and
complexities assigned to them along with hours and the the total man hours required to complete the
project.
Activity
Business Requirements
Functional Specifications
Detailed Design
Code and Unit Test
System Testing
User Acceptance Testing
Total Effort

Actual Effort In
Standard Work Effort in% Hours
6%
10%
14%
40%
20%
10%
100%

Numer of
people
2.25
3.75
5.25
15
7.5
3.75
37.5

1
1
1
1
1
1

The above table shows the effert required to complete different phases of project on base effort
required to code the project code the project.

13

Software Design
5.1

Introduction

AddressBook project is all about storing & managing personal detail contacts using single code in
offiline and online situation where user need not worry about his status for being connected to network
or being disconnected for its utility purpose
5.2

Application and Function

Commented [ba1]:

Figure 1. Overall Class Diagram

Figure 1. shows the overall class diagram for main AddressBook system component, and all its
functions
A. clearTable is a method that cleans all the record from display list after any method is executed
like update or delete.

14

B. createdb is a method the create database in the chrome browser for first time the application
executes on a particular system.
C. delrecord is method that deletes the record from database table.
D. insertinto is method that inserts record to database table.
E. insertrow method add record from database table to UI (user interface )table.
F.

mouseout event method changes color of UI table back to normal color

G. mousover event method changes color of row to yellow when mouse courser is over a
particular row
H. selectall fetches all row from database table and adds it to UI table by insertrow method
I.

update method record is updated or inserted depending on state of row whether its new record
or existing record

J.

updaterecord method update information to existing record

K. rowclick event method flourishes record from UI table to display form


L. createtable method create new table on first time the database is created

5.3

Section 3 System Behavior I

When the user interact with the Web application for the first time

in chrome browser the web

application checks for the database and database table for their existence if it exist it just creates
connection object else it creates database and table in the chrome browser which are of persistence
by nature and also create a connection object to the database which is kept alive till the lifetime of
browser tab for executing various task like inserting ,updating and deleting rows from database table.

To insert row user has to just type the contact information in the clear data entry from and press save
button which will pop up an alert box saying Data Saved . After that user can change the details of the

15

inserted by clicking on the row of the list table and data will flourish in the personal detail form where
user can make changes to data and again click the save button which will prompt the alert box display
data saved

16

Code

<!DOCTYPE html>

<!-- CSS goes in the document HEAD or added to your external stylesheet -->
<script>
var db;
createdb();
createtable();
function createdb() {

db = openDatabase('dbCustomer', '1.0', 'Customerapp', 2 * 1024 * 1024, function (database) {


alert("database creation callback"); });
}
function createtable() {
var sql = 'Create table if Not Exists AddressBook( ID INTEGER PRIMARY KEY
AUTOINCREMENT,FirstName text,LastName text,Email text,CellPhone text,HomePhone
text,OfficePhone text,Birthday DATETIME,HomeAddress text,OfficeAddress text)';
db.transaction(function (tx) {
tx.executeSql(sql, []);

});
}
function insertinto() {
db.transaction(function (tx) {

17

var firstname = document.getElementById('FirstName').value;


var lastname = document.getElementById('LastName').value;
var email = document.getElementById('Email').value;
var cellphone = document.getElementById('CellPhone').value;
var homephone = document.getElementById('HomePhone').value;
var officephone = document.getElementById('OfficePhone').value;
var birthday = document.getElementById('Birthday').value;
var homeaddress = document.getElementById('HomeAddress').value;
var officeaddress = document.getElementById('OfficeAddress').value;
var sql = 'INSERT INTO
AddressBook(FirstName,LastName,Email,CellPhone,HomePhone,OfficePhone,Birthday,HomeAddress
,OfficeAddress) VALUES("';
sql = sql + firstname + '", "' + lastname + '","' + email + '","' + cellphone + '","'+ homephone +'","'
+ officephone +'","' + birthday + '","';
sql = sql + homeaddress + '","' + officeaddress + '")';

tx.executeSql(sql);

});
}
function insertrow(item) {

var table = document.getElementById('datalist');


var numberofrows = table.rows.length;
var row = table.insertRow(numberofrows);
row.setAttribute("onclick", "rowclick(this);");
row.setAttribute("onmouseover", "mouseover(this);");

18

row.setAttribute("onmouseout", "mouseout(this);");
// .onclick = rowclick(this);
row.insertCell(0).innerHTML = item.ID;
row.insertCell(1).innerHTML = item.FirstName;
row.insertCell(2).innerHTML = item.LastName;
row.insertCell(3).innerHTML = item.Email;
row.insertCell(4).innerHTML = item.CellPhone;
row.insertCell(5).innerHTML = item.HomePhone;
row.insertCell(6).innerHTML = item.OfficePhone;
row.insertCell(7).innerHTML = item.Birthday;
row.insertCell(8).innerHTML = item.HomeAddress;
row.insertCell(9).innerHTML = item.OfficeAddress;
}
function updaterecord() {

alert("database creation callback"); });


var id = parseInt(document.getElementById('id').value);
var firstname = document.getElementById('FirstName').value;
var lastname = document.getElementById('LastName').value;
var email = document.getElementById('Email').value;
var cellphone = document.getElementById('CellPhone').value;
var homephone = document.getElementById('HomePhone').value;
var officephone = document.getElementById('OfficePhone').value;
var birthday = document.getElementById('Birthday').value;
var homeaddress = document.getElementById('HomeAddress').value;
var officeaddress = document.getElementById('OfficeAddress').value;

19

var sql = 'update AddressBook set FirstName="' + firstname + '",LastName="' + lastname +


'",Email="' + email + '",CellPhone="' + cellphone + '",HomePhone="';
sql = sql + homephone + '",OfficePhone="' + officephone + '",Birthday="' + birthday +
'",HomeAddress="' + homeaddress + '",OfficeAddress="' + officeaddress;
sql = sql +'" where id='+id;
db.transaction(function (tx) {
tx.executeSql(sql);
});

}
function delrecord() {

alert("database creation callback"); });


var id = parseInt(document.getElementById('id').value);

var sql = 'delete from AddressBook where id='+ id;


db.transaction(function (tx) {
tx.executeSql(sql);
});

selectall();
alert('Record Deleted');

location.reload();

20

function selectall() {
var table = document.getElementById('datalist');
if (table != null) {
clearTable();
}
alert("database creation callback"); });

db.transaction(function (tx)
{
tx.executeSql('SELECT * FROM AddressBook', [], A, null);
});

}
selectall();
function clearTable() {
var table = document.getElementById('datalist')
table.rows.length;
for (i = document.getElementById('datalist').rows.length-1; i > 0 ; i--) {
document.getElementById('datalist').deleteRow(i);
}
}
function A(tx, results) {

21

//document.querySelector('#customer').innerHTML = "";
//document.querySelector('#customer').innerHTML = "ID,Customer Name,Country"+"<br>";

var r=results.rows.length;
for (i = 0; i < r; i++)
{

var item = results.rows.item(i);


insertrow(item)
// msg = results.rows.item(i).id + "," + results.rows.item(i).customername + "," +
results.rows.item(i).country + "<br>";
//document.querySelector('#customer').innerHTML += msg;
}
}
function update() {

var isvalid = document.getElementById("FirstName").validity.valid;


if (isvalid== false) {
return;
}
var id = document.getElementById('id').value;
if (id.trim().length > 0) {
updaterecord()
alert('Data Updated');
}

22

else {
insertinto();
alert('Data Saved');
}
selectall();
document.forms[0].reset();
}
function mouseover(obj) {

obj.style.backgroundColor = '#ffff66';
obj.style.cursor="pointer";

}
function mouseout(obj) { obj.style.backgroundColor = '#d4e3e5'; }
function rowclick(obj) {

var check=obj.cells;
if (check != undefined) {
document.getElementById('id').value = obj.cells[0].innerHTML
document.getElementById('FirstName').value = obj.cells[1].innerHTML;
document.getElementById('LastName').value = obj.cells[2].innerHTML;
document.getElementById('Email').value = obj.cells[3].innerHTML;
document.getElementById('CellPhone').value = obj.cells[4].innerHTML;
document.getElementById('HomePhone').value = obj.cells[5].innerHTML;
document.getElementById('OfficePhone').value = obj.cells[6].innerHTML;

23

document.getElementById('Birthday').value = obj.cells[7].innerHTML
//formatdate(x);

document.getElementById('HomeAddress').value = obj.cells[8].innerHTML;
document.getElementById('OfficeAddress').value = obj.cells[9].innerHTML;
}
// alert();
}

</script>
<style type="text/css">
table.alternate_color tr:nth-child(even) td{
color:white;
}
table.hovertable {
font-family: verdana,arial,sans-serif;
font-size:11px;
color:#333333;
border-width: 1px;
border-color: #999999;
border-collapse: collapse;
}
table.hovertable th {

24

background-color:#c3dde0;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
table.hovertable tr {
background-color:#d4e3e5;
}
table.hovertable td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #a9c6c9;
}
</style>

<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<table>
<tr>

25

<td>
<table class="hovertable" id="datalist">
<thead >
<tr>
<td>ID</td>
<td>First Name</td>
<td>Last Name</td>
<td>Email</td>
<td>Cell Phone</td>
<td>Home Phone</td>
<td>Office Phone</td>
<td>Birthday</td>
<td>Home Address</td>
<td>Office Address</td>

</tr>
</thead>

</table>

</td>
<td>
<form onsubmit="update();">
<table>

Personal Details

26

<tr>
<td>ID</td>
<td><input type="text" id="id" placeholder="Click Save to Insert Record" /></td>
</tr>
<tr>

<td>First Name</td>
<td>
<input type="text" id="FirstName" placeholder="Enter First Name" required="required"
/></td>
</tr>
<tr><td>Last Name</td>
<td><input type="text" id="LastName" placeholder="Enter Last Name"/></td></tr>
<tr>
<td>Email Name</td>
<td><input type="email" id="Email" placeholder="Enter Email" /></td>
</tr>
<tr>
<td>Cell Phone</td>
<td><input type="tel" id="CellPhone" placeholder="Enter Cell Phone Number"/></td>
</tr>
<tr>
<td>Home Phone</td>
<td><input type="tel" id="HomePhone" placeholder="Enter Home Phone Number"
/></td>
</tr>

27

<tr>
<td>Office Phone</td>
<td><input type="tel" id="OfficePhone" placeholder="Enter Office Phone Number"
/></td>
</tr>
<tr>
<td>Birth Date</td>
<td><input type="date" id="Birthday" value="2014-09-21" /></td>
</tr>
<tr>
<td>Home Address</td>

<td><textarea id="HomeAddress" placeholder="Enter Home Address"></textarea></td>


</tr>
<td>Office Address</td>

<td><textarea id="OfficeAddress" placeholder="Enter Office Address"></textarea></td>


</tr>
<tr>
<td><input type="submit" id="Save" value="Save" /></td>
<td><input type="button" id="Delete" value="Delete" onclick="delrecord();"/></td>
<td><input type="reset" id="reset" value="Reset"/></td>
</tr>
</table>
</form>
</td>

28

</tr>
</table>
</body>
</html>

29

Screen Shots
7.1

Onclick Record from table flourishes to input screen.

30

7.2

Change the information on Personal Details screen and click Save button to update
details

31

7.3

Click on Delete button to delete selected record on screen

32

7.4

Screen After deleting Record

33

7.5

Before Saving New Record

34

7.6

New Record Saving

35

7.7

New Record Saved

36

7.8

New Record Saved

37

Testing
8.1

Document Scope

The scope of this document is to define the structure, scope and processes of the tests that will be
executed during the Address Book Web Application Test phase of the project.
This document describes the following:

Scope of Address Book Web Application Test

Overview of the Test Model definition, including the outline of Test Cycles and Sub-cycles

Overview of the Test Preparation and Test Execution phases

Overview of the processes that will be adopted during Test Preparation and Test Execution
phases

8.2

High level definition of the Address Book Web Application Test Environment and Test Tools
Scope of Address Book Web Application Test

The aim of Address Book Web Application Test is to test that the Application delivers the functionality
as described in the Use Case documents. This will be achieved by defining an Address Book Web
Application Test Model capturing all the Test Conditions and Test Scenarios which will prove the
integrity of the Application as described in the Use Case documents and executing the Test Model
against the application code.

The signed-off business requirements are mapped to the signed-off Use Cases. The Use Cases will
therefore be the primary source for the definition of the Address Book Web Application Test Model.

Traceability of Business requirements to Use Cases is defined in the AP201 Requirements and
Traceability deliverable. Similarly, traceability of Use Cases will be provided to Test Conditions,
eventually allowing traceability from Business requirements through to Test Scripts.
Address Book Web Application Test for the system will not include the following:
1. Contact Listing
2. Adding New Contact
3. Delete existing Contact
4. Updatd Existing Contact

38

The objectives of this testing phase are as follows:


1. To confirm that the application meets the business requirements as detailed in the use case
model
2. To ensure that system configurations are correct and complete as per business requirements
3. To ensure that business processes integrate effectively and efficiently
4. Validate work-flows derived to support business requirements
5. To confirm that all required Address book Web Application as per the business requirements
6. To ensure that the project managers and process owners have adequate and accurate data
from which to make decisions regarding implementation.
8.3

Address Book Web Application Test Boundary

The diagram below outlines the functional scope boundary for Address Book Web Application test and
illustrates the interface points.

User

Maintain
Address Book

WebBrowser
DB

Address Book System

8.4

Address Book Web Application Test Phases


The Address Book Web Application Test phase will be split into three distinct phases as follows:
8.4.1

Test Model
This will include:

Test Model including Test Scenarios and Test Conditions.

39

8.4.2

Detailed Test Preparation

Detailed test preparation including Test Scripts and Expected Results for all Address Book
Web Application tests.

8.4.3

Test Execution

This will include:


i. Contact Listing
ii. Adding New Contact
iii. Delete existing Contact
iv. Updatd Existing Contact

No Fatal, No Functional and Clean runs of the Test Scripts created in detailed test
preparation. Tests will involve the comparison of the actual and expected results for all
Address Book Web Application tests.

8.5
8.6

Address Book Web Application Test Timeline

Test Scenarios
Test Scenarios will be developed following the completion of the Test Conditions. The Test
Scenarios will group those Test Conditions with common inputs.
When formulating Test Scenarios, it will be the responsibility of the Test Team Leads to
ensure that the Test Scenarios provide the right balance of efficiency in Test Condition
coverage against creating Scenarios that become too large to manage. Assessing too many
Test Conditions in one Scenario will increase the amount of logical branches being tested
within the Application. A highly complex scenario will also make issue identification and
resolution more difficult. Conversely, a high granularity of Test Scenarios results in a
proliferation of input scripts and data to be prepared.
The Input Data information being passed on to the system during the testing should vary and
be more production-like.
Test Scenarios will be documented with the following detail:

High-Level Sub-Cycles that the Test Scenario sits under;

Test Conditions, Use Case sections and business requirements mapped to the Test

Scenario;

40

Identification of the type of Input Functions that the Test Scenario requires / uses;

Input Messages required to meet the Test Conditions;

Reference data changes (e.g. Company Name update or Auto Approve rule changes.)

required to test the Conditions appropriately.

Functional outcomes to be tested (e.g. UI Messages, Table updates, and Output data/files

to external systems).

8.7

Exit Criteria for Test Model


The following Exit Criteria need to be met for the completion of the Test Model.
Traceability of Use Cases to Address Book Web Application Test Conditions has been
defined
Each Test Condition has been mapped to a Test Scenario
Note: A Test Condition can get tested in more than one Scenario but should still be mapped
to a single Scenario only.
All Test Model spreadsheets and overview documents have been checked into the correct
Micorsoft Team Foundation Server repository
Address Book Web Application Test Model has been signed off.
The Address Book Web Application Test Model will encompass the detailed Test Scenarios
and Test Conditions for each Sub-Cycle. Sign-off of the Test Model is required in order to
agree the detailed scope of the Address Book Web Application Test.
Common test Data created
Common Test data to be used in detailed Test Preparation will be created from the test data
provided by the client.

8.8

Entry Criteria to Detailed Test Preparation

The following Entry Criteria need to be met for the commencement of Detailed Test Preparation:
Test tool input templates defined

41

Test Preparation Guidelines and Principles have been defined and communicated
Detailed preparation guidelines and templates are required in order to ensure consistency
across the test preparation and compatibility with the Test Toolset. Note: Any deviations to
this should be agreed and documented as part of the Test Pack.
Use Cases completed and baselined
Input Scripts and Expected results comprise large volumes of message and database table
data.
Common Test Data created and baselined
This will be used as input to the test scenarios in the detailed test preparation. The data will
need to include references to a range of permutations of announcements that require
Address Book Web Application testing. Third party common test data provided as entry
criteria to Test Model definition will be included in this data set.
8.9

Input Scripts

The Input Scripts will comprise the following elements:


Amendments to be applied over and above the Common Test Data in order to establish a
certain condition;

This information will have been provided in the Test Scenario in a prose format. The Input Script will
specify the specific data elements which will be read by the Test Execution Tool in order to execute the
Test and the required steps/actions to execute the scenario.

8.10 Expected Results


Each Input Script will require a set of Expected Results that will be assessed against actual test output
during the Test Execution phase.

The Expected Results will be derived primarily from the Use Cases. However, Test Team Leads will
validate all Expected Results, against other sources where further confirmation or validation against the
Use Cases, Business Requirements and Solution Designs is required.

42

The Expected Results will be documented in a standard template that will detail each event by output
type in the correct sequence. They will not be documented with inter-linked outputs in an attempt to
predict the order the system will perform actions, as these actions may run concurrently and will be
almost impossible to predict which event will occur first. Table writes will be validated by confirming that
the data present in the table matches the expected results.
8.11 Exit Criteria to Detailed Test Preparation
The following Exit Criteria are required for the completion of Detailed Test Preparation:

Address Book Web Application Test Model has been updated to reflect agreed Change
Request and/or to resolve any issues identified during Detailed Test Preparation

Resolution of issues and functional change requests identified during the course of
Detailed Test preparation must be agreed with the Test Manager and implemented in the
Test Model documentation.

Common Test data has been updated to reflect agreed changes and to resolve any
issues identified during Detailed Test Preparation

The common test data is updated to reflect changes identified in detailed test preparation.

Completion of the Test Preparation Packs for each individual sub-cycle

Input Scripts and Input data created during Detailed Test Preparation must be available to

All Test Scripts and related data files have has been checked into the correct Micorsoft

A file structure will be created in Micorsoft Team Foundation Server which reflects the test

the Test Execution Team.

Team Foundation Server repository

model structure. As the test script documents will comprise multiple spreadsheets and
data files, it important that they are correctly labelled and added to the correct repository
folders.
8.12 Test Execution
All tests will be executed by the Test Execution team according to the test schedule and there will be no
formal test executions by client staff. The execution schedule and test packs will be made available to
the client and they may choose to observe the execution of any test Sub-Cycles as required. This
would be particularly appropriate for Clean executions. Test cycles will be re-executed only for
regression purposes i.e. successful tests will not be re-executed.

43

Test Execution will follow a three-pass approach as follows:

Pass 1 - No Fatal
The aim of Pass 1 No Fatal is to drive out all issues which prevent the script from being
executed in full. A No Fatal pass can be considered complete when all steps in the
cycle can be executed.

Pass 2 - No Functional
The aim of Pass 2 No Functional is to drive out all functional issues. During the No
Functional pass, the cycle has executed and expected results meet actual results.
Released code, but with added patches can be used for this cycle.

Pass 3 - Clean
After completing the Clean pass, there are no discrepancies between expected and
actual results.

8.13 Entry Criteria to Test Execution


The following Entry Criteria are required prior to the commencement of Test Execution:

Completion of Architecture and Application Build


Completion of Application and Architecture Build will be recorded in the Completion
Reports issued for each phase. They will note the completion of Build, Unit and Assembly
Test; Smoke Test

Completion of Smoke test validating the Address Book Web Application test environment
and end to end pipecleaning test cycles as agreed

Build Verification test should be complete


The build which is released for testing should have undergone a complete verification test
which will include:

Environment stability

Database updates

Field validations and formatting

44

Completion of the Test Preparation Packs for each individual sub-cycle


Input Scripts and Data files created during Detailed Test Preparation must be available to
the Test Execution Team

Test Execution Tool is available and pre-loaded with all test scripts from the Test
Preparation Packs

Address Book Web Application Test Environment available


The Address Book Web Application test environment is available for execution.

8.14 Report and Fix Defects


During the testing, defects will be logged by the Tester in Microsoft Team Foundation and will
be assigned to appropriate Developer. Once, developer fix it, it will be ready for retest and
assigned back to same tester for retest.
8.15 Re-testing Scenarios
Any Scenario that fails an execution pass will be retested once the necessary amendments have
been made to the test script and the fixes for the associated defects have been completed. All
Test Scenarios that are held within that Sub-Cycle must also be regression tested, even if they
have previously had a clean pass.
8.16 Exit Criteria to Test Execution
The following Exit Criteria are required for the completion of Test Execution:

All defects have been closed


It will not be possible to complete sub-cycles where there are open defects associated,
with the exception of minor defects. The status and impact of the minor defects will be
documented and agreed through the Address Book Web Application Test Closure
Report;

A clean execution pass has been achieved for all Address Book Web Application
Test scenarios
An updated Test Pack containing the actual results for clean execution passes must be
completed for each Sub-Cycle;

45

All Address Book Web Application Test Scripts should be ready for the Regression
Suite
Address Book Web Application Test Scripts should be complete is all aspects ready to be
picked up by the Regression Suite which also ensures that automated regression test
capability is delivered;

Address Book Web Application Test Packs have been completed


It is expected that some of the issues raised during Address Book Web Application test
Execution will be resolved through update of the input scripts and/or data. The final
versions of all test documentation must be correctly labelled and added to the correct
repository folders;

All Change Requests which impact the application functionality must be


implemented in Address Book Web Application Test Model
All changes requests which have been open during Address Book Web Application Test
must be fully impacted and implemented against the Functional Test Model. It is
expected that a Change Freeze will be imposed before the end of Address Book Web
Application Test Execution in order to accommodate this.

8.17 Address Book Web Application Test Closure Report has been signed off

46

8.18 Test Script:


8.18.1 Add New Contact Test Case
#

Test Condition

Exected Result

ID is auto Generated

Id Generated

Enter details as First Name ,Last

User is able to

Name, Email, Cell Phone, Home

enter all

Actual Result

Phone, Office Phone, Birthday,


Home Address, Office Address.
3

Once all the value is entered, click on

Data is saved

save.
4

Newly added record should be visible

Newly added

in Grid as last record.

record displayed in
grid.

8.18.2 Edit Contact Test Case


#
1

Test Condition
Click on Contact record to Edit.

Exected Result

Actual Result

User is able to
select the record.

Currently selected record data will be

Selected record

populated on the screen. .

data is populated
on the Personal
Details Screen.

ID cant be changed as its a system

User is not able to

generated.

change the ID field


value.

Make changes as required First

User is able to

Name ,Last Name, Email, Cell

make the chages.

Phone, Home Phone, Office Phone,


Birthday, Home Address, Office
Address.

47

Once all the required information

User is able to click

updated, click on save.

on save to save
date. Gets the
confirmation
message.

Recently updated record should be

Verify grid if data

visible in Grid with updated details

has been updated


as per the changes.

8.18.3 Delete Contact Test Case


#
1

Test Condition

Exected Result

Single Click on Contact record to

User is able to

Delete.

select the record.

Currently selected record data will be

Selected record

populated on the screen

data is populated

Actual Result

on the Personal
Details Screen.
3

Click on Deleted.

User is able to click


on delete button.
Record is deleted
and user gets
popup up on
deletion.

Recently deleted record should be

Verify the record

removed from Grid.

does not exist on


the grid any longer.

Deleted ID will not be reused.

Verify Deleted
record id is not
assigned to new
record.

48

8.18.4 Reset Page Content Test Case


#

Test Condition

Exected Result

Click on Reset.

All the values on the screen will be

Personal Details

removed from the fields. No changes

screen is cleaned

will be capture to the Database.

up.

Actual Result

User is able to click


on Reset button.

49

Maintainance Adaptation

The system can be further enhance to add more features like adding multiple email address, multiple
phone number, home address, office address. Also system can be integrated to email service provider
and can be use for contact maintainance. The next phase of this project will be to add some more
features as mentioned above.

10 Biblography
http://www.igi-global.com/chapter/effort-estimation-model-each-phase/62445
http://webapps.6te.net/HowtoPrepareSoftwareQuotations.pdf
http://www.w3schools.com/html/html5_intro.asp

50