Software Quality Assurance: Processes, Activities, and Tools

Software Quality Assurance (SQA)

Key elements make things work. They apply theories, methods, and processes. Software Quality Assurance (SQA) covers not only the technical aspects of software but also includes activities such as project management. It involves developing tools, methods, and theories to support software production.

Software Process

A set of activities and associated results that produce a software product.

Four Key Activities

  1. Software Specification: Engaging with customers to define the software to be produced and the restrictions on its operation.
  2. Software Development: Where the designers and programmers create the software.
  3. Software Validation: The software is validated to ensure it meets the client’s requirements.
  4. Software Evolution: Where the software is modified to adapt to customer needs and requirement changes.

Definition of the Market

A set of activities that ensures the software process and the products formed meet the requirements and standards correctly.

Purpose

  • Provide visibility into the processes used by the software project.
  • Audit products objectively.
  • Review the products and activities to verify compliance with procedures and standards.
  • Provide these results to managers when required.

Problem Solved by SQA

The major problem with SQA is the intangible nature of software products. The abstract nature prevents the definition of quality guarantees.

Life Cycle

A view of the activities that occur during software development. It attempts to determine the steps involved and the associated transition criteria between these stages.

  • Describes the main phases of software development.
  • Defines the primary phases expected to be executed during those phases.
  • Helps manage the progress of development.
  • Provides a workspace for detailed process definition of software development.

Procedures

  1. Definition of objectives.
  2. Requirements analysis and feasibility.
  3. General design.
  4. Programming.
  5. Unit testing.
  6. Integration.
  7. Beta testing.
  8. Documentation.
  9. Implementation.
  10. Maintenance.

Models

  • The Waterfall Model: Contains the four key activities: specification, development, validation, and evolution.
  • Evolutionary Development: Specifications are activities: develop, validate.
  • Component-Based: Based on a significant number of existing reusable components.

Roles

A named or identified role assigns a responsible individual to a part of a project.

  • Project Manager: Allocates resources, manages priorities, coordinates interactions with customers and users, and keeps the project team focused on the objectives.
  • Systems Analyst: In charge of capturing, validating, and specifying requirements.
  • Software Specialist: Manages requirements, configuration, and changes, data models, and functional test preparation.
  • Quality Assurance Group: Provides and secures resources for the quality of role performance.

Skills for Software Quality Assurance

  • Requires extensive studies, proper education in quality assurance, and professional and personal characteristics.
  • Managing personnel, abstraction ability, good oral and written communication.

Activities for SQA

  • Quality Assurance: Establish procedures and quality standards.
  • Planning: Selection of procedures and quality standards.
  • Control: Definition and application.

Tools

Test the application through the execution of a series of performance tests to measure the application.

  • WinRunner: Developed by HP. Measures response time, playback, and checks all transactions and user interactions with the application.
  • LoadRunner: Simple application testing that shows the actual results of the request.
  • QuickTestProfessional: Emulates user actions and uses the application’s functions established by the testers.