The purpose of this document is to describe the standards and procedures to follow during the software testing phases of the QuakeCoRE ucgmsim git repositories.  


1.  Scope

These standards and procedures state the general standards and procedures to follow to plan and conduct software testing and validation for QuakeCoRE ucgmsim git repositories.  
These standards and procedures may be changed via a change control mechanism that allows all those concerned to be notified of changes made to the steps.


2. Test priorities

(1) Prioritize GitHub repositories for testing 




3.Test plan

 (1) Test method:  

(2) Test framework:

(3) Test design:

(4) Test execution

(5) Test report

Examples

(1) How to identify the type of application and corresponding test method

(2) How to design the structure of a testing folder

(3)How to write a test for Script file

 

(4) How to write a test for Library file

step 1. Identify a function to test: srf_dt

step 2. Identify input file paths for testing

step 3. Set up functionalities to create/remove test output folder which is handled by set_up and tear_down module (as shown in the test example for script in (3))

step 4. Write unit test called 'test_dt' for function 'srf_dt'.  Use the builtin pytest.mark.parametrize decorator to enable parametrization of arguments for a test function. The @parametrize decorator defines two different (test_dt,expected_dt) tuples so that the function 'test_dt' will run twice using them in turn. The expected value eg '2.50000e-02' should be manually picked but not by opening and reading from the sample output file.

step 5. Run Pytest

4. Test Responsibility

(1) Scripts tests are conducted by a person that is not involved in the development of the script.

(2) Library tests/Unit tests are created and executed by the developer of the unit.

All Scripts and Library files must pass the tests before being accepted to the usgmsim Git repository.