Merge branch 'master' of github.com:jeena/GGS-report
This commit is contained in:
commit
f4ae989ab3
1 changed files with 17 additions and 17 deletions
34
report.lyx
34
report.lyx
|
@ -4912,7 +4912,7 @@ The information about which players are seated by each table is used when
|
||||||
Consider a game of chess, each player notifies the table of its actions,
|
Consider a game of chess, each player notifies the table of its actions,
|
||||||
the table then notifies the rest of the participants of these actions after
|
the table then notifies the rest of the participants of these actions after
|
||||||
having had the actions processed by the game VM, where an action could
|
having had the actions processed by the game VM, where an action could
|
||||||
be moving a piece in the game.
|
be moving a playing piece in the game.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -4986,7 +4986,7 @@ reference "sec:Communication-with-the-GDL-VM"
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The code which is run in the VM is uploaded to the GGS before each game.
|
The code which is run in the VM is uploaded to the GGS prior to each game.
|
||||||
Allowing the clients to upload code allows clients to run any game.
|
Allowing the clients to upload code allows clients to run any game.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -5104,7 +5104,7 @@ Localstorage
|
||||||
\noun default
|
\noun default
|
||||||
.
|
.
|
||||||
To store a value within the database, not only is the table token and the
|
To store a value within the database, not only is the table token and the
|
||||||
name of the namespace required, but an unique key so that the value can
|
name of the namespace required, but a unique key so that the value can
|
||||||
be successfully retrieved or modified later.
|
be successfully retrieved or modified later.
|
||||||
The key is decidable by the game developer.
|
The key is decidable by the game developer.
|
||||||
|
|
||||||
|
@ -5171,7 +5171,7 @@ localStorage
|
||||||
.
|
.
|
||||||
The game state is safely stored in a database and retrieved for manipulation
|
The game state is safely stored in a database and retrieved for manipulation
|
||||||
by a call for the world object.
|
by a call for the world object.
|
||||||
Interaction with the players are done by using the
|
Interaction with the players is done by using the
|
||||||
\emph on
|
\emph on
|
||||||
|
|
||||||
\begin_inset ERT
|
\begin_inset ERT
|
||||||
|
@ -6088,7 +6088,7 @@ To prevent any data loss, the good state of the worker processes are stored
|
||||||
previous state, if there is any, that state is loaded in to the worker
|
previous state, if there is any, that state is loaded in to the worker
|
||||||
and it proceeds where it left off.
|
and it proceeds where it left off.
|
||||||
If on the other hand no state is available, a special message is delivered
|
If on the other hand no state is available, a special message is delivered
|
||||||
instead, making the worker creates a new state, this is what happens when
|
instead, making the worker create a new state, this is what happens when
|
||||||
the workers are first created.
|
the workers are first created.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -6220,11 +6220,11 @@ Testing
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
In order to make sure the GGS prototype adheres to the specification set,
|
To make sure the GGS prototype adheres to the specification set, two different
|
||||||
two different approaches to software testing are used.
|
approaches to software testing are used.
|
||||||
For simpler testing the GGS prototype uses unit tests.
|
For simpler testing the GGS prototype uses unit tests.
|
||||||
Modules are tested on a high level, making sure each function in the module
|
Modules are tested on a high level, making sure each function in the module
|
||||||
tested functions according to specification.
|
tested functions has been tested according to specification.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
@ -6251,14 +6251,14 @@ Unit testing
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Unit testing is a way to check if the functionality adheres to the specification
|
Unit testing is a way to check if the functionality adheres to the specification
|
||||||
of the system by manually creating test cases for sections of code.
|
of the system by manually creating test cases for sections of code.
|
||||||
In most cases whole functions.
|
Usually whole functions.
|
||||||
Unit testing is good, not only for revealing software bugs, but also to
|
Unit testing is good, not only for revealing software bugs, but also to
|
||||||
state that a feature is working according to the specification.
|
state that a feature is working according to the specification.
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Unit testing is a useful way to create regression tests.
|
Unit testing is an useful way to create regression tests.
|
||||||
Regression tests are used to make sure changes made to the GGS do not introduce
|
Regression tests are used to make sure changes made to the GGS do not introduce
|
||||||
new bugs or break the specification.
|
new bugs or break the specification.
|
||||||
The regression tests are optimally run very often, such as after each change
|
The regression tests are optimally run very often, such as after each change
|
||||||
|
@ -6268,7 +6268,7 @@ Unit testing is a useful way to create regression tests.
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Erlang provides a module for unit testing called eunit.
|
Erlang provides a module for unit testing called eunit.
|
||||||
Eunit, being a part of OTP, is rich in functionality and well documented,
|
Eunit, being a part of OTP, is rich in functionality and well documented,
|
||||||
it doesn't however allow any means of testing asynchronous behaviours as
|
it does not however allow any means of testing asynchronous behaviors as
|
||||||
opposed to other means of software testing.
|
opposed to other means of software testing.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -6279,8 +6279,8 @@ Automated test case generation
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The problem of writing software tests manually is that it takes a lot of
|
The problem of writing software tests manually is that it takes a lot of
|
||||||
time.
|
time.
|
||||||
There exists other ways to test software that address this problem by generatin
|
There exists other ways to test software that addresses this problem by
|
||||||
g test cases with certain properties.
|
generating test cases with certain properties.
|
||||||
This allows for testing functions with a lot of different input parameters
|
This allows for testing functions with a lot of different input parameters
|
||||||
without having to implement each specific test itself.
|
without having to implement each specific test itself.
|
||||||
|
|
||||||
|
@ -6293,8 +6293,8 @@ By having each test automatically generated, each test can be very complex
|
||||||
By using QuickCheck the GGS can be tested with input which would be extremely
|
By using QuickCheck the GGS can be tested with input which would be extremely
|
||||||
difficult to construct using manual testing methods.
|
difficult to construct using manual testing methods.
|
||||||
Regression tests, such as the unit tests used by the GGS are more useful
|
Regression tests, such as the unit tests used by the GGS are more useful
|
||||||
for ensuring the system does not diverge from a working scenario than for
|
for ensuring that the system does not diverge from a working scenario than
|
||||||
finding new cases where the specification does not hold
|
for finding new cases where the specification does not hold
|
||||||
\begin_inset CommandInset citation
|
\begin_inset CommandInset citation
|
||||||
LatexCommand citet
|
LatexCommand citet
|
||||||
key "Arts:2006:TTS:1159789.1159792"
|
key "Arts:2006:TTS:1159789.1159792"
|
||||||
|
@ -6318,7 +6318,7 @@ QuickCheck has features to generate very large and complex tests, the results
|
||||||
\emph on
|
\emph on
|
||||||
minimal failing test case
|
minimal failing test case
|
||||||
\emph default
|
\emph default
|
||||||
which contains the smalles failing test sequence.
|
which contains the smallest failing test sequence.
|
||||||
By applying a very large test and gradually simplifying the test to find
|
By applying a very large test and gradually simplifying the test to find
|
||||||
the smallest failing sequence, many bugs which would other wise have been
|
the smallest failing sequence, many bugs which would other wise have been
|
||||||
hard to catch can be caught
|
hard to catch can be caught
|
||||||
|
@ -6333,7 +6333,7 @@ key "Arts:2006:TTS:1159789.1159792"
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
QuickCheck was originally made for the programming language Haskell.
|
QuickCheck was originally made for the programming language Haskell.
|
||||||
There are a lot of reimplementations of QuickCheck in various programming
|
There is a lot of reimplementations of QuickCheck in various programming
|
||||||
languages.
|
languages.
|
||||||
Erlang QuickCheck (EQC) and Triq are two variants of QuickCheck for Erlang.
|
Erlang QuickCheck (EQC) and Triq are two variants of QuickCheck for Erlang.
|
||||||
EQC was chosen for testing the GGS.
|
EQC was chosen for testing the GGS.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue