Side-Chain Storage: Test Plan
All this tests must be carried in order to verify the project has successfully accomplished all the requirements. The order of execution of this tests is the one shown in the following task list (From 1A to 3B):
(1) Initial validation:
(A) Deploy a Hello World contract to the Private Network. (Requirement 1.4.1)
(B) Mine the private network with the main full-node. (Requirement 1.4.3)
(C) Interact with a soft or full node with the deployed Hello World contract. (Requirement 1.4.2 / 1.4.4)
(D) Deploy all the generated contracts to the Private Network (Requirement 1.4.6)
(E) Carry out a transaction to store all the data extracted from the vinduinos. Preprocessing might be necessary (Requirement 1.4.7)
(F) Carry out a transaction to store all the data extracted from the Weather Station/sensors. (Requirement 1.4.7)
(G) Carry out all transactions a worker can do. (Requirement 1.4.7)
(H) Try to carry out a transaction to store all the data extracted from the vinduinos from an unauthorized address - ERROR. (Requirement 1.4.9)
(I) Try to carry out a transaction to store all the data extracted from the Weather Station/sensors from an unauthorized address - ERROR. (Requirement 1.4.9)
(J) Try to carry out all transactions a worker can do from an unauthorized address - ERROR. (Requirement 1.4.9)
(K) Try to consult the inserted data. (Requirement 1.4.9)
(L) Consult the timestamps and the hashes generated during the data insertion (Requirement 1.4.12 / 1.4.13)
(M) Recover the initial state of the block with an admin address. (Requirement 1.4.10)
(N) Try to recover the initial state of the block without an admin address - ERROR. (Requirement 1.4.10)
(2) Advanced validation (Mocha test):
(A) Generate and execute unit tests showing data from vinduinos can be stored.
(B) Generate and execute unit tests showing data from sensors can be stored.
(C) Generate and execute unit tests showing data from workers can be stored.
(D) Generate and execute unit tests verifying authorization is needed to insert.
(E) Generate unit test verifying state recovery is possible (return to the state before executing the advanced validation).
(3) Performance validation (Mocha test):
(A) Generate tests to check if selections are possible.
(B) Add performance variables to check if query times are acceptable.
As this project has some tasks that are iterable, some of this tests might have to be passed more than once. In case the performance validation is not passed we will get back to the test 1D.