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,
|
||||
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
|
||||
be moving a piece in the game.
|
||||
be moving a playing piece in the game.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
|
@ -4986,7 +4986,7 @@ reference "sec:Communication-with-the-GDL-VM"
|
|||
\end_layout
|
||||
|
||||
\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.
|
||||
\end_layout
|
||||
|
||||
|
@ -5104,7 +5104,7 @@ Localstorage
|
|||
\noun default
|
||||
.
|
||||
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.
|
||||
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
|
||||
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
|
||||
|
||||
\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
|
||||
and it proceeds where it left off.
|
||||
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.
|
||||
\end_layout
|
||||
|
||||
|
@ -6220,11 +6220,11 @@ Testing
|
|||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
In order to make sure the GGS prototype adheres to the specification set,
|
||||
two different approaches to software testing are used.
|
||||
To make sure the GGS prototype adheres to the specification set, two different
|
||||
approaches to software testing are used.
|
||||
For simpler testing the GGS prototype uses unit tests.
|
||||
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
|
||||
|
||||
\begin_layout Standard
|
||||
|
@ -6251,14 +6251,14 @@ Unit testing
|
|||
\begin_layout Standard
|
||||
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.
|
||||
In most cases whole functions.
|
||||
Usually whole functions.
|
||||
Unit testing is good, not only for revealing software bugs, but also to
|
||||
state that a feature is working according to the specification.
|
||||
|
||||
\end_layout
|
||||
|
||||
\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
|
||||
new bugs or break the specification.
|
||||
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
|
||||
Erlang provides a module for unit testing called eunit.
|
||||
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.
|
||||
\end_layout
|
||||
|
||||
|
@ -6279,8 +6279,8 @@ Automated test case generation
|
|||
\begin_layout Standard
|
||||
The problem of writing software tests manually is that it takes a lot of
|
||||
time.
|
||||
There exists other ways to test software that address this problem by generatin
|
||||
g test cases with certain properties.
|
||||
There exists other ways to test software that addresses this problem by
|
||||
generating test cases with certain properties.
|
||||
This allows for testing functions with a lot of different input parameters
|
||||
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
|
||||
difficult to construct using manual testing methods.
|
||||
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
|
||||
finding new cases where the specification does not hold
|
||||
for ensuring that the system does not diverge from a working scenario than
|
||||
for finding new cases where the specification does not hold
|
||||
\begin_inset CommandInset citation
|
||||
LatexCommand citet
|
||||
key "Arts:2006:TTS:1159789.1159792"
|
||||
|
@ -6318,7 +6318,7 @@ QuickCheck has features to generate very large and complex tests, the results
|
|||
\emph on
|
||||
minimal failing test case
|
||||
\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
|
||||
the smallest failing sequence, many bugs which would other wise have been
|
||||
hard to catch can be caught
|
||||
|
@ -6333,7 +6333,7 @@ key "Arts:2006:TTS:1159789.1159792"
|
|||
|
||||
\begin_layout Standard
|
||||
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.
|
||||
Erlang QuickCheck (EQC) and Triq are two variants of QuickCheck for Erlang.
|
||||
EQC was chosen for testing the GGS.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue