Fork me on GitHub

Software Quality Assurance

Software Project Management course review - part 3

History


What is quality?

AQL: Acceptable Quality Level

ISO/IEC 8402: “The totality of features and characteristics of a product or service that bear upon its ability to satisfy specified or implied needs”


Levels of quality:

Quality Process -> Quality Product (concept from manufacturing and engineering)

Garvin (1998), Quality: transcendent, user, process, product and value based

Cost versus Quality optimisation: an optimum needs to be established

Software quality characteristics: efficiency, cost, effectiveness, reliability, maintainability, safety, security, usability


Quality as part of software documentation


McCall’s Model


Quality Factor – Relationship (between pairs of quality factors):


CMMI: Capability Maturity Model Integration


Measures for Software Quality:


McCall:

Software metrics: count Lines of code (LOC) or KLOCs (30lines/day developer average)


Code complexity metrics:




Problems with Software metrics:

ISO 9126 defines 6 software quality criteria: functionality, reliability, usability, efficiency, maintainability and portability and sub characteristics.

Reasons to adopt standards: avoid errors, create confidence, increase productivity and product quality, reduce development costs, customers expect it, condition of contract

Standards apply at three levels: Product (code, documents, methodology), Project and Management

Hierrachy of standard makers: International (ISO, IEC), National (BSI, ANSI), Sector Specific (Defense, Nuclear), Proprietary (UML), Organizational (W3C, MS), Project, Personal

ISO 9000: define what you do, document the system, demonstrate that you do what you say you do, demonstrate it to customers through registration (obtain certification)


ISO 9001:


Quality Management:


Quality and Safety critical systems: result in loss or damage to people, assets or equipment. Control system & Protection system

Validation: Concerns the software product, demonstrate that system satisfies user requirements. Assessed using dynamic testing (performance, regression, acceptance, usability, stress, security, recovery, alpha and beta testing)

Verification: Concerns the dev process, ensure component or system conforms to its specification, the output conforms to its inputs

Testing adequacy: complete testing usually impossible. Specify % coverage, testing costs, how to generate test values

Dynamic testing elements: program under test, test case, observation, analysis of results

Generic testing process: Planning, Specification, Execution, Result recording, evaluation

Test plan: for a module, component or system document part of the system being tested, general testing strategy, hardware and software dependencies, date, location, individuals. For each test include what program/module, what level of testing, scenario or test case, how to test (input and output expected), test results (analyse)