Water Cooler SQA Plan
Water Cooler SQA Plan
Water Cooler SQA Plan
Software Quality
Assurance (SQA) Plan
Submitted by:
Alvarez, Guillard
Dalangin, Cris
Lu, Pamela
This document contains the Software Quality Assurance Plan for the Watercooler Project.
The activities and tasks outlined in this document are consistent with the existing Software
Development Plan and project documentation for the system.
The Watercooler Development Team assumes responsibility for the maintenance of this
document according to the needs of the Watercooler Project. Users of this document may
report deficiencies or corrections through a Document Change Request Form that can be
found at the end of the document.
S I G N A T U R E P A G E
Prepared By:
______________________________ ______________
(Signature above printed name) (Date)
Reviewed By:
______________________________ ______________
(Signature above printed name) (Date)
______________________________ ______________
(Signature above printed name) (Date)
Approved By:
______________________________ ______________
(Signature above printed name) (Date)
A M E N D M E N T H I S T O R Y
1. Purpose ......................................................................................................................... 8
3. Management .................................................................................................................. 9
3.2. Resources............................................................................................................. 11
4. Documentation ............................................................................................................. 18
4.1. Purpose ................................................................................................................ 18
The purpose of this Software Quality Assurance (SQA) Plan is to establish the goals,
processes, and responsibilities required to implement effective quality assurance functions
for the Watercooler project.
The Watercooler SQA Plan provides the framework necessary to ensure a consistent
approach to software quality assurance throughout the project life cycle. It defines the
approach that will be used by the Software Quality (SQ) personnel to monitor and assess
software development processes and products to provide objective insight into the maturity
and quality of the software. The systematic monitoring of Watercooler products, processes,
and services will be evaluated to ensure they meet requirements and comply with the
Watercooler Development Team’s existing policies, standards, and procedures, as well as
applicable Institute of Electrical and Electronic Engineers (IEEE) standards.
1.1. Scope
This plan covers SQA activities throughout the lifecycle of the Watercooler project.
Watercooler offers a simple, easy-to-use and clutter-free interface. It will allow software
developers and other IT professionals to make use of tags to categorize topics. The usage of
tags will provide for easier searching of topics and will prevent the deep hierarchies of
categories that usually add clutter to a forum. In addition, users will be allowed to follow any
tags they like. Users will be able to quickly check the threads that are most relevant to them
by following tags that interest them. Users will also be able to vote for or against any of the
posts. Post ratings will allow for the easy filtering of the most helpful answers.
This project will cover the registration, login/logout, creation of threads, post questions,
follow tags, post ratings. It will be created in PHP and MySQL which will run on Apache
server.
The team will use the Agile software development which will be based on iterative and
incremental development and where requirements and solutions will evolve through
collaboration between self-organizing, cross-functional teams.
SQA activities will be done in all iterations. The SQA Team will be testing the system/module
in all iterations to ensure quality of the system.
2. Reference Documents
IEEE Standard for Software Quality Assurance Plans. Software Engineering
Standards Committee , September 2002.
Reaves, Michael J. Software Quality Assurance and Software Verification and
Validation Plan for Web Accessible Alumni Database. Jacksonville State University,
2003.
Defense Finance And Accounting Service, Program Quality Assurance Plan, May
2002.
Tom, Mochal, Integration testing will show you how well your modules get along,
Sept. 2001.
Applying Broadcasting/Multicasting/Secured Communication in Multi-Agent Systems
Software Quality Assurance Plan, 2003
IEEE Guide for Software Quality Assurance Planning
IEEE Standard for Software Quality Assurance Planning, IEEE Std 730.1-1995
3. Management
Project
SQA
Manager
Software Quality Assurance is responsible for ensuring compliance with SQA requirements
as delineated in this Software Quality Assurance Plan. The SQA organization assures the
quality of deliverable software and its documentation, non-deliverable software, and the
engineering processes used to produce software.
This section describes the functional groups that influence and control software quality.
3.1.1. The Watercooler Project Team
The Watercooler Project Team is responsible for the management of project objectives
within the guidelines and controls prescribed by the Watercooler Project Plan.
The Software Designer and Developer are responsible for the following:
3.2. Resources
3.2.2. Personnel
The Development Team comprises of one Project Manager (PM), one Business Analyst and
Developers, each specializing in a particular web component. Following a web framework
methodology, tasks will be split according to its requirements.
The PM will also be responsible for implementing and reviewing the SQA Plan. The PM will
coordinate regularly with the independent Quality Assurance Team with regards to quality
audits made to the system and will discuss with the project team members if there are issues
or discrepancies encountered during the audit process.
The senior programmer will be in charge of all backend logical processes. The Database
Administrator will focus on database design and structure and will constantly coordinate with
the senior programmer. The Lead Web Designer will be in charge of the general appearance
of the system. The tester will be in charge of all tests during the development process.
The Business Analyst will ensure that the project scope is clear and complete will be
responsible for defining and documenting the scope as part of the requirements gathering
task.
The Quality Assurance Manager assigned to the project is responsible for supporting the
Project Manager in ensuring the quality of the product. The QAM provides Project
Management with visibility into the processes being used by the software development
teams and the quality of the products being built. The QAM maintains a level of
independence from the project and the software developers. Risk escalation begins at the
project level, and extends to the Assurance Management Team.
In support of software quality assurance activities, the QAM has assigned Quality Assurance
Personnel to coordinate and conduct the Quality Assurance (QA) activities for the project
and identify and document noncompliance issues
Quality Assurance Personnel Responsibilities include, but are not limited to:
Prepare and manage the project software system quality assurance plan
Create and keep a schedule of software quality assurance conducted activities
Lead process and product assessments, as depicted within this plan, using objective
standards
Interface with Safety, Reliability, and IV&V personnel on software system assurance
activities
Discover and document non-compliances, observations, and risks from all software
assurance related activities to the Systems Assurance Manager
Communication of results from assessments with crucial stakeholders
Ascertain resolution of non-compliances and escalate any issues that cannot be
decided within the project
Discover lessons learned that could improve processes for future projects.
Prepare and manage metrics
3.3. SQA Tasks
This section discusses the SQA tasks performed by the SQ Personnel during the
development and maintenance of the Watercooler project. These tasks are selected in
accordance to planned and contractual deliverables, the Software Management Plan (SMP)
and the Project Schedule set by the Watercooler Project team.
Set of Coding Standards and Best Practices – Set of coding rules to be followed by the
developers to ensure uniform coding. Following these standards reduces time and effort in
code reviews, and also allows easier maintenance of the project.
Requirements Analysis involves gathering information about the customer's needs and
defining, in the clearest possible terms, the problem that the product is expected to solve.
This analysis includes understanding the customer's business context and constraints, the
functions the product must perform, the performance levels it must adhere to, and the
external systems it must be compatible with. Techniques used to obtain this understanding
include customer interviews, use cases, and "shopping lists" of software features. The
results of the analysis are typically captured in a formal requirements specification, which
serves as input to the next step.
Requirement for this project is to have a forum for IT Professionals where they can ask
questions in terms of programming. Users should be able to post questions, answer
questions, follow threads of their interest, and post ratings. They should be able to register,
login and edit their profile in Watercooler.
Several techniques such as interviews, questionnaires, client documents and scenarios will
be used to elicit requirements.
System Requirements Document (SRD) will be tested to confirm that a system possessing
the characteristics defined in the SRD satisfies the URD within the effectiveness envelope.
Operational Analysis is the usual technique for SRD validation.
It is confirmed that the candidate requirements can be satisfied within the target or approved
capability, cost, timescale and risk envelope by feedback from SRD and solution option
development.
A goal of detailed design is to define logically how the software will satisfy the allocated
requirements. The level of detail of this design and development must be such that the
coding of the computer program can be accomplished by someone other than the original
designer.
Ensure that the software design process and associated design reviews are
conducted in accordance with standards and procedures established by the project
and as described in the SDP
Ensure that action items resulting from reviews of the design are resolved in
accordance with these standards and procedures
Evaluate the method used for tracking and documenting the development of a
software unit in order to determine the method's utility as a management tool for
assessing software unit development progress. Example criteria to be applied for the
evaluation are the inclusion of schedule information, results of audits, and an
indication of internal review and approval of its constituent parts
Ensure that the method used for tracking and documenting the development of a
software unit is implemented and is kept current
The results of this task shall be documented using the Process Audit Form described in
Section 8 and provided to project management. SQA’s recommendation for corrective
action requires project management’s disposition and will be processed in accordance with
the Corrective Action Process.
It must be ensured that the software integration process, and testing activities or procedures
are being accomplished in accordance with established software standards and procedures,
and the software design. Also, it must be documented and ensured that the approved test
procedures are being followed, that accurate records of test results are being kept, that all
discrepancies discovered during the tests are being properly reported, that test results are
being analyzed, and the associated test reports are completed.
When fixes are made, it must be made sure that the software integration and unit testing
procedures are re-executed to validate the correctness of the changes made to the source
code, and to check for the existence of child bugs, if any.
The SQA Personnel must make sure that the SVD and User Manual documents are the
correct version for Watercooler. Also, the Media Distribution List must contain the complete
list of organizations, along with their correct and current addresses, where the end-item is to
be delivered.
A software development folder or file is a physical or virtual container for software project
artifacts, including: requirements, plans, designs, source code, test plans and results,
problem reports, reviews, notes, and other artifacts of the development process.
The software development folder check off list requires the checking of requirements,
functionality, source code, libraries/directory, development methodologies, test data, test
analysis. Requirements indicate that there is matches between the requirements trace ability
matrix and the requirements addressed by this module. With functionality, it checks if a
design walk-through was conducted and if it there was a permission to start the program.
Source code of the unit should be included in the folder as well as the libraries and
directories. Test Analysis is also included to verify that the unit has been thoroughly tested.
Software configuration management (SCM) process is the best solution to handle changes
in software projects. It identifies the functional and physical attributes of software at various
points in time, and performs systematic control of changes to the identified attributes for the
purpose of maintaining software integrity and traceability throughout the software
development life cycle. Configuration management practices include revision control and the
establishment of baselines. CVS will be used for version control.
Requirements Traceability
Traceability is identified through the use of a spreadsheet matrix which will tie individual
Contract End Item (CEI) Specifications, applicable Interface Controlled Description (ICD)s
and Software Requirements Document entries to lower level design and test specification
paragraphs or sections. These Traceability products are produced and maintained by SQA.
SQA is included in review process for all software document generation. During these
reviews, checklists and Traceability spreadsheets are used to ensure that requirements are
met by both the design and test functions.
Project Planning
Project Monitoring and Control
Software Reviews
Requirements Management
Software Configuration Management and Configuration Audits (FCA/PCA)
Test Management (Verification & Validation)
Software Problem Reporting and Corrective Action
Risk Management
4.1. Purpose
This section defines the required documentation for properly assessing the correctness of
the system. Essential documentations pertaining to requirements, development, verification,
validation and maintenance of the software that fall within the scope of this Software Quality
Plan shall be reviewed by the Software Quality Personnel.
5.1. Purpose
This section highlights the standards, practices, conventions, and metrics to be applied to
ensure a successful software quality program.
In accordance to ISO 9001:2008 standards, the process model for the Watercooler project
will involve continuous improvement by planning, implementing and monitoring project
aspects and repeatedly reviewing project procedures. The Watercooler project will focus on
the following four characteristics of Quality Management:
Process Customer
Improvement Focus
Measurement
Quality
Analysis and
Culture
Improvement
The Watercooler project will involve business planning, management planning, establishing
of parameters and procedures and training to ensure that the project will be in tune with the
focus of the project’s quality program. In particular, involvement of the clients, the
management and staff will be important to the success of the implementation of the quality
program.
5.2.1. Standards, Practices, and Conventions
The following table lists all standards, practices, and conventions that will be used in
Watercooler project.
UML Notation The UML notation will be used for Document Inspection
design documents.
Pseudocode Detailed Design documents will Document Inspection
follow the pseucode standard.
Coding Standard Programs will have to follow the Automated / Manual Code
coding standards. Different Review
programming languages will have
different coding standards.
Unit Test Standard All programs will have to undergo Code Review
unit testing. Unit testing standards
will be documented and will have to
be followed.
Usage of Wiki Practices, standards and pertinent Process Inspection
project information must be put in
the project wiki. All team members
must have access to the project
wiki.
Bug Tracking Bugzilla will be used for Bug Implementation Inspection
Tracking.
Best Practices for All bug reports are expected to Process Inspection
Bug Reporting have the following details:
Current behaviour of the
system
Expected behaviour of the
system
Screenshot
Replication Steps
Email All members must follow the Process Inspection
standard for email communication.
Subject of the all email messages
must conform to the standard.
Progress Reports The team must produce progress Implementation Inspection
reports at the end of each week.
5.2.2. Metrics
The use of metrics provides an objective means of gauging whether the project is on track
with respect to its cost, scope, and quality of its product. Selection of the correct metrics and
monitoring them will aid in a more timely escalation and resolution of issues or misses, and
will prevent the team from reverting to fire-fighting as its means of addressing issues. The
fire-fighting approach is reactive, while the use of metrics to control and monitor the project
is a proactive approach well-intended to mitigate risks early on.
To establish the most appropriate quality metrics that will be used in the project, the
following activities will be performed by the Quality Assurance team:
Validate metrics
The following standard metrics are the minimum planned metrics that will be collected,
reported, and maintained:
6.1. Purpose
This section manages all software reviews that would be conducted by the SQA Team to
the system. The reviews would be mainly based from the Software Development Plan or
the Project Plan, which outlines the processes in the Systems Development Life Cycle, as
well as the scheduling, budget analysis, and other pertinent information that would prove
useful during the review process.
The software items produced during the software life cycle process should be reviewed and
audited on a planned basis to determine the extent of progress and to evaluate the technical
adequacy of the work and its conformance to software requirements standards. Technical
reviews and audits should be conducted to evaluate the status and quality of the software
development effort. This ensures that the elements completely and correctly embody its
baseline specification.
The following software reviews may be assessed by the Software Quality Assurance:
7. Software Testing
The testing activity for the Watercooler project will be divided into three parts, namely:
Lastly, they will review post-test documents such as test reports, test results, etc.
In the Corrective Action Report, all non-conformances should be identified during each
process in operations and details should be recorded. Non-conformances may be from the
voice of the customer (customer feedback) or voice of the system. Root causes of the non-
conformance should be analyzed and identified and result of analysis should be recorded in
the Corrective Action Report. The after, formulate and recommend actions to be taken.
Ensure time frames and responsibilities for actions are clearly defined.
The corrective action is considered effective if after one (1) month implementation and the
nonconformance did not recur.
The assigned person should monitor implementation of the recommended actions following
defined time frames. Identify interfaces with other processes of the management system and
determine effects. If actions taken are effective (the same problem did not recur), formalize
the changes.
In the Preventive Action Report, all potential non-conformances and/or improvements during
each process should be identified and details should be recorded. Suggestions for
improvements are encouraged from all employees. Improvement suggestions should be
justified in terms of costs involved and benefits to be derived. Root Causes of the potential
non-conformance should be analyze and identified. Results of the analysis should be
recorded in the Preventive Action Report. Then after, formulate and recommend actions.
Ensure time frames and responsibilities for actions are clearly defined. The report assists in
monitoring implementation of the recommended actions following defined time frames.
Identify interfaces with other processes of the management system and determine effects. If
actions taken are effective (the same problem did not recur), evaluate.
(Please check Form-004: Software Tool Evaluation Report located in Appendix F.)
Microsoft Office applications – these will be used in creating the SQA documents
throughout the project
BugZilla - a Web-based general-purpose bugtracker and testing tool. This will be
used by the Watercooler project for tracking bugs/requests during development and
testing phase.
PHPUnit – a unit-testing framework (based on Java’s JUnit framework) used for PhP
applications. This can be intergrated to the IDE as an external tool.
Any enhancements or defects raised must be analyzed by the SQA team. The team must be
able to assign a priority level to the said enhancement or fix depending on its complexity and
the impact on the system.
The development team must always be aware of the priorities of the issues raised. All
high/critical priority issues must be addressed first.
After a defect has been fixed or an enhancement has been added, the development team
must notify the QAM at the next SQA review, in which case the changes will be noted.
If a bug has been fixed or a change has been made, the software tester must re-execute the
testing process to verify the correctness of the fix/change and to make sure no child bug has
been created in the process.
All supplier software has been operationally tested in the target system. No future supplier
software is planned.
13. Training
Software Quality personnel shall have fundamental knowledge in the following
areas/disciplines through prior experience, training, or certification in methodologies,
processes, and standards.
Planning how risk will be managed in the particular project. Plan should include risk
management tasks, responsibilities, activities and budget.
Assigning a risk officer - a team member other than a project manager who is
responsible for foreseeing potential project problems.
Maintaining live project risk database. Each risk should have the following attributes:
opening date, title, short description, probability and importance. Optionally a risk
may have an assigned person responsible for its resolution and a date by which the
risk must be resolved.
Creating anonymous risk reporting channel. Each team member should have
possibility to report risk that he/she foresees in the project.
Preparing mitigation plans for risks that are chosen to be mitigated. The purpose of
the mitigation plan is to describe how this particular risk will be handled – what, when,
by who and how will it be done to avoid it or minimize consequences if it becomes a
liability
Summarizing planned and faced risks, effectiveness of mitigation activities, and effort
spent for the risk management.
Process:
Department:
ISO Clause:
Corrective Action:
References:
Target Close-Out Date:
Prepared by: Date:
Approved by: Date:
Preventive Action :
References:
Target Close-Out Date:
Prepared by: Date:
Approved by: Date:
Close-Out Date:
FORM-002: CORRECTIVE ACTION REPORT
CAR No. : __________________
PROCESS: DEPARTMENT/SECTION:
DETAILS OF NON-CONFORMANCE:
REFERENCES:
PROCESS: DEPARTMENT:
REFERENCES/JUSTIFICATIONS:
Evaluation Results:
Evaluation Results: