Quality processes ensure functional, reliable and optimum development of Scilab software.
Our quality assurance is based in particular on:
Implementation of a new functionality follows a define process
- Specifications drafting: SEP (Scilab enhancement proposal),
- Respect of Scilab coding style for development,
- Writing of unitary tests are written,
- Writing of corresponding help page.
The functionality is integrated only after being reviewed and validated by another developer.
- Coding style is defined for all languages used in Scilab (C, C++, Java, XML, Scilab, Makefiles, ...)
- Checkstyle is available for Java under Eclipse
- Code must be documented (comments using Javadoc, Doygen, ...)
As in the case of new functionality implementation, each modification in Scilab code is reviewed and accepted by another developer.
- Unitary tests (~1300): each new functionality is only integrated if it has a corresponding test and this test execution runs properly under all Scilab supported platforms,
- Non-regression tests (~1900): for each bug fix, a test is written to ensure its proper correction and prevent any future regression,
- Code coverage tools are used to check the tests quality.
Binary version generation
- Each commit into Scilab GIT repository launches a continuous integration process based on Jenkins,
- Daily build of Scilab binary through a nightly build process executes all unitary tests and non-regression tests under all supported platforms,
- Various compilers are supported (Visual Studio, Intel, GCC, Clang, ...).