====== Verification and Validation Plan ====== The goals of this plan is to document all steps to release a product like "genc³" as an online-product aiming to satisfiy the endusers expectations regarding download, installation, use, and further information. ===== Test Rules ===== * All tests are created according to the [[codesnippets:testingconventions|Testing conventions]] * All tests are automated by using the bash file 'test.bat', 'test.sh' or 'test.zsh'. * The test results are written into file "result.txt" in folder "test". * Checks are conducted before dry runs of test: * All library files have a corresponding test files ("Spec _ _ _ .hs") * e.g. functions in file "./src/Code.hs" have tests in "./test/SpecCode.hs" * All test files are newer than their corresponding library files * All functions, classes, laws of classes (if applicable) are defined by code comments * All tests are complete and documented according to the [[codesnippets:testingconventions|Testing conventions]] * The file "package.yaml" is configured to compile the final product with optimisation flag "-O2". * The content of "ChangeLog.md" * status up-to-date * The version number in file "ChangeLog.md" and "package.yaml" is consistent. * The file "stack.yaml" is configured to used the latest recommended resolver. * The content of "README.md" is still valid * explains how to obtain, install and use the software * has (an) up-to-date copyright year(s) * The content of file "LICENSE" is correct * has (an) up-to-date copyright year(s) * contact information still correct? * Conduct automated tests * Checks are conducted after automated test: * File "testresult.txt" in folder "test" is newer than all products and by-products, at least including: * executables * libraries * documentation * All binaries are rebuild completely (check modification dates) * All library files have a corresponding test files ("Spec _ _ _ .hs") * e.g. for the file "./src/Code.hs" is also a file "./test/SpecCode.hs" * All spec modules are imported and used in file "./test/Spec.hs", by * review of Spec.hs-files ("./test/Spec.hs", "./test/ModuleSpec.hs") * review of "TestResult.txt" in folder "test" * criteria: * tests for all classes, it's laws and it's functions that are validated according to Spec.hs-files are also executed * All functions are in all module "Spec _ _ _ .hs" * e.g. for the file "./src/CharCode.hs" is also a file "./test/SpecCharCode.hs" * All functions described and hence required covered by tests or analysis. * All tests are OK * All results of the checks are documented in a Software Configuration File, including * Software Name * Software Version Number * failed tests and/or deviations * timestamps * filenames * module names * file checksums ===== Pre-Release Rules ===== * The copying of the software product and by-products to an online pre-release folder is executed by the bash file 'distr.bat', 'distr.sh' or 'distr.zsh'. * A final end-test is executed to test * Download procedures * Installation procedures * Opening of documentation * Function of the product * Availability of licensing information * Availability of disclaimers ===== Release Rules ===== * After successful final end test according to the pre-release rules, * the copying of the software product and by-products to an online release folder is executed by the bash file 'deploy.bat', 'deploy.sh' or 'deploy.zsh'. ===== ✎ ===== ~~DISCUSSION~~