Database Assignment 2
Database Assignment 2
Table of Contents
0.1 Activity 01...............................................................................................................................30
1.1 User and system requirements of the E-Space Solutions System........................................30
1.4 Normalization......................................................................................................................34
2
2.4.4 Update Command.........................................................................................................60
2.4.5 Between Command.......................................................................................................61
2.4.6 In Command.................................................................................................................62
2.4.7 Group by Command.....................................................................................................63
2.4.8 Order by Command......................................................................................................64
2.4.9 Having Command.........................................................................................................65
0.3 Activity 03...............................................................................................................................66
3.1 Database Testing..................................................................................................................66
4.2.1 Introduction.................................................................................................................112
4.2.2 Welcome page............................................................................................................113
4.2.3 Login Page..................................................................................................................113
4.2.4 Dashboard...................................................................................................................114
4.2.5 Colonist Registration Page.........................................................................................115
4.2.6 Pilot Registration Page...............................................................................................116
4.2.6 House Assignment Page.............................................................................................117
4.2.7 Job Assignment Page..................................................................................................118
4.2.8 Trip Information Page.................................................................................................119
4.2.9 E-Jet Information Page...............................................................................................120
4.3 Technical Documentation..................................................................................................121
3
4.3.1 Introduction.................................................................................................................121
4.3.2 User Requirements......................................................................................................122
4.3.3 Software Requirements...............................................................................................123
4.3.4 Hardware Requirements.............................................................................................123
4.3.5 Use Case Diagram......................................................................................................123
4.3.6 Data Flow Diagram.....................................................................................................125
4.3.7 Flow Chart..................................................................................................................127
4.3.7 Database Design.........................................................................................................130
4.3.8 Visual Studio forms and Source codes.......................................................................131
4.4 Potential Future Enhancements for the E-Space Solutions System...................................142
References....................................................................................................................................143
4
Table of Figures
Figure 1: ER Diagram of E-Space Solutions System....................................................................31
Figure 2: Relational Schema of E-Space Solutions System..........................................................33
Figure 3: Wireframe of Colonist Registration...............................................................................35
Figure 4: Wireframe of Pilot Registration.....................................................................................35
Figure 5: Wireframe of House Assignment...................................................................................36
Figure 6: Wireframe of Job Assignment.......................................................................................36
Figure 7: Wireframe of Trip Information......................................................................................37
Figure 8: Wireframe of E-Jet Information.....................................................................................37
Figure 9: SQL code for creating database.....................................................................................40
Figure 10: SQL code of creating data table (Colonist)..................................................................40
Figure 11: SQL code of creating data table (Pilot)........................................................................41
Figure 12: SQL code of creating data table (Job & House)..........................................................41
Figure 13: SQL code of creating data table (E-Jet & Trip)...........................................................42
Figure 14: Data validations in Colonist table................................................................................43
Figure 15: Data validations in the Pilot table................................................................................43
Figure 16: Data validation in E-Jet table.......................................................................................44
Figure 17: Data validation in House table.....................................................................................44
Figure 18: Data validation in Job table..........................................................................................45
Figure 19: Data validation in Trip table........................................................................................45
Figure 20: Visual Studio IDE........................................................................................................47
Figure 21: SQL Server Management Studio IDE..........................................................................47
Figure 22: User Interface (1).........................................................................................................48
Figure 23: User Interface (2).........................................................................................................49
Figure 24: User Interface (3).........................................................................................................49
Figure 25: User Interface (4).........................................................................................................50
Figure 26: User Interface (5).........................................................................................................50
Figure 27: User Interface (6).........................................................................................................51
Figure 28: User Interface (7).........................................................................................................51
Figure 29: User Interface (8).........................................................................................................52
Figure 30: User Interface (9).........................................................................................................52
5
Figure 31: Grant command............................................................................................................53
Figure 32: Revoke command.........................................................................................................54
Figure 33: Query of select command (1).......................................................................................56
Figure 34: Query of select command (2).......................................................................................56
Figure 35: Query of where command (1)......................................................................................57
Figure 36: Query of where command (2)......................................................................................57
Figure 37: Query of insert command (1).......................................................................................58
Figure 38: Query of insert command (2).......................................................................................58
Figure 39: Query of update command (1).....................................................................................59
Figure 40: Query of update command (2).....................................................................................59
Figure 41: Query of between command (1)...................................................................................60
Figure 42: Query of between command (2)...................................................................................60
Figure 43: Query of In command (1).............................................................................................61
Figure 44: Query of In command (2).............................................................................................61
Figure 45:Query of Group by command (1)..................................................................................62
Figure 46: Query of Group by command (2).................................................................................62
Figure 47: Query of Order by command (1)..................................................................................63
Figure 48: Query of Order by command (2)..................................................................................63
Figure 49: Query of Having command (1)....................................................................................64
Figure 50: Query of Having command..........................................................................................64
Figure 51: Black box testing..........................................................................................................67
Figure 52: White box testing.........................................................................................................67
Figure 53: Test output 1.................................................................................................................70
Figure 54: Test output 2.................................................................................................................71
Figure 55: Test output 3.................................................................................................................72
Figure 56: Test output 4.................................................................................................................73
Figure 57: Test output 5.................................................................................................................74
Figure 58: Test output 6.................................................................................................................75
Figure 59: Test output 7.................................................................................................................76
Figure 60: Test output 8.................................................................................................................77
Figure 61: Test output 9.................................................................................................................78
6
Figure 62: Test output 10...............................................................................................................79
Figure 63: Test output 11...............................................................................................................80
Figure 64: Test output 12...............................................................................................................81
Figure 65: Test output 13...............................................................................................................82
Figure 66: Test output 14...............................................................................................................83
Figure 67: Test output 15...............................................................................................................84
Figure 68: Test output 16...............................................................................................................85
Figure 69: Test output 17...............................................................................................................86
Figure 70: Test output 18...............................................................................................................87
Figure 71: Test output 19...............................................................................................................88
Figure 72: Test output 20...............................................................................................................89
Figure 73: Test output 21...............................................................................................................90
Figure 74: Test output 22...............................................................................................................91
Figure 75: Test output 23...............................................................................................................92
Figure 76: Test output 24...............................................................................................................93
Figure 77: Test output 25...............................................................................................................94
Figure 78: Test output 26...............................................................................................................95
Figure 79: Test output 27...............................................................................................................96
Figure 80: Test output 28...............................................................................................................97
Figure 81: Test output 29...............................................................................................................98
Figure 82: Test output 30...............................................................................................................99
Figure 83: Test output 31.............................................................................................................100
Figure 84: Screenshot of Google Form 1....................................................................................104
Figure 85: Screenshot of Google Form 2....................................................................................104
Figure 86: Screenshot of Google Form 3....................................................................................104
Figure 87: Screenshot of Google Form 4....................................................................................104
Figure 88: Screenshot of Google Form 5....................................................................................105
Figure 89: Screenshot of Google Form 6....................................................................................105
Figure 90: Screenshot of Google Form 7....................................................................................105
Figure 91: Summary of the questionnaire (1)..............................................................................106
Figure 92: Summary of the questionnaire (2)..............................................................................106
7
Figure 93: Summary of the questionnaire (3)..............................................................................107
Figure 94: Summary of the questionnaire (4)..............................................................................107
Figure 95: Summary of the questionnaire (5)..............................................................................107
Figure 96: Summary of the questionnaire (6)..............................................................................108
Figure 97: Summary of the questionnaire (7)..............................................................................108
Figure 98: Summary of the questionnaire (8)..............................................................................108
Figure 99: Summary of the questionnaire (9)..............................................................................109
Figure 100: Summary of the questionnaire (10)..........................................................................109
Figure 101: Summary of the questionnaire (11)..........................................................................110
Figure 102:Welcome page of the system.....................................................................................112
Figure 103: Login page of the system.........................................................................................112
Figure 104: Dashboard of the system..........................................................................................113
Figure 105: Colonist registration page of the system..................................................................114
Figure 106: Pilot registration page of the system........................................................................115
Figure 107: House assignment page of the system......................................................................116
Figure 108: Job assignment page of the system..........................................................................117
Figure 109: Trip information page of the system........................................................................118
Figure 110: E-Jet information page of the system.......................................................................119
Figure 111: Logo of SQL Server Management Studio................................................................121
Figure 112: Logo of Visual Studio..............................................................................................121
Figure 113: Logo of Figma..........................................................................................................121
Figure 114: Logo of draw.io........................................................................................................121
Figure 115: Use case diagram for the system..............................................................................123
Figure 116: DFD Level 0.............................................................................................................124
Figure 117: DFD Level 1.............................................................................................................125
Figure 118: Flow chart (1)...........................................................................................................126
Figure 119: Flow chart (2)...........................................................................................................127
Figure 120: Flow chart (3)...........................................................................................................128
Figure 121: ERD of the system...................................................................................................129
Figure 122: GUI 1........................................................................................................................131
Figure 123: Source code (1)........................................................................................................132
8
Figure 124: GUI 2........................................................................................................................132
Figure 125: Source code (2)........................................................................................................133
Figure 126: GUI 3........................................................................................................................133
Figure 127: Source code (3)........................................................................................................134
Figure 128: Source code (4)........................................................................................................134
Figure 129: GUI 4........................................................................................................................135
Figure 130: Source code (5)........................................................................................................135
Figure 131: GUI 5........................................................................................................................136
Figure 132: Source code (6)........................................................................................................136
Figure 133: GUI 6........................................................................................................................137
Figure 134: Source code (7)........................................................................................................137
Figure 135: GUI 7........................................................................................................................138
Figure 136: Source code (8)........................................................................................................138
Figure 137: GUI 8........................................................................................................................139
Figure 138: Source code (9)........................................................................................................139
Figure 139: GUI 9........................................................................................................................140
Figure 140: Source code 11.........................................................................................................140
9
Table of Tables
Table 1: Test case 1.......................................................................................................................70
Table 2: Test case 2.......................................................................................................................71
Table 3: Test case 3.......................................................................................................................72
Table 4: Test case 4.......................................................................................................................73
Table 5: Test case 5.......................................................................................................................74
Table 6: Test case 6.......................................................................................................................75
Table 7: Test case 7.......................................................................................................................76
Table 8: Test case 8.......................................................................................................................77
Table 9: Test case 9.......................................................................................................................78
Table 10: Test case 10...................................................................................................................79
Table 11: Test case 11...................................................................................................................80
Table 12: Test case 12...................................................................................................................81
Table 13: Test case 13...................................................................................................................82
Table 14: Test case 14...................................................................................................................83
Table 15: Test case 15...................................................................................................................84
Table 16: Test case 16...................................................................................................................85
Table 17: Test case 17...................................................................................................................86
Table 18: Test case 18...................................................................................................................87
Table 19: Test case 19...................................................................................................................88
Table 20: Test case 20...................................................................................................................89
Table 21: Test case 21...................................................................................................................90
Table 22: Test case 22...................................................................................................................91
Table 23: Test case 23...................................................................................................................92
Table 24: Test case 24...................................................................................................................93
Table 25: Test case 25...................................................................................................................94
Table 26: Test case 26...................................................................................................................95
Table 27: Test case 27...................................................................................................................96
Table 28: Test case 28...................................................................................................................97
Table 29: Test case 29...................................................................................................................98
Table 30: Test case 30...................................................................................................................99
10
Table 31: Test case 31.................................................................................................................100
11
0.1 Activity 01
12
3. Scalability :
The database could handle more colonists, trips, E-Jets, houses, etc.
4. Data integrity :
Colonist data, family details, job assignments, and trip records should be accurate and
consistent.
5. Reporting functions :
Ability to generate reports on job assignments, E-Jet trip details, trip passengers, etc.
Entity Relationship Diagram (ERD) is a visual representation that illustrates the relationship
between entities and attributes of the database. There are three main elements in ERD. They are
entities, attributes and relationships.
The following is the ER diagram (figure 1) designed for the E-Space Solutions System. Draw.io
online tool was used to draw the ER Diagram. There are seven entities: Colonist, Astronomer,
Trip, House, Dependents, Job and E-Jet
13
Figure 1: ER Diagram of E-Space Solutions System
The design or the structure of the database is known as relational schema. It is an arrangement of
integrity constraints. It also shows what connections make up the database. The relational
schema is a view of the shape, blueprint or design of the sets of information within the database.
14
A relational schema includes many items to represent data connections in the database. Tables
are a main component in the relational schema. Entities of the ER diagram are represented by
using tables here. The purpose of tables in a relational database schema is to organize groups of
data that developers could implement in their databases. Attributes of the ER diagram are stored
in those tables. Primary keys and foreign keys are mentioned in the tables. Each table has a
unique primary key. Foreign keys are used to identify links between tables. Relations between
tables are represented by using arrows (Indeed Editorial Team, 2024).
Relational schema can help significantly with the organization of data in the database. It allows
for the accuracy and integrity of data in the database. Also, a clear relational schema is easy to
read and understand, which makes the tables and sets of information accessible (Indeed Editorial
Team, 2024).
The following figure 2 shows the relational schema designed for the E-Space Solutions System.
It includes seven tables chosen from the database.
15
Figure 2: Relational Schema of E-Space Solutions System
1.4 Normalization
Normalization is the process of grouping data in a relational database design that will eliminate
data redundancies and remove data anomalies. Redundancy in relation may cause insertion,
deletion, and update anomalies. When the database does not support inserting a new tuple into a
relationship due to a lack of data, it is known as an insertion anomaly. The situation where the
deletion of data results in the unintended loss of some other important data, is known as deletion
anomaly. An updating anomaly is when an updating of a single data value requires multiple rows
of data to be updated. There are 4 types of normalizations, 1 st normal form, 2nd normal form, 3rd
normal form and Boyce Codd normal form. Normalization helps to minimize data redundancy. It
ensures that data is stored consistently and organised, reducing the risk of data inconsistencies
16
and errors. It reduces the complexity of a database by breaking it down into smaller, more
manageable tables, making it easier to add, modify, and delete data (Anon., 2024).
According to the ER diagram and relational schema, the E-Space Solutions database does not
contain data redundancies and anomalies, so there is no need to normalise it.
A User Interface is a digital interface where the user interacts with the system's graphical
elements. In a User Interface, visual elements represent actions users can take, objects that users
can manipulate, and other information relevant to the user. Some common visual elements
include the mouse pointer, buttons, icons, menus, toolbars, and ribbons (Juviler, 2024).
17
1.5.2 Created Wireframes for the above scenario
The created wireframes are given in figures 3-8.
18
Figure 5: Wireframe of House Assignment
19
Figure 7: Wireframe of Trip Information
20
1.6 Evaluation of the effectiveness of the given design
The database design of E-Space Solutions meets user and system requirements. The role of the
System Administrator is to manage user access and database. This system design includes many
tables such as colonist, astronomer, department, E-Jet, and trip to handle the database easily.
This design includes primary keys and foreign keys which help to ensure data integrity which
helps the System Administrator. For the colonists, the system design allows clear tracking of
their family details, trip details, house details etc. And also system design track on their jobs and
roles on Mars. Astronomers have access to trip details, E-Jet information, and colonists’
information who are assigned to the trips. Colony superintendents can generate reports on
colonists, house allocations, job allocations etc. Since the details of colonists, houses and jobs are
recorded in the system, it is easy to retrieve information for generating reports.
In conclusion, this system design effectively meets user and system requirements. It supports
data integrity, security, and scalability, which help manage them. Also, this system design can be
expanded according to future enhancements.
0.2 Activity 02
21
2.1.1 Software used to create the database
SQL Server Management Studio is the software that is used to create the E-Space Solutions
Database. It is an integrated environment for managing any SQL infrastructure. The following
are the reasons to choose SQL Server Management Studio to create this database. SQL Server
Management Studio can be installed easily and contains excellent compression and encryption
capabilities that result in improved data storage and retrieval functions. Also, it gives user-
friendly interfaces which are helpful when designing and coding.
22
Figure 9: SQL code for creating database
23
Figure 11: SQL code of creating data table (Pilot)
Figure 12: SQL code of creating data table (Job & House)
24
Figure 13: SQL code of creating data table (E-Jet & Trip)
The above data validations have been done in the E-Space Solutions System. The followings are
the evidence:
25
Data validation in the Colonist table shown in Figure 14
26
Figure 16: Data validation in E-Jet table
27
Figure 18: Data validation in Job table
28
2.2 Interfaces designed using IDE for the E-Space Solutions System
Visual Studio IDE and SQL Server Management Studio are the IDEs used to create the E-Space
Solutions System (figure 20-21).
29
Figure 20: Visual Studio IDE
30
To design GUI interfaces used IDE is Visual Studio. It is a powerful developer tool that can be
used to complete the entire development cycle in one place. Beyond code editing and debugging,
Visual Studio includes compilers, code completion tools, source control, extensions, and many
more features to enhance every stage of the software development process. Visual Studio IDE
helps users to easily browse the UI so they can write their code quickly and precisely. It offers
some debugging tools and it is important for developers to quickly identify potential errors in the
code.
To design the database used IDE is SQL Server Management Studio. It is an integrated
environment for managing any SQL infrastructure. It is used to configure, manage, and
administer all components within SQL Server, including databases, SQL Server instances, and
SQL scripts. It provides a rich graphical interface to interact with SQL Server instances, allowing
users to configure, manage, and administer databases. Key features of SSMS include the Object
Explorer, Query Editor etc.
The created interfaces by using Visual Studio are given in Figures 22-30.
31
Figure 23: User Interface (2)
32
Figure 25: User Interface (4)
33
Figure 27: User Interface (6)
34
Figure 29: User Interface (8)
35
2.3 Security Mechanism
A database's safety mechanism serves as a safeguard against misuse or illegal access to the data.
It ensures the data stored in the database can only be viewed, updated, or deleted by the
appropriate individuals. Security features guarantee that the database is utilized appropriately and
assist protect sensitive data (Anon., 2021).
Basic security mechanisms, Grant and Revoke commands are implemented in the E-Space
Solutions Database (Figure 31-32).
36
Figure 32: Revoke command
E-Space Solutions database system tracks data about colonists, their dependents, pilots
(astronomers), E-Jets, House assignments, Job Assignments etc. The system ensures that the data
are accurately stored. For example, it ensures that data on each colonist such as ID, name, age,
gender, contact number, civil status, and family details is accurately captured. This structure
supports database users such as data entry operators, system administrators, colony
superintendents, astronomers and colonists.
The database supports scalability, security and data integrity. The system is scalable to support
an increasing number of colonists and associated data, quickly updated, and queryable for
pertinent reports. Also, the integrity and consistency of data are maintained, especially for
complex relationships such as colonists.
Implemented role-based access control ensures that users only have access to the information
they require. For example, the DataEntryOperator position is limited to reading and altering
basic colonist data, whereas an Administrator has complete power over the database. This
ensures the security of the system.
37
In general, the database design ensures that user access is appropriately controlled, data integrity
is maintained, and security protocols are adhered to. Utilizing these standards, the database
solution will assist the Mars Colonization initiative in reaching its goals while safeguarding
sensitive information and ensuring the system's capacity to expand with future developments.
SQL statements are a set of instructions that are used to perform actions in a database. SQL
statements consist of keywords that are easy to understand.
Data Manipulation Language (DML) is a set of SQL commands used to manipulate data within
database tables or query views. It is a collection of operations utilized for inserting, deleting, and
updating information within a database. It performs interpret-only data queries. It is used in a
database schema to recall and manipulate information (Luchmee, 2024).
The data recorded in the database can be changed via DML statements. It allows for efficient
interaction between humans and machines. DML aims to offer a wide range of features and
options across database operators. However, DML cannot be used to change the structure of the
database (Anon., 2024).
The main difference between DML and SQL statements is that SQL is used to create, modify, or
destroy objects within DBMS, while the DML is the domain of INSERT, UPDATE, and
DELETE used to manipulate data.
Some Data Manipulation Language (DML) commands and SQL commands are as follows:
38
information, trips, and E-Jet assignments. They allow users to filter and find specific records.
Examples from the database:
1. Selecting all columns from a table (figure 33)
39
2.4.2 Where Command
This command is used to extract only those records that fulfil a specified condition. This is
essential for adding new colonists, trips, E-Jet assignments, and job assignments, all of which are
crucial for the colonization process. Examples from the database:
1. Using to filter records by a specific value (figure 35)
40
2.4.3 Insert Command
This command is used to enter the information or values into a row. This allows for the updating
of records, such as modifying colonists' information or changing the scheduled trip date. It's
important for maintaining accurate and up-to-date data.
Examples from the database:
1. Inserting a single cell into a table (figure 37)
41
2.4.4 Update Command
This command is used to update or modify the existing data in database tables. This allows for
the updating of records, such as modifying colonists' information or changing the scheduled trip
date. It's important for maintaining accurate and up-to-date data. Examples from the database:
1. Update a single cell of a table (figure 39)
42
2.4.5 Between Command
This command is used to select values within a given range. These operators help in filtering
data by specific ranges. The values can be numbers, text, or dates. Examples from the database:
1. Using the Between command with numerical data (figure 41)
43
2.4.6 In Command
This command allows to specify multiple values in a WHERE clause. Examples from the
database:
1. Using the In command with numerical data (figure 43)
44
2.4.7 Group by Command
The GROUP BY statement groups rows that have the same values into summary rows. These are
useful for reporting and aggregating data, such as counting how many colonists fall into each age
group or how many trips are scheduled for specific dates. This helps in summarizing large
datasets. Examples from the database:
1. Group colonists by their age and count how many colonists fall into each age group
(figure 45).
2. Group trips by their date and count the number of trips on each date (figure 46).
45
2.4.8 Order by Command
This command is used to sort the result set in ascending or descending order. Sorting is helpful
for presenting data in a meaningful way, such as displaying colonists ordered by age or trips
sorted by their scheduled date. Examples from the database:
1. Sorting to ascending order(figure 47)
46
2.4.9 Having Command
Having command is used to filter the rows of the table. (Figure 49-50)
47
0.3 Activity 03
Database testing is a type of software testing process that tests the consistency, tables, triggers,
schema, and data integrity. It is also known as black-end testing. It entails writing challenging
queries that are challenging to load, stress testing the database, and assessing how responsive it
is. Database testing helps in ensuring the effectiveness, optimal stability, performance, and
security of the database. It helps in verifying the validity of data values and the information
received and stored in the database. Additionally, it preserves data from cancelled transactions
and helps prevent data loss (Anon., 2024).
Unit Testing
This is the first step in testing, which is used to evaluate algorithms, logic, data structures,
interfaces, etc. Unit testing allows developers to identify bugs early in the development cycle,
which not only saves time but also significantly reduces the cost of bug fixing (Dubey, 2023).
Integration Testing
Integration testing is a type of software testing in which the various parts, modules, or
components of a software program are tested as a single unit. Integration test ensures that
different modules and components of the software work together (Yasar, n.d.).
Validation Testing
48
Validation testing if the software meets all requirements defined in the SRS (Software
Requirement Specification).
Acceptance testing
Acceptance testing is somewhat similar to validation testing. This guarantees that software aligns
with user needs. This is the last step of software testing before making the system available for
actual use (Anon., 2024).
In black box testing, testers do not need technical knowledge, programming or IT skills. Also,
testers do not need to learn the implementation details of the system. It focuses on the external
behaviour of the system and helps to identify usability issues and ensure the software meets user
needs. Since testers are not considering the source code, this method is suitable for large code
segments.
However, the black box testing may not explore all possible code paths or internal logic,
potentially leaving certain defects undetected. If a test falls it is difficult to identify the root cause
49
of the issue. Performance-related issues and scalability problems may not be effectively
identified through black box testing alone (Das, 2024).
50
3.2 Test plan to test the E-Space Solutions System
The test plan describes the methodology and strategy to verify that the database system
developed for E-Space Solutions satisfies the user and system requirements. This involves
verifying its capacity to securely and effectively function, enforce data relationships, and store
and retrieve data accurately. This plan focuses on the performance, functionality and security of
the developed system.
Scope of Testing:
In this test plan following parts are tested:
1. Data management
2. Interface usability
3. System Security
4. Query execution
2. Verify the data integrity and database principles, such as Primary key and foreign key
Data integrity ensures that the data stored in the database is consistent, accurate, and dependable.
This includes verifying database principles, primary keys and foreign keys. Primary keys are the
uniquely identified records in each table and foreign keys are the records that maintain the
relationships between tables. In this step, invalid data such as duplicate data are removed. For
example, a record of dependent without a corresponding colonist can be removed. This step also
includes testing database constraints such as UNIQE, NOT NULL etc.
51
technical users can easily understand and use it. Buttons, labels, instructions and error messages
are tested in this step.
Types of testing:
1. Functional testing: Test all the functions in the system such as inserting, updating, and
deleting data.
2. Validation testing: Test data integrity rules, primary keys and foreign keys
3. Security testing: Test access permissions to protect sensitive data from unauthorized
users.
Testing Approach:
The testing will be conducted in the following stages:
1. Test as individual database components, such as tables, constraints etc.
2. Test interactions between multiple components, including relationships between tables
and cascading operations.
3. Test the database as a whole, including query functionality, user interfaces, and data
reporting mechanisms.
4. Re-test the system after fixing any identified issues to ensure no new problems arise.
This plan ensures that the database system is systematically validated before delivery by offering
a defined basis for the testing process that follows.
52
Test case 1
Table 1: Test case 1
Test ID: 001 Tester: John Doe
Test case: Login of the system Date: 19th December 2024
Steps to test:
1. Enter username
2. Enter password
3. Click on the Login button
Pre-define: Login form Post define: Display dashboard form
Expected output: Actual output:
Successful login message.
Test case 2
Table 2: Test case 2
Test ID: 00 Tester: John Doe
Test case: Test password protection. Date: 19th December 2024
Steps to test:
53
1. Enter an invalid username and password
2. Click on the Login button
Expected output: Actual output:
Should show an error message like
“Login Error”.
Test case 3
Table 3: Test case 3
Test ID: 003 Tester: John Doe
Test case: Register a colonist Date: 19th December 2024
Steps to test:
54
1. Enter data into the fields
2. Click on the Register button
Pre-define: Colonist form Post define: Colonist form
Expected output: Actual output:
Message showing Record added
successfully.
Test case 4
Table 4: Test case 4
Test ID: 004 Tester: John Doe
Test case: Update colonist data Date: 19th December 2024
Steps to test:
55
1. Update data in the fields
2. Click on the Update button
Pre-define: Colonist form Post define: Colonist form
Expected output: Actual output:
Message showing Record updated
successfully.
Test case 5
Table 5: Test case 5
Test ID: 005 Tester: John Doe
Test case: Search colonist data Date: 19th December 2024
Steps to test:
56
1. Type the colonist ID in the Colonist ID field
2. Click on the Search button
Pre-define: Colonist form Post define: Colonist form
Expected output: Actual output:
Colonist data is shown in the fields.
Test case 6
Table 6: Test case 6
Test ID: 006 Tester: John Doe
Test case: Clear data fields Date: 19th December 2024
Steps to test:
57
1. Click on the Clear button
Pre-define: Colonist form Post define: Colonist form
Expected output: Actual output:
Data fields should be clear.
Test case 7
Table 7: Test case 7
Test ID: 007 Tester: John Doe
Test case: Delete colonist records Date: 19th December 2024
Steps to test:
58
1. Click on the Delete button
Pre-define: Colonist form Post define: Colonist form
Expected output: Actual output:
The record should be deleted and show
a message saying “Record deleted”.
Test case 8
Table 8: Test case 8
Test ID: 008 Tester: John Doe
Test case: Register a pilot/astronomer Date: 19th December 2024
Steps to test:
59
1. Enter data into the fields
2. Click on the Register button
Pre-define: Pilot form Post define: Pilot form
Expected output: Actual output:
Message showing Record added
successfully.
Test case 9
Table 9: Test case 9
Test ID: 009 Tester: John Doe
Test case: Update pilot data Date: 19th December 2024
Steps to test:
1. Update data in the fields
60
2. Click on the Update button
Pre-define: Pilot form Post define: Pilot form
Expected output: Actual output:
Message showing Record updated
successfully.
Test case 10
Table 10: Test case 10
Test ID: 010 Tester: John Doe
Test case: Search pilot data Date: 19th December 2024
Steps to test:
1. Type the pilot ID in the Pilot ID field
2. Click on the Search button
61
Pre-define: Pilot form Post define: Pilot form
Expected output: Actual output:
Pilot data is shown in the fields.
Test case 11
Table 11: Test case 11
Test ID: 011 Tester: John Doe
Test case: Delete pilot records Date: 19th December 2024
Steps to test:
1. Click on the Delete button
Pre-define: Pilot form Post define: Pilot form
62
Expected output: Actual output:
The record should be deleted and show
a message saying “Record deleted”.
Test case 12
Table 12: Test case 12
Test ID: 012 Tester: John Doe
Test case: Assign house to colonist Date: 19th December 2024
Steps to test:
1. Enter house details into fields
2. Click on the Add Record button
Pre-define: House form Post define: House form
63
Expected output: Actual output:
The record should be added and show a
message saying “Record Added
Successfully”.
Test case 13
Table 13: Test case 13
Test ID: 013 Tester: John Doe
Test case: Update house details Date: 19th December 2024
Steps to test:
1. Enter updated details into fields
2. Click on the Update button
Pre-define: House form Post define: House form
Expected output: Actual output:
64
The record should be updated and show
a message saying “Record updated”.
Test case 14
Table 14: Test case 14
Test ID: 014 Tester: John Doe
Test case: Search house records Date: 19th December 2024
Steps to test:
1. Enter House ID on the House ID field
2. Click on the Search button
Pre-define: House form Post define: House form
Expected output: Actual output:
House details should be shown in fields
65
Figure 66: Test output 14
Test case 15
Table 15: Test case 15
Test ID: 015 Tester: John Doe
Test case: Delete house records Date: 19th December 2024
Steps to test:
ck on the Delete button
Pre-define: House form Post define: House form
Expected output: Actual output:
The record should be deleted and show
a message saying “Record deleted”.
66
Figure 67: Test output 15
Test case 16
Table 16: Test case 16
Test ID: 016 Tester: John Doe
Test case: Delete house records Date: 19th December 2024
Steps to test:
1. Click on the Delete button
Pre-define: House form Post define: House form
Expected output: Actual output:
The record should be deleted and show
67
a message saying “Record deleted”.
Test case 17
Table 17: Test case 17
Test ID: 017 Tester: John Doe
Test case: Assign a job to colonist Date: 19th December 2024
Steps to test:
1. Enter job details into fields
2. Click on the Add record button
Pre-define: Job form Post define: Job form
Expected output: Actual output:
68
The record should be added and show a
message saying “Record Added
Successfully”.
Test case 18
Table 18: Test case 18
Test ID: 018 Tester: John Doe
Test case: Update job details Date: 19th December 2024
Steps to test:
1. Enter updated details into fields
2. Click on the Update button
Pre-define: Job form Post define: Job form
Expected output: Actual output:
The record should be updated and show
69
a message saying “Record updated”.
Test case 19
Table 19: Test case 19
Test ID: 019 Tester: John Doe
Test case: Search job records Date: 19th December 2024
Steps to test:
1. Enter job code on Job code field
2. Click on the Search button
Pre-define: Job form Post define: Job form
Expected output: Actual output:
Job details should be shown in fields
70
Figure 71: Test output 19
Test case 20
Table 20: Test case 20
Test ID: 020 Tester: John Doe
Test case: Delete job records Date: 19th December 2024
Steps to test:
1. Click on the Delete button
Pre-define: Job form Post define: Job form
Expected output: Actual output:
The record should be deleted and show
a message saying “Record deleted”.
71
Figure 72: Test output 20
Test case 21
Table 21: Test case 21
Test ID: 021 Tester: John Doe
Test case: Add trip records Date: 19th December 2024
Steps to test:
1. Enter trip detail into fields
2. Click on the Add record button
Pre-define: Trip form Post define: Trip form
Expected output: Actual output:
72
The record should be added and show a
message saying “Record Added
Successfully”.
Test case 22
Table 22: Test case 22
Test ID: 022 Tester: John Doe
Test case: Update trip details Date: 19th December 2024
Steps to test:
1. Enter updated details into fields
2. Click on the Update button
Pre-define: Trip form Post define: Trip form
Expected output: Actual output:
73
The record should be updated and show
a message saying “Record updated”.
Test case 23
Table 23: Test case 23
Test ID: 023 Tester: John Doe
Test case: Search trip records Date: 19th December 2024
Steps to test:
1. Enter trip code on the field
2. Click on the Search button
Pre-define: Trip form Post define: Trip form
Expected output: Actual output:
Trip details should be shown in fields
74
Figure 75: Test output 23
Test case 24
Table 24: Test case 24
Test ID: 024 Tester: John Doe
Test case: Delete trip records Date: 19th December 2024
Steps to test:
1. Click on the Delete button
Pre-define: Trip form Post define: Trip form
Expected output: Actual output:
The record should be deleted and show
75
a message saying “Record deleted”.
Test case 25
Table 25: Test case 25
Test ID: 025 Tester: John Doe
Test case: Add jet information Date: 19th December 2024
Steps to test:
1. Enter jet details into fields
2. Click on the Add Record button
Pre-define: Jet form Post define: Jet form
Expected output: Actual output:
76
The record should be added and show a
message saying “Record Added
Successfully”.
Test case 26
Table 26: Test case 26
Test ID: 026 Tester: John Doe
Test case: Update jet details Date: 19th December 2024
Steps to test:
1. Enter updated details into fields
2. Click on the Update button
Pre-define: Jet form Post define: Jet form
Expected output: Actual output:
77
The record should be updated and show
a message saying “Record updated”.
Test case 27
Table 27: Test case 27
Test ID: 027 Tester: John Doe
Test case: Search jet records Date: 19th December 2024
Steps to test:
1. Enter jet ID on the field
2. Click on the Search button
Pre-define: Jet form Post define: Jet form
Expected output: Actual output:
Jet details should be shown in fields
78
Figure 79: Test output 27
Test case 28
Table 28: Test case 28
Test ID: 028 Tester: John Doe
Test case: Verify primary key Date: 19th December 2024
enforcement.
Steps to test:
1. Add a colonist record with an ID of 001.
2. Add another colonist with the same ID.
Expected output: Actual output:
The system should reject the second
79
record and show an error like
"Violation of Primary key constraint."
Test case 29
Table 29: Test case 29
Test ID: 029 Tester: John Doe
Test case: Verify foreign key Date: 19th December 2024
enforcement.
Steps to test:
1. Enter pilot ID on trip records which do not exist on the pilot table.
80
show an error like "Foreign key
constraint violation."
Test case 30
Table 30: Test case 30
81
The system should reject the second
entry with an error like "Violation of
Primary key constraint”.
Test case 31
Table 31: Test case 31
Test ID: 031 Tester: John Doe
Test case: Test navigation. Date: 19th December 2024
Steps to test:
1. Click on the Jet Information button.
82
show the next form (Jet Information
form).
Testing is essential in software development as it ensures the overall effectiveness and quality of
the system, benefiting multiple stakeholders, including users, developers, organizations, and the
market. Testing ensures the system has no errors or bugs before marketing it. Customer
expectations are met by a well-tested product, which boosts customer happiness, fosters loyalty,
and gives the business a competitive edge.
If there are any errors and bugs in the system while marketing, the customer will reject the
product thus it badly effect the sellers, producers and developers. The error identification, and
proposing and implementing solutions to overcome the errors is an additional expenditure to the
company. Most importantly it is extra hard work to make the customer satisfaction again and it
83
could be an additional task to promote the product second time to the customer who rejected the
product.
The identifying bugs in early in the development process prevents time and cost wastage. The
testing the system on time is important because it help to save time and cost. Otherwise, if the
bugs identified after selling, it will create many problems because the system already in the
market has to be collected back for fixing bugs and errors.
The testing is important to validate that the software functions going smoothly under various
conditions. This is help to improve reliability of the software.
Testing help to identify the security failures in the system. It ensures the system can handle
critical situations without crashing.
In the E-Space Solutions project, the testing plan was designed to validate the efficiency,
performance, and security of the developed database system, ensuring its usability and reliability.
It makes sure that the system works as expected and meets all the needs of its users.
The system was tested to check if it could handle basic tasks like adding, updating, and deleting
data. Examples:
When colonist data such as Colonization ID, name, and age was entered, the system kept
and retrieved it accurately.
When house details such as house type, and colonist arrival date were updated, the
system updated the data and stored it correctly.
When the trip record was deleted by the tester, the system deleted the record.
These tests proved that the system could manage data correctly and without errors.
The database rules were validated to make sure that all data relationships were correct and
appropriate. This was accomplished by enforcing primary and foreign key rules. Example:
The system ensured that the assigned pilot in the trip table could not exist in the database
without a specific pilot in the Pilot registration table.
The system ensured that the assigned pilot in the E-Jet table could not exist in the
database without a specific pilot in the Pilot registration table.
84
Other rules such as UNIQUE Constraints were also tested. This process removed unnecessary
data and ensured the database was clean and reliable. Example:
The system ensures that the same E-Jet ID cannot be used twice.
All buttons, instructions, and error messages were checked to make sure they worked well and
were easy to understand. This made sure even users with little technical knowledge could use the
system smoothly. Example:
Finally, the security of the system was tested. The system was checked to ensure that only
authorized users could access or change specific data. Example:
If the user enters the correct username and password, the system allows logging in.
In terms of identifying and resolving issues like duplicate data and security flaws, the testing was
generally rather successful. It demonstrated that the system could manage huge amounts of data
and function effectively. In addition to providing flexibility for future enhancements, these tests
verified that the database is robust, secure, and prepared to meet the demands of E-Space
Solutions.
0.4 Activity 04
User feedback is customer data on likes, dislikes, and comments about the product or service. It
helps to understand how well the product or service is meeting user needs. User feedback is
important for improvements of the product/service. To get user feedback surveys, questionnaires,
or interviews can be used.
A Google form was created to get user feedback for the E-Space Solutions system. It included an
introduction of the project and details about the created system, with 10 questions.
85
Figure 84: Screenshot of Google Form 1 Figure 85: Screenshot of Google Form 2
Figure 86: Screenshot of Google Form 3 Figure 87: Screenshot of Google Form 4
86
Figure 88: Screenshot of Google Form 5 Figure 89: Screenshot of Google Form 6
87
4.1.2 Summary of the Questionnaire
This Google form got 26 responses. Form the responders, 16 was non-technical users and 9 was
developers.
88
Figure 93: Summary of the questionnaire (3)
89
Figure 96: Summary of the questionnaire (6)
90
Figure 99: Summary of the questionnaire (9)
91
Figure 101: Summary of the questionnaire (11)
4.1.3 Recommendations and suggestions for the developed system according to the user
feedback
Based on the valuable feedback gathered from the users, several recommendations have been
proposed to improve the E-Space Solutions system. These suggestions aim to enhance the
system's functionality, security, and usability to better support the Mars Colonization project.
E-Space Solutions system has received a generally positive evaluation, with an average rating of
4.16 for overall performance, indicating that users find the system to be effective and reliable.
The majority of respondents praised the system's user-friendly interface, ease of data entry, and
flexible architecture, making it suitable for the Mars Colonization project.
Based on the feedback received from users, several valuable suggestions have been made to
enhance the E-Space Solutions system to better support the Mars Colonization project. Security
is a one of the area mentioned by users, with suggestion to improve multi-factor authentication to
92
improve the protection of data in the system. This would add an extra layer of security,
mitigating potential risks associated with unauthorized access.
Users suggested enhancing the architecture of the system to ensure the project's long-term
success. Improving network/cloud security was additionally mentioned as a way to protect the
expanding volumes of confidential data and avoid potential cyber threats.
Some users also suggested increasing the system's data collection capabilities. It was suggested
that family member information be included in the data entry forms, as some colonists travel
with family members. Collecting such information would help with resource allocation and
housing placements. Furthermore, biomedical data and personal hobbies were suggested as
helpful data points to include because they can provide vital insights into the colonists' physical
and psychological preparation, thus improving their overall well-being during the project.
Although the system is generally viewed as effective and user-friendly, these recommendations
aim to better improve its functionality, security, and user experience to ensure its success in
assisting the Mars Colonization project in the future.
4.2.1 Introduction
Welcome to the E-Space Solutions Mars Colonization System. This system is designed to assist
in the management of colonists, their families, E-Jets, trips, houses, and jobs for the Mars
colonization project.
93
4.2.2 Welcome page
interface (Dashboard).
94
4.2.4 Dashboard
This is the Dashboard of the E-Space Solutions System. To access specific pages click on the
buttons.
1. Colonist Registration button - Click on this to navigate the Colonist Registration page.
2. Pilot Registration button - Click on this to navigate to the Pilot Registration page.
3. House Assignment button - Click on this to navigate to the House Assignment page.
4. Job Assignment button - Click on this to navigate to the Job Assignment page.
5. Trip Information button - Click on this to navigate to the Trip Information page.
6. Jet Information button - Click on this to navigate to the Trip Information page.
95
Figure 105: Colonist registration page of the system
96
4.2.6 Pilot Registration Page
97
4.2.6 House Assignment Page
98
4.2.7 Job Assignment Page
99
4.2.8 Trip Information Page
100
4.2.9 E-Jet Information Page
101
4.3 Technical Documentation
4.3.1 Introduction
System overview:
The E-Space Solution Database system is developed to manage all the data associated with
colonists, dependents, pilots, e-jets, trips, houses, etc. It supports features such as:
Registering colonists and their dependents
Registering pilots
Managing e-jets
Managing trips
Assigning houses
Assigning jobs
Technologies used:
SQL Server Management Studio used to design database
Visual Studio used to design GUIs and code main functions
Figma online tool used to design wireframes
Draw.io online tool used to create diagrams
102
Figure 111: Logo of SQL Server Management Studio Figure 112: Logo of Visual Studio
Following are the identified user requirements in the E-Space Solutions system:
1. Admin Users: System administrators who have full control over the system, including
access to all data, user management, and system settings.
2. Data Entry Operators: Responsible for entering and updating colonist, pilot, house, and
job data.
3. Astronomers (Pilots): Have limited access to view trip details and E-Jet assignments.
4. Colony Superintendents: Can view reports related to colonist assignments, houses, and
jobs.
103
4.3.3 Software Requirements
The following are the identified software requirements in the E-Space Solutions system:
1. Operating System: Microsoft Windows 10 or higher (64-bit).
2. SQL Server Management Studio (SSMS): Version 2017 or higher for database
management.
3. Visual Studio: Version 2019 or higher for application development.
A Use Case Diagram is a type of diagram in Unified Modeling Language (UML) that provides a
graphical representation of a system's functionality from the user's perspective. Below is the Use
case diagram drawn for E-Space Solutions Database System:
104
Figure 115: Use case diagram for the system
105
4.3.6 Data Flow Diagram
A Data Flow Diagram (DFD) is a graphical representation of the flow of data within a system. It
illustrates how data moves from one part of the system to another, showing the processes that
transform the data and the sources or destinations of the data. DFDs can be created at different
levels of abstraction.
Level 0 DFD
A Data Flow Diagram (DFD) Level 0 provides a high-level overview of a system. It shows
major processes, external entities, and data flows without delving into detailed interactions. It
captures the system's main functions. The following is the DFD level 0 drawn for the E-Space
Solutions System:
Level 1 DFD
106
DFD Level 1 provides a more detailed breakdown of the processes identified in Level 0. It
decomposes the high-level process into sub-processes, showing the internal workings of the
system and how data is processed at a finer level of detail. The following is the DFD level 1
drawn for the E-Space Solutions System:
107
4.3.7 Flow Chart
A flowchart is a graphical representation of the program or the algorithm for a better
understanding of it. It displays step-by-step solutions to a problem, algorithm, or process.
Symbols such as oval to show terminal, rectangle to show process, diamond to show decision,
and parallelogram to show data or input/output are used to draw flow charts.
Below is the flow chart drawn for the E-Space Solutions Database System.
108
Below is the flow chart drawn for the colonist form of the E-Space Solutions Database System
109
Below is the flow chart drawn for the trip form of the E-Space Solutions Database System
110
Figure 121: ERD of the system
Entities:
1. Colonist: Represents individuals willing to go to Mars. Attributes include ColonistID,
FullName, DateOfBirth, Age, ContactNo, EarthAddress, Gender, JobID, CivilSatatus.
111
2. Dependents:Represents family members of colonist. Attributes include DependentID,
DependentName, Gender, ColonistID.
3. House: Represents house assigned to colonis. Attributes include HouseID, Type,
HouseAddress, SquareFootage, ColonistID, NoOfRooms
4. Job: Represents job assigned to colonists, Attributes include JobID, JobTitle,
JobStartDate, Location, JobLevel
5. Trip: Represents a trip to Mars. Attributes include TripID, JetCode, LaunchDate,
ReturnDate, PassengerCount, PilotAssigned
6. E-Jet:Represents a spacecraft used to trip. Attributes include E-JetID, TripID,
AstronomerID, Weight, MadeYEar, NoOfSeats
7. Astronomer/Pilot: Represents the pilot assigned to operate E-Jets. Attribute include
AstronomerID, FullName, DateOfBirth, Age, Gender, SpaceHours, Qualifications
Relationships:
1. Colonist to Dependent: One-to-many relationship
2. Colonist to House: One to Many relationship
3. Colonist to Job: One-to-many relationship
4. Colonist to Trip: One-to-many relationship
5. E-Jet to Trip: One to Many Relationship
6. Astronomer to E-Jet: Many to many relationships
7. Astronomer to Trip: One to many relation
To create the E-Space Solutions System following forms were created in Visual Studio.
Starting form
Login form
Dashboard form
Colonist registration form
Pilot registration form
House assignment form
112
Job assignment form
E-Jet details form
Trip details form
Starting Form
Graphic User Interface:
Source Code:
113
Figure 123: Source code (1)
Login Form
Graphic User Interface
Source code:
114
Figure 125: Source code (2)
Components Form
Graphic User Interface:
Source Code:
115
Figure 127: Source code (3)
116
Figure 129: GUI 4
Source Code:
117
Figure 131: GUI 5
Source Code:
118
Figure 133: GUI 6
Source Code:
119
Figure 135: GUI 7
Source Code:
120
Figure 137: GUI 8
Source Code:
121
Figure 139: GUI 9
Source Code:
122
4.4 Potential Future Enhancements for the E-Space Solutions System
As the E-Space Solutions Colonization project expands, the system can be improved to enhance
security, reliability, and efficiency. The system can be modified by improving new technologies.
Implement Cloud storage
Cloud storage can be implemented to enhance data security, backup, and scalability of the
system. This will help to increase data accessibility and availability. Cloud-based platforms
provide better security and disaster recovery. As the Mars Colonization project grows and the
volume of data increases, cloud infrastructure can easily scale.
The system's overall functionality, security, and user experience will be greatly improved by
these improvements, ensuring that it will continue to function effectively and efficiently as the
Mars Colonization project develops.
123
References
Akhtar, H., 2024. What is White Box Testing? (Example, Types, & Techniques). [Online]
Available at: https://www.browserstack.com/guide/white-box-testing
[Accessed 15 01 2025].
124
Anon., 2024. SQL | BETWEEN & IN Operator. [Online]
Available at: https://www.geeksforgeeks.org/sql-between-in-operator/
[Accessed 12 01 2025].
125
[Accessed 14 01 2025].
Das, S., 2024. What is Black Box Testing: Types, Tools & Examples. [Online]
Available at: https://www.browserstack.com/guide/black-box-testing
[Accessed 14 01 2025].
Indeed Editorial Team, 2024. Relational Databases and Schemas: Definitions and Elements.
[Online]
Available at: https://www.indeed.com/career-advice/career-development/relational-database-
schema
[Accessed 14 01 2025].
Juviler, J., 2024. What Is GUI? Graphical User Interfaces, Explained. [Online]
Available at: https://blog.hubspot.com/website/what-is-gui
[Accessed 9 01 2025].
126
Luchmee, D., 2024. SQL DML Commands: Mastering Data Manipulation in SQL. [Online]
Available at: https://www.datacamp.com/tutorial/sql-dml-commands-mastering-data-
manipulation-in-sql
[Accessed 12 01 2025].
Yasar, K., n.d. Integration Testing is a type of software testing in which the various parts,
modules, or components of a software program are tested as a single unit. [Online]
Available at: https://www.techtarget.com/searchsoftwarequality/definition/integration-
testing#:~:text=Integration%20testing%20%2D%2D%20also%20known,tested%20as%20a
%20combined%20entity.
[Accessed 13 01 2025].
127