Views |
Enterprise:Engineering:SQA[edit] Navigation[edit] Related categories
Automation ·
Configuration and change management ·
Engineering communities ·
Resources ·
Mathematics for engineers ·
[edit] About this pageWe apologize for that little information on this page, which is still under construction. Please stay tuned.
[edit] Quality Management and Quality Assurance practiceOn this page various resources and information of interest on Quality Management can be found, with special emphasis on Software Quality Assurance topics.[edit] OrganizationsThe Quality Assurance Institute was founded in 1980 in the US. Dedicated to improving quality, productivity, and effective solutions for process management in the information services profession. The American Society for Quality Assurance (ASQ) offers technologies, concepts, tools, and training to quality professionals, quality practitioners, and everyday consumers. The Usability Professionals' Association promotes the usability approach in product development. "I Six Sigma" grants Certifications and Awards (Balridge, etc) to individuals and organizations for achievements in Quality Assurance
[edit] Quality Management ResourcesSome general resources for deploying the Quality function in enterprise:
[edit] Software quality assurance resourcesSoftware Quality Assurance (SQA) has many facets, from processes, standards and methodologies to specialized toolsets. SQA involves defect-prevention as well as defect detection and correction and relies of strict configuration management procedures, coding standards, engineering methodologies and validation-verification (V&V) processes. The real problem in the world of SQA is the 'quagmire' of existing methodologies, frameworks, standards, conformance criterias, maturity models, many of them similar in many respects to each other. Due to market pressure, organizations producing or integrating software products tend to see a competitive factor in aligning themselves with a recognized generic- or software- quality-assurance framework. Software Quality Assurance is pervasive and is encompasses all activities related to product development, including Project Management, Requirements Management, Configurations Management and Engineering Practices. For this reason, some large organizations tend to adopt generic process-improvement framework, like ISO 9001:2000, CMMI,RUP or Fujitsu/DMR Macroscope. Other organizations tend to introduce in their processes best practices derived from SQA-specific standards issued by IEEE or ISO. Introducing a Software Quality Assurance framework and formally assessing compliance to it becomes important for organizations offering products or services to the financial sector, due to stringent security requirements. These organizations' products and processes should comply and be formally audited against such criteria as:
Many software organizations have product testing departments which are named "Quality Assurance". In fact, Quality Assurance is much more than testing, it is mainly defect prevention by encompassing all phases and processes in the product life-cycle. Here are a few pointers to general Software Quality Assurance and Software Testing resources.
[edit] SQA OrganizationsHere are a few pointers to organizations and interest groups dedicated to software quality assurance:
[edit] Recommended SQA PracticesAny organization that feels the need to introduce or improve its software quality-assurance practice should tailor it for its own reality. It is not a very good idea to implement a SQA "recipe" that was maybe a success story for other organization. Instead, once the basic principles are well understood, the implementation should start with those factors that would bring maximum business benefit at lowest cost.References:
[edit] Managing Defects in SoftwareBeside trying to prevent and detect as many as possible defects, managing the metrics related to defect type and density is useful for the control and continuous improvement of SQA processes. Software organizations have noticed that the type and density of defects being found in each phase of a product lifecycle should follow some patterns if the SQA processes are under control. Any anomaly relative to these expected defect patterns represent a signal that preventive and corrective measures are needed to bring back under control the deviant processes. Both the IBM-proprietary Orthogonal Defect Classification (ODC) methodology and the ISO/IEC 9126 standard take this approach. Large software-intensive organizations (e.g. IBM or Motorola) use the defect-type-density measures for controlling the SQA processes.References on Orthogonal Defect Classification (ODC) and ISO/IEC 9126:
[edit] Bug- and Issue-Tracking toolsAmong the many free and commercial bug-tracking tools, Bugzilla and Mantis are the most popular in the open-source category. However, the selection of a particular bug-tracking toolset is a matter of correcting evaluationg the organization's needs, including integration within the already existing systems. Many organizations have ditched commercial toolsets (ClearCase/ClearQuest, Microsoft VSS or Merant PVCS/Tracker) in favor of open-source solutions, much easier to integrate within reasonable budgets and time-frames.References:
[edit] Software Quality & Engineering standardsThere are many process-improvement and quality frameworks, some of them pertaining more to the IT management practice than to the Software Quality Engineering. Other standards, e,g, the ANSI/IEEE ones address specific SQA practices like documentation, unit-testing, verification and validation or code inspections.Specific Software engineering standards are focused on specific areas of the practice:
References on Software Quality Frameworks:
[edit] Cleanroom Software EngineeringThe Cleanroom Software Engineering, both an engineering methodology and management process, aims at delivering zero-defect, certified reliability products through:
[edit] ISO/IEC 12207The ISO/IEC 12207 standard aims at implementing the Total Quality Management principles in Software Engineering practice. To this avail, the standard establishes a top-level architecture for the Software Life Cycle, based on a interdependent processes.
The ISO/IEC 12220 series provides detailed guidelined on the supporting processes of ISO/IEC 12207
[edit] ISO/IEC 14764ISO/IEC 14764 Software Engineering Software Life Cycle Processes Maintenance covers the software-product maintenance domain, which is different from both operations and development domains. Maintaining ab organization's software portfolio requires a specific management system satisfying the customers' service criteria while maximizing the economic benefits. The Software Life Cycle begins with development and continues with maintenance and operation, one key characteristic of maintenance deliverable being the extremely short time-to-delivery, as it is usually the case with dealing with support tickets. While ISO/IEC 12207 covers the development process (including of new releases), ISO/IEC 14764 and IEEE STD 1219 covers the maintenance of a software product after delivery, mainly the necessary processes and activities to efficiently correct issues customer-reported issues.References:
[edit] ISO/IEC 15504The ISO/IEC 15504 standard, known as SPICE (Software Process Improvement and Capability Determination) is a "framework for the assessment of software processes", derived from ISO 12207 and using many of the CMMI concepts. The standard does not define a methodology, instead provides a set of auditable processes and activities as gudelines for areas to be assessed in order to determine an organisation's capabilities for delivering software.References:
[edit] ISO/IEC 15939The ISO/IEC 15939, "Software Engineering - Software Measurement Process", was developed based on the Practical Software Measurement (PSM) guidelines pioneered by the US DoD. However, compared to ISO/IEC 15939, the PSM provides much additional details on the processes presented in the standard, including detailed steps and guidance on how to meet these processes' requirements. The guidance provided by PSM is very detailed, including sample measures, lessons learned, case studies, and implementation guidance. The PSM and the ISO/IEC 15939 standard were used as input for the Measurement and Analysis (MA) process area of the CMMI and the Software Engineering Measurement and Analysis (SEMA) initiative.[edit] ANSI/IEEE SESC SQA standardsThe following ANSI/IEEE standards cover the process areas involved in the development phase of the Software Life Cycle:
[edit] Code Review and InspectionsInspecting delivered artifacts in all phases of the development cycle is essential for minimizing the number of issues (and hence the maintenance costs) once the products are shipped in the field. The areas targeted of inspections vary and comply to generic requirements (e.g. security, requirements tracing) or specific (e.g compliance to coding standards or testing requirements). The success of the code-review practice is conditioned by the implementation of sound inspection practices for requirements and design documentation. One example of code-review topic to look at is the presence of diagnostic hooks and logging that would allow for efficient troubleshooting of issues by support personnel. Another example would be to inspect for adherence to a set of secure-coding practices, as required by the Common Criteria for product compliance to an Evaluation Assurance Level. Manual code-reviews are notoriously slow, error-prone and resource-intensive and, for this reason, a few improved, semi-automated practices emerged:
Code Review references :
Software "cyclomatic complexity" metrics :
Code Review and SQA Process Support tools :
[edit] Software quality assurance articlesA few interesting articles on Software Quality ASsurance, touching many topics of the domain:
[edit] Software TestingBeside the measures meant to prevent defects in software, by carefuly following a ser of best practices during the development phase, the testing processes are essential for minimizing the number and impact of undetected defects in shipped software.[edit] Testing Practices and resources
[edit] Risk-based testingPareto's 80-20 principle states that as much as 80% of the consequences can be traced back to only 20% of the causes. Pareto stated his principle though in an economic context, observing the economic disparities, more precisely observing than 80% of the wealth is owned by 20% of the population. Dr. Joseph Juran, working in the US in the 1930s and 40s stated this universal principle, as the "vital few and trivial many" and naming it "Pareto's principle". Pareto's Principle, serves as a reminder to focus 80 percent of time and energy on 20 percent of work that is really important, i.e. "work smart" on the things that matter. The Risk-based testing takes further this principle, defining a methodology of finding the most important defects as early as possible at the lowest price. The Risk-based testing would rely on a risk analysis and on the evaluation of business impacts defects may have, based on the framework defined in ISO/IEC 9126.References:
[edit] Test Maturity Model (TMM)
[edit] Software Test automation
[edit] Embedded Software Quality AssuranceEmbedded software drives many mission-critical systems (e.g. telephony switches, car brake-systems or even fighter jets) and, for this reason, the quality assurance practice is of paramount importance.References:
[edit] ISO/IEC 10303 (STEP) and Model-based design validation & verificationThe standard ISO 10303, named STEP (Standard for the Exchange of Product Model Data), describes how to represent and exchange digitally the product design and manufacturing information. It is divided in several parts and is widely used in the industry for realizing Integrating manufacturing systems. Having a standard representation of product model data enables the automated model verification.References:
|
| This page was last modified 01:04, 15 March 2008. |