38 Project Lifecycle Components, Infrastructure Components (Till CAPA) – Summary II

Software testing is the process of executing a program with intention of finding errors. The process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the features of the software item.”

 

In direct objectives

  • To identify and reveal as many errors as possible in the tested software.
  • To bring the tested software, after correction of the identified errors and retesting, to an acceptable level of quality.
  • To perform the required tests efficiently and effectively, within budgetary and scheduling limitations.

In indirect objective

  • To compile a record of software errors for use in error prevention (by corrective and preventive actions).

Various strategies of software testing includes:

 

Big bang testing: tests the software as a whole, once the completed package is available.

 

Incremental testing: software modules are tested as they are completed (unit tests), followed by groups of modules composed of tested modules integrated with newly completed modules (integration tests). Once the entire package is completed, it is tested as a whole (System test).

 

Black box (functionality) testing. Identifies bugs only according to software malfunctioning as they are revealed in its erroneous outputs. In cases that the outputs are found to be correct, black box testing disregards the internal path of calculations and processing performed. White box (structural) testing. Examines internal calculation paths in order to identify bugs. It investigates the correctness of code structure. The main advantages of Black box testing are it allows the tester to carry out almost all test classes. For test classes that can be carried out by both white and black box testing. Black box testing requires considerably fewer resources. The main disadvantages of Black Box testing are it allows for identification of coincidental errors as correct. It lacks control of line coverage. It lacks possibilities to test the quality of coding work.

The main advantages of White Box testing are it permits direct checking of processing paths and algorithms. It provides line coverage follow-up that delivers lists of lines of code that have not yet been executed. It is capable of testing the quality of coding work. The main disadvantages of White Box testing are it requires vast resources, much above those required for black box testing. It cannot test the performance of software in terms of availability, reliability, stress, etc.

 

Planning, design and performance of testing are carried out throughout the software development process. These activities are divided in phases, beginning in the design stage and ending when the software is installed at the customer’s site.

 

Automated testing tools are capable of executing tests, reporting outcomes and comparing results with earlier test runs. Tests carried out with these tools can be run repeatedly, at any time of day. The method or process being used to implement automation is called a test automation framework. The main types of Automated Testing are:

 

  Code auditors: The code auditor checks the compliance of code to specified standards and procedures of coding.

 

Coverage monitors: produce reports about the line coverage achieved by implementing a given test case file.

   Functional tests: Automated functional tests replace manual black-box correctness tests.

 

Load tests: The load tests are based on simulated scenarios of maximal load situations the software system will confront. An automated testing system enables measurement of the expected performance of the software system under various load levels.

 

Test management: The main objectives is to provide comprehensive follow-up and reporting of the testing and correction of detected errors

 

Alpha site testing is a method by which customers try out the new software package at the developer’s site. Beta site testing is a method by which a selected group of users or customers receive an advanced version of the software to be installed in their sites, and report the errors they find in the process of their experiments with the program and the program’s regular use. Two factors are considered to be the foundations of high quality maintenance:

  • Software package’s quality could be guaranteed by implementing SQA activities throughout the development process, and should begin in the earliest phases of software development.

The main constituents of Maintenance policy are Version policy and Change policy.

 

Software development contractors are organizations or groups of organizations that are contracted by a customer in a project contract to develop a software system. External participants are organizations that participate in the development process, performing small to large parts of the work, but are not legally designated sides in the project’s contract.

 

The external participants can be categorized into three main groups:

  • Subcontractors
  • Suppliers of COTS software and reused software modules
  • The customer themselves as an active participant in performing parts of the project.

The main benefits to the contractor of using external organizations are:

 

Overcoming shortages of professional staff by transferring parts of the project to be carried out to firms employing staff having those skills.

   Potentially shorter project schedules, achieved by purchasing COTS software and reused software rather than developing the software.

 

Expertise acquired in areas that need specialization through the participation of owners

– the subcontractor or the customer’s development department – of that expertise.

 

Saved budget, achieved when subcontractors offer prices below those incurred by performing the project internally, and by the use of COTS and reused software.

 

CASE (Computer Aided Software Engineering) tools are computerized software development tools that support the developer when performing one or more phases of the software life cycle and/or support software maintenance. CASE tools are used for the identification of deviations from design requirements. It identifies design inconsistencies. Automated generation of code based on the repository design records, with no expected errors can also be detected using CASE tools. Full compliance with design and coding documentation instructions achieved by the automated coding can be achieved using CASE tools. The full and updated documentation provided by CASE repositories assures the consistency of repairs, changes and additions within the existing system. The cross-referencing repository tool facilitates planning and prevents a significant proportion of design errors. The automated coding carried out by CASE tools eliminates coding errors. Software quality infrastructure components are employed to prevent software errors and promote the quality level of the entire organization. The typical infra structure components are:

  • Procedures and work instruction.
  • Quality support devices like templates and checklists. Staff SQA training and certification activities.
  • Preventive and corrective actions.
  • Software configuration management.
  • Documentation and quality records control.

Procedures are activities performed in order to achieve given tasks. Work instructions tools are used to define local variations in the application of the procedures by specific teams and/or departments. Work instructions, however detailed and targeted, cannot contradict the organization’s procedures. For supporting quality devices the template refers to a format created by units to be applied when compiling a report or some other type of document.

 

Contribution of templates to SQA includes:

  • Documents submitted for review tend to be more complete. As a result, review teams can direct their efforts to further improvement of the final product.
  • Document reviews are facilitated as their structure is standard and well known among reviewers.
  • Reviewers can focus on issues of document content.

The checklist used by software developers refers to the list of items specially constructed for each type of document. Contributions of checklists to SQA

  • Checklists support document completeness and improve document quality.
    • Conduct of review sessions becomes less problematic when topics and their order of priority are defined.
  • An efficient session is expected to carry out a thorough analysis of comments by reviewer.

Major objectives in staff training and certification is to:

  • Develop the knowledge and skills needed by new employees and to update the knowledge and skills of veteran employees.
  • Impart knowledge of style and structure procedures and work instructions to assure conformity of software products to the organization’s standards and knowledge of SQA procedures
  • Assure that the qualifications of candidates for key professional positions conform to the position’s requirements.

Corrective actions: A regularly applied feedback process that includes collection of information on quality non-conformities, identification and analysis of sources of irregularities as well as development and assimilation of improved practices and procedures, together with control of their implementation and measurement of their outcomes.

 

Preventive actions: A regularly applied feedback process that includes collection of information on potential quality problems, identification and analysis of departures from quality standards,development and assimilation of improved practices and procedures, together with control of their implementation and measurement of their outcomes.

Successful operation of a CAPA process includes the following activities:

  • Information collection Analysis of information
  • Development of solutions and improved methods Implementation of improved methods
  • Follow-up.

The CAPA process is carried out by the joint efforts of a permanent CAPA body and adhoc team participants. The permanent CAPA body, called the CAB, activates the process by screening information, appointing members of targeted adhoc CAPA teams, promoting implementation and following up the process. The adhoc CAPA team’s task is to analyze information about a given topic in addition to developing solutions and a CAPA process.

Various Testing Strategies and their implementation techniques have been discussed. The impact of infra structure Components such as Procedures, Work instructions, Staff training and Certification on Software Quality has been discussed. Corrective and Preventive Action (CAPA) is a vital infrastructure component in ensuring Software Quality.