Chapter4

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

K. J.

Somaiya College of Engineering, Mumbai-77


(Autonomous College Affiliated to University of Mumbai)

Title: Implementation and experimentation of one of the issues related to project work/ topic.
______________________________________________________________________

Objective: Apply the heuristics principles of User Interface Design.


______________________________________________________________________
Expected Outcome of Experiment:

At the end of successful completion of the course the student will be able
to
CO4 Implement and prototype creation for the specified application.

CO5 Design of test cases to meet the desired specifications.

______________________________________________________________________
Books/ Journals/ Websites referred:
1. https://www.xpand-it.com/blog/what-is-system-integration-why-it-is-necessary/
2. https://www.perfecto.io/resources/types-of-testing
3. https://www.geeksforgeeks.org/types-software-testing/
______________________________________________________________________

// Guidelines for Reference:

Introduction:
As the process of development of a project progresses, the second stage will be analysis
& the design.

In this document, two levels of designs are expected to be prepared:

1. Frontend interface
2. Backend/ database design

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 1


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)

Frontend design:

We created the screens for the game using Unity3D engine and mono framework. The
components used in UI were the basic Unity components which made navigation easy
for the users.

UI Screenshots:
Navigating the screens can be understood using this map:

The various screens included in the game are as such:

1. Main Menu Page:


This page is the start page of the game. It contains options such as Play game, Load
Levels, Options, and Exit button.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 2


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
2. Options Page:
This page provides users with a game settings page. It contains two buttons, one for
Sound settings and another button for Graphics settings.

2.1 Sound Settings Page:


This page is displayed when the user clicks on the Sound settings button available on
the Options Page. This page provides the user with the volume slider which can users
to change the volume of the game and an apply button to apply the changes. It also
provides the reset to default button to make the settings as default and do not apply the
changes.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 3


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
2.2 Graphics Settings Page:
This page is displayed when the user clicks on the Graphics settings button available on
the Options Page. This page allows the user to adjust the brightness of the game. It also
allows the user to change the resolution and quality of the game with a fullscreen
option checkbox. It also provides the reset to default button to make the settings as
default and do not apply the changes.

Activity:
These are the functionalities we have added in the game:
1. Shooting the enemy

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 4


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
2. Enemy AI tracking the player

3. Player respawn on death

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 5


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
4. Movement in left and right directions

5. Jumping over platforms and enemies

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 6


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
Backend Design:
All games should have a gaming plan, so in this part, a detailed plan for the game is
first developed. The activity of demand analysis is actually a process of communicating
with players, allowing developers to understand the requirements mentioned by
players. This process is conducive to improving the efficiency of developers in
developing games. In this process of requirements analysis, developers will have to
write relevant documents for requirements analysis in accordance with certain
specifications and standards, which will enable developers to understand better the
various requirements in the requirements analysis report, as well as the future
development process.

The specific functions to be implemented are as follows:


(1) The start game module includes
Play Game
Load Game
Settings Options
Exit the game.

(2) The game level module includes:


Main interface of the game
Pause and continue the game

(3) Victory interface modules include:


Next level
Restart

(4) The failed interface modules include:


Restart
Back to start interface

Scene Design
The design of the game scene is simply to build the scene. This game has a total of
three main scenes, which are the initial interface and the main game scene; it also
includes three scenes that need to be activated to appear, which are game clearance and
game failure scenes.
The details are as follows:
(1) The initial scene shows the main menu of the game which provides Play game,
Load Game, Settings Options, and Exit buttons.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 7


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
(2) The main scene of the game is the game level. The main character moves by
jumping and walking, the monster can automatically patrol and the monster will attack
by the player's walking and shooting.

(3) The "Next Level" and "Replay" buttons will be displayed for each level completed

(4) If the game fails, the "Replay" and "Back" buttons will be displayed.

Architecture

Components:

Hardware:

Desktop/Laptop:

Desktop/laptop with a working internet connection and browser is required to run the
game. We recommend 4gb or more RAM on the device to run the game smoothly.

Software:

1. Unity3D Engine:
Unity has been a popular choice for indie game developers around the world since
2005. It is suitable not only for 2D and 3D game development but also great for virtual
reality (VR) and augmented reality (AR) design. The engine is updated every year with
new content and thanks to a sizeable community, it has an asset store with a huge
amount of free and pay-to-use assets. Unity is free so everyone can start using and
learning how to make games easily. 11 Popular games: Cuphead, Inside, Ori and the
Blind Forest… The reason why I chose Unity Engine for our Project is that it is
suitable for making games on your own. Normally, a team is required to make a game
because there are so many components of a game that one person cannot handle all of
or take a long time to master all the necessary skills (animation, sound, environment
design, coding skills…). Unity provides some components for free so we can focus on
programming.

2. Object-Oriented Programming in C#
C# is easy to learn, and relatively easy to read, but because of its flexibility, it is hard to
master all that C# has to offer. C# is a complex language, mastering it may take more
time than a simpler language such as Python or HTML, users need to learn a
considerable amount of code to create an advanced program. But it is worth the time
users put in to learn it. C# is an in-demand skill that many tech-savvy companies are

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 8


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
looking for. In the job market, there are applications every day and everywhere in need
of developers with good C# knowledge and experience.

Above is an example of C# script. The structure of C# is easy to understand: we have a


class, and inside it there are methods or functions on what this class should be able to
do. A class is like a blueprint for an object. In real life, an object has shape, color, and
functions. It is the same with a class in C#. Inside this class, we create methods, declare
values and properties. Therefore, a class defines the kind of functionality and data that
its objects have. Inside the example “Player” class, we have methods “Start” and
“Update”. These methods already have their defined functions described above them in
the green comment lines. We can create new methods and give them names fitted for
their functions (PlayerMove, PlayerDie, PlayerIdle…). Names for methods should not
have blank space in between. Inside the method, we start with open curly bracket “{”
and stop with close curly bracket “}”.

The Backend of the game includes the following scripts:


● Shoot enemy: it is used to shoot down the enemy and each hit amounts to a
certain damage to the enemy
● Enemy health: tracks the health of the enemy and causes explosion in case of
enemy death
● Player health: tracks the health of player after each enemy hit
● Player lives: tracks the number of lives remaining for a player and causes
respawning of player at checkpoints
● Enemy AI: using A* algorithm, the enemy constantly moves closer to the
player in the environment

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 9


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)

Proposed system model implementation

The proposed system model includes one human player, the game interface and AI
enemies.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 10


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)

Inclusion of Any additional details as suggested by Project Guide/during progress


seminar:
As suggested during the progress seminar we have added more levels to the game and
increased the complexity at each level.

Software Testing (Software testing reports at various levels)


TC_I Test Case Expected Result Actual Result Completed
D Description by

1. Verify if the Play On clicking the Play On clicking Play


Game button is game button it should Button it is displaying
working navigate to the page dialogue box with the
which contains a Yes or No Option and
dialogue box with an on clicking on Yes or
option Yes or No for No options it is
Starting the game and On navigating the user to
Clicking on the Yes respective intended
Option it should start the pages i.e Level 1 on
level 1 button and on clicking Yes Option
clicking No option it and Load Game page
should navigate to Load on clicking No Option
Game page

2. Verify if the On clicking the Options On clicking the


Options button is button it should navigate Options button it is
working to the page containing navigating the user to
the Sound and Graphics a page containing the
Settings button Sound and Graphics
Settings button

3. Verify if the On clicking the Sound On clicking the Sound


Sound Settings button it should navigate button it is navigating
is working to the sound settings to the sound settings
page which contains the page which contains
slider to adjust the the slider to adjust the
volume. On adjusting the volume. The user is
volume, the user should able to adjust the
be able to apply the volume using the
changes by clicking on slider. On adjusting
the apply button. the volume, the user is
able to save the
changes by clicking on
the apply button.

4. Verify if the On clicking the Graphics On clicking the

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 11


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
Graphics button it should navigate Graphics button it is
Settings is to the page containing navigating to the page
working the options for adjusting containing the options
the brightness of the for adjusting the
screen, changing the brightness of the
resolution of the screen screen, changing the
along with quality and resolution of the
full-screen option. The screen along with
user should be able to quality, and the
make these changes and full-screen option. The
apply them using apply user is able to make
button. these changes and save
them using apply
button.

5. Verify if the On clicking this option it On clicking this option


Reset To Default should make the Sound it is making the Sound
button on Sound and Graphics settings to and Graphics settings
and Graphics the default values. to the default values.
Settings Pages is
working

6. Verify if the On clicking the left and On using the arrow


player can move right arrow keys, the buttons the player
in left and right player moves in that makes a move in that
directions direction in environment particular direction

7. Verify if the On clicking the spacebar, On using the spacebar


player can jump the player should jump in the player makes a
up and down environment jump in the vertical
direction

8. Verify if the On right click on mouse, Right click on mouse


player can shoot the player should shoot causes a ray to shoot
the enemy in the direction they are from gun in the
pointing at proposed direction

Experimental results and its analysis


We can conclude from the testing stage that all the features work properly without
any error.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 12


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)

Post Lab Activities (with reference to your tool):


1. List and explain the different testing methods for your mini-project.
Ans:
1. Functionality Testing:
As the name signifies, through functional testing, testers verify the workability of an
application as per the given specifications. The testing team validates the performance
of the application during instant restart, switch-off, and crash situations.

Highlighted Features

● Validates the performance of the product as per the requirement document.


● The testing method comes under the section of black-box-testing.
● As compared to other testing methods, functional testing is a bit time-taking
because the team verifies intact elements like graphics, texts, users’ comfort,
etc.
● Moreover, functional testing also confirms the installation, network issues, and
support methods.

2. Combinatorial Testing:
This approach of combinational testing to analyze the performance of gaming
application.This testing approach helps in early identification of the bugs that makes
the development process productive.

Highlighted Features

● Combinatorial testing ensures the performance of the product through all


possible combinations of parameters.
● The reports of the approach are systematic and easy to follow.

3. Exploratory Testing:
In this testing method, the team does not work on any pre-created test cases. They test
the entire system on the fly. Also, the concept of the testing method emphasizes more
on “Imagination ability” rather than traditional testing.Here, a tester has to explore the
gaming application and identify bugs based on thinking ability. Moreover, Agile
models follow Exploratory testing that is all about learning, thinking, investigating, and
imagining.

Before launching a gaming application in the public domain, Exploratory testing is


essential as it gives space to testers.As a result, the team finds out errors on behalf of
the public and makes the application more ideal.

Key Features of Exploratory Testing:

● No need to create test cases in advance.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 13


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
● The team generates test cases during testing only.
● The concept revolves around “Thinking & Investigation”.
● Avail space for testers to explore more testing environments.

It offers better productivity.

4. Compatibility Testing:
The foremost objective of compatibility testing is to highlight compatible issues. As we
all know, gaming applications are leading, and people have become crazy about it.

In such a scenario, an application should perform as per the expectations of end-users.


There are various versions of devices even in a single technology, and hence it demands
compatibility testing.A gaming application should work with the same frequency across
all mobile devices.

Hence, testers verify the response of an application across all the mobile devices by
considering basic features like resolutions, audio, videos, graphics, etc.Being an
automation testing company, we are conscious about testing tools that assure
compatibility and performance of the application.

Highlighted Features

● Compatibility testing determines the compatibility of the application across all


the devices. Also, it compares the designs & texts at all screen sizes.
● It also validates the performance of the product across various operating
systems and browsers.
● Ensures stability and scalability of the application.

5. Cleanroom Testing:
Cleanroom testing is mandatory to test gaming applications. Also, Cleanroom testing
strategies make the gaming application productive and reduce the effort of testing.
Even testers can enjoy the game during testing.

By being a leading testing company, we have command over all testing methods.

Highlighted Features

● Cleanroom testing is a combined concept of statistical reasoning, design


refinements, and mathematical knowledge.
● The testing method determines minimal defects in the application.
● There is no programmer testing concept as programming starts after proper
specification.

6. Play Testing:
As its name signifies, in this testing method, the tester has to play the game like a
player.Also, whenever we test a game, like a player, it helps to collect generic issues.
The team gets a chance to verify all the non-functional elements as well.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 14


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
Along with this, they can also estimate the entertainment level of the gaming
application. As a whole, this testing method helps in making the application innovative,
engaging, and player-centric.

Probably, this is the favorite testing method of a tester but, one should always be
attentive. They have to maintain the balance of entertainment, accessibility, and
appearance.

Highlighted Features

● QA team should always consider Play Testing as it created a live environment.


● The concept is more about real scenarios like Fun-facts, User’s engagement, etc.

7. Regression Testing:
Regression testing is one of the most vital methods that one should follow during
testing. It ensures the capability of the application by keeping the futuristic changes in
place.

Also, Regression Testing rechecks the entire functionality of the application from
scratch and highlights new bugs. Under this testing, the developer re-executes the code
and compares its output with previous outputs as well.

No one can afford to compromise with quality, and hence each step of testing has its
own worth. A gaming application becomes extra productive after regression testing.

Highlighted Features

● Regression tests re-validate and re-execute entire tests.


● Compares results of old tests and current tests, in order to get the bugs.
● Ensures quality of an application by overall judgment.

2. What is heuristic evaluation of user interfaces?


Ans:
Heuristic evaluation is a process where experts use rules of thumb to measure the
usability of user interfaces in independent walkthroughs and report issues. Evaluators
use established heuristics (e.g., Nielsen-Molich) and reveal insights that can help
design teams enhance product usability from early in development. The Nielsen-Molich
heuristics state that a system should:

1. Keep users informed about its status appropriately and promptly.

2. Show information in ways users understand from how the real world
operates, and in the users’ language.

3. Offer users control and let them undo errors easily.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 15


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
4. Be consistent so users aren’t confused over what different words, icons, etc.
mean.

5. Prevent errors – a system should either avoid conditions where errors arise or
warn users before they take risky actions (e.g., “Are you sure you want to do
this?” messages).

6. Have visible information, instructions, etc. to let users recognize options,


actions, etc. instead of forcing them to rely on memory.

7. Be flexible so experienced users find faster ways to attain goals.

8. Have no clutter, containing only relevant information for current tasks.

9. Provide plain-language help regarding errors and solutions.

10. List concise steps in lean, searchable documentation for overcoming


problems.

3. What do you mean by system integration?

Ans:

The process of creating a complex information system that may include designing or
building a customized architecture or application, integrating it with new or existing
hardware, packaged and custom software, and communications.

Integration ensures that all systems work together and in harmony to increase
productivity and data consistency. In addition, it aims to resolve the complexity
associated with increased communication between systems, since they provide a
reduction in the impacts of changes that these systems may have.
One of the main benefits of integration is providing critical available information
quickly across all systems. This allows the business to take advantage of faster and
more assertive decision-making. Systems integration also promotes:

Consistency:

Systems integration allows for the automated exchange of consistent information


between different systems. Example: One system may be updated with a customer’s
new address, but another system may not be receiving that update. The integration of
both systems in this update mitigates the problems associated with inconsistent
information, improving the efficiency and overall quality of the associated business
processes.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 16


K. J. Somaiya College of Engineering, Mumbai-77
(Autonomous College Affiliated to University of Mumbai)
Agility and innovation:

The integration of systems and data between departments and organisations enhances
innovation and a higher value offer. In addition to a direct communication line available
internally within the organisation and for customers and partners, systems integration
solutions can provide access to useful information, streamlining the associated business
processes. For example, during the purchase of a product by a customer, the systems
integration will allow that using an online platform, they can see what is or is not in
stock and what the expected delivery date is. This transparency creates greater
confidence in the process and demonstrates that the integration of systems, even where
not visible to the user, is a fundamental part of creating value.

Integrating systems, data and processes makes the business more agile and efficient,
allowing for an incremental construction approach based on abstraction and reuse,
which facilitates the modelling of the global application architecture appropriately in
the organisational context.

Department of Computer Engineering (TY-MiniProject/ Jan-Apr 2022) Page 17

You might also like