Changes between Version 13 and Version 14 of OpenVPN_QA


Ignore:
Timestamp:
09/26/11 08:53:12 (13 years ago)
Author:
Samuli Seppänen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • OpenVPN_QA

    v13 v14  
     1[[TOC(inline, depth=1)]]
     2
    13= Introduction =
    24
    35This page outlines the efforts taken to maintain OpenVPN's quality without excessive compromises on development speed.
    46
     7The next major release (as of Sep 2011), OpenVPN 2.3, will contain significant low-level changes to OpenVPN 2.2.x and 2.1.x. Therefore lots of work is needed on the QA front to avoid regressions. The plan is to setup good QA environment for 2.3a -> 2.3GA development phase. This environment will contain several different parts:
     8
    59= Static testing =
     10
     11== Peer review ==
    612
    713Static testing usually refers to [http://en.wikipedia.org/wiki/Static_code_analysis static code analysis], which is baked in into our [DeveloperDocumentation development process] in the form of mandatory ACK process every patch has to go through. The ACK process not only improves code quality, it also prevents highly specialized or rarely used features from polluting the codebase.
    814
    9 In addition OpenVPN's codebase is scanned using [http://scan.coverity.com/ Coverity Scan] which detects many potential security vulnerabilities.
     15== Automated static testing ==
     16
     17OpenVPN's codebase is scanned using [http://scan.coverity.com/ Coverity Scan] which detects many potential security vulnerabilities.
    1018
    1119= Dynamic testing =
     
    2028This said, a minimal amount of dedicated, dynamic testing (a.k.a. [http://en.wikipedia.org/wiki/Smoke_testing smoke testing]) goes into each release to catch the most obvious errors.
    2129
     30== Performance tests ==
     31
     32To ensure good performance, performance tests are in place. For details, look at the [wiki:PerformanceTesting performance testing wiki page].
     33
    2234== Testing in real environments ==
    2335
     
    3042  * Difficulty of deployment, e.g. building software from sources (especially on Windows)
    3143
    32 This means that the closer were getting closer to release, the more people we can expect to be testing the codebase. The figures below are not based on any real calculations and can only be considered rough estimates:
     44This means that the closer were getting closer to release, the more people we can expect to be testing the codebase. The figures below are not based on any real data and can only be considered rough estimates:
    3345
    3446||'''Git'''||'''Snapshots'''||'''Alpha'''||'''Beta'''||'''RC'''||'''Release'''||
    3547||0.1%||0.2%||1%||5%||10%||99%||
    3648
    37 Use of snapshots help overcome some of the technical barriers. The only way to overcome psychological barriers is to speed up the release cycle. This results in new features get into wide circulation faster, which in turn results into issues being reported more quickly. This also gives more confidence in integrity of stable releases.
     49Use of snapshots help overcome some of the technical barriers. The only way to overcome psychological barriers is to speed up the release cycle. This results in new features get into wide circulation faster, which in turn results into issues being reported more quickly. This also gives more confidence in integrity of stable releases. On the flipside, more bugs will probably end up in the initial versions of the stable releases.
     50
     51In practice, the goal is to make live testing by users as easy as possible by
     52
     53 * Providing snapshot packages regularly for common *NIX platforms and Windows
     54 * Providing apt repositories for Debian 6 and Ubuntu
     55   10.04+
     56 * Providing rpm repositories for latest Fedora releases
    3857
    3958== Continuous integration ==
     
    4766
    4867At the moment, there is no coherent set of [http://en.wikipedia.org/wiki/Unit_test unit tests] to spot regressions. One option would be to use [http://cunit.sourceforge.net/index.html CUnit] or similar unit test framework to cover the most commonly used and/or critical codepaths.
    49