About TSPI
TSPI Clients
Why TSPI?
Quality Policy
The Philippine Advantages

It has been a common pitfall in the software industry to readily define Quality with the attributes of the final Product alone. Our organization, however, recognizes that the Quality of a Product is only as good as the method employed to create it. Thus, for TSPI, Quality Assurance is two-tiered commitment:

at the Product Level, and
at the Process Level

The granularity of our attentiveness to quality ranges from the Source Code walk-throughs, to Design Specification reviews, to Post-mortem project analyses. This culture of quality has been imbibed to us after our long business relationships with Japanese clients, whose demand for high quality project deliverables cannot be overemphasized. We even adopted the Japanese principle of “Kaizen” or Continuous Improvement, which has been traditionally practiced in the manufacturing industry.

ENSURING PRODUCT QUALITY

Although all projects have distinct requirements, all members of a project development team in TSPI share one common goal: to deliver a high-quality software system which satisfies or exceeds the customer’s technical and business requirements in a timely manner. With this end in mind, Quality Assurance is performed during every stage of the software development cycle, to each project deliverable, big or small. Our QA team is not a monolithic group, which is totally separated from the Development team, united only by the project specification. The QA engineer’s involvement starts from as early as the Requirement Analysis phase and even goes as far as the Maintenance phase (please refer to the table below). His work is not limited to testing the source codes written by the development team but to checking all project documentations as well. The mandate of our QA engineer is NOT to prove that there are no more problems in the Software system being developed, but rather, to prove that there are still problems yet to be uncovered, so we must find them before the client does. This basic difference in mindset, results to high quality Test Items, which checks the behavior of the system under various “stressful” conditions.

PROJECT DEVELOPMENT PHASE
DEVELOPMENT
QUALITY ASSURANCE TEAM RESPONSIBILITY
REQUIREMENT

Identify System Boundaries, major System components, interaction between these components when external stimuli is applied to the system.

Define system throughput requirements.

Identify major technologies and operating platforms

Prepare a Requirement Specification document

Review Requirement Specification together with the QA team

Prepare a Project Development Plan

Review Requirement Specification together with the client

Identify the attributes of the external components interacting with the System to be developed

Identify the “Use Cases” at the System Level

Identify technologies needed to Test the system

Review Requirement Specification together with the Development team

Prepare a System Test Plan

Review Requirement Specification together with the client

BASIC DESIGN

Define Overall Architecture of the software system, identifying all functional blocks and their interface

Prepare Basic Design Specification documents for each functional block

Review Basic Design Specification documents together with the QA team

Review Basic Design Specification together with the client

Identify the “Use Cases” for each Functional block

Create Test Items for the “Blackbox” testing of the whole system

Review Basic Design Specification documents together with the Development team

Review Basic Design Specification together with the client

DETAILED DESIGN

Identify processes, subroutines, etc. composing each function block and define the process flow within each process, subroutine, etc.

Prepare Detailed Design Specification documents for each functional block

Review Basic Design Specification documents together with the QA team

Review Detailed Design Specification together with the client

Create Test Items for the “Whitebox” testing of each functional block

Develop tester programs which will automate testing as much as possible

Review Detailed Design Specification documents together with the Development team

Review Detailed Design Specification together with the client

CODING

Write program code based on the Detailed Design specification

Review codes together with the QA team

Review codes submitted by the development team

Create additional Test Items for the “Whitebox” testing of each functional block

Develop tester programs which will automate testing as much as possible

UNIT TESTING

Revise program codes based on the result of Whitebox Testing

Perform “Whitebox” testing for each functional block

Perform regression testing everytime revised version of program code is released

SYSTEM TESTING

Revise program codes based on the result of Blackbox Testing

Perform “Blackbox” testing for the entire software system

Perform regression testing everytime revised version of program code is released

ACCEPTANCE TESTING

Revise program codes based on the result of Acceptance Testing

Perform acceptance testing at the client site using actual client environment

Perform regression testing everytime revised version of program code is released

MAINTENANCE

Perform revisions requested by the client

Perform regression testing everytime revised version of program code is released


ENSURING PROCESS QUALITY

We pay special attention to detailed documentation of the entire development process, and all project deliverables, including source codes, to make our operations transparent to our client, thereby reducing the possibility of misunderstanding. As much as possible we incorporate internationally accepted standards such as SDL (Specification and Design Language) and UML (Universal Modeling Language) together with our own design methodologies to ensure standardization of workflow processes.

We conduct Post-mortem analysis of all projects completed, and document all our best practices in a centralized Knowledge Base for all engineers to refer to. We conduct regular internal audit not only of the engineering processes but all support areas including HR and Finance.

Our immediate target is to employ Software Capability Maturity Model (CMM) in all areas of our operation.

Go to previous page Home Page Go to next page