Lexical Tools

LVG QA & Test Plan

I. Software Quality Assurance

  1. Source Codes Walk through
    A procedure to make sure all source code of lvg meet coding standard.

  2. Software Development Documents (Website)
    A web site provides all development documents on Lexical Tools project.

  3. Software Change Requests
    A web based tool to perform book keeping functions on defects and features for lvg.

II. Testing

Four types of basic testing are executed in lvg project. They are:

  1. Component Unit Test

    All software components in lvg should perform unit test (black box test) to ensure software unit meet all requirements. Software components include:

    • Command Line Syntax
    • Persistent Trie
    • BitMaskBase
    • FruitfulVar
    • luiNorm
    • norm

    These components test are performed during the software development. These tests are at $TEST/LVG/ComponentTest/. Similar tests are also performed in the flow Unit test.

  2. Regression Test on Flows & Options units

    All units of lvg flow components and options should pass regression test to ensure software meet all requirements. This regression test includes "repeating a test already run successfully (previous version), and comparing the new results with the earlier valid results (gold standard)". This test is used after generate the baseline, after big change in certain flows, and before deploy/release. Software components include:

  3. Smoke Test

    A basic function tests are includes in the smoke test:

    • Test all Lexical Tools - command0line tools
    • Test all examples in the Lexical Tools package.

  4. Integration Test

    A system level test should be performed for lvg, norm, luiNorm, and other tools. Ideally, an automatic testing program should be implemented and used. This testing program should include functions such as:

    • lvgLite test (test lvgLite${YEAR}.jar)
      • Test lvgLite by running scripts
        • cd ${TEST_LVG}/LiteTest/${YEAR}
        • Download lvgLite${YEAR}.jar
        • shell> gtar -xzvf lvgLite${YEAR}.jar
        • chmod +x ./bin/*
        • test all scripts
      • Run unit test by integrating lvgLite
        • Add config file to: ${PROJECT}/LVG/lvg${YEAR}/data/config/lvg.properties.lite
        • Update the value of ${LVG_DIR} in the above file
        • Use option for test lite (3)
    • Performance test
    • Component test on ASCII (on the results of performance test)
    • Input sample data
    • Compare results
    • Generate test reports

  5. Distribution Test

    Software should be tested on different platforms (Linux, Unix, and Window NT) to ensure the compatibility and performance meet the distribution standard.

  6. Quality Assurance

    This QA procedure is to check system delivery meet coding standard, system documentation (such as PDD & UDF) are provided, and defects are fixed with approval.

  7. Other Test and Analysis

    This includes analysis on feedback from Lexical users. Such as: