SQA
SQA
SQA
What is SW?
Software is:
Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system.
(bugs) Often new demanding functionality has to be realized Often software has to realize extraordinary high complexity
Product visibility
-Software products are invisible
instructions Shortcomings of the testing process User Interface and procedure errors Documentation errors
6
document Miscommunications during client-developer meetings Misinterpretation of the clients requirement changes
projects without sufficient analysis of the changes needed to fulfill the requirements Due to time/money pressures, the developer leaves parts of the required functions in an attempt to manage the pressure The developer makes unapproved improvements to the software without the clients knowledge
of erroneous algorithms Process definitions contain sequencing errors Erroneous definition of boundary conditions Omission of definitions concerning special cases (lack of error handling and special state handling)
10
Coding errors
Misunderstanding of the design documents,
11
standards makes it harder to understand, review, test and maintain the software
12
and uncorrected Incomplete test plans will leave many of the functions and states untested Failures to report and promptly correct found errors and faults Incomplete test due to time pressures
13
and failure of communication with potential users on the details of planned solution and the steps required to perform the application as in SW systems processing is conducted in several steps
14
Documentation errors
Omission of software functions Errors in explanations and instructions List of non-existing SW functions that were
planned in early development stage but later dropped and the inclusion of SW functions which were dropped in the early stages have been included in the later stages Incorrect phrasing, negligence, incorrect versions
15
What is quality?
Quality, simplistically, means that a product should
There is a tension between customer quality requirements (efficiency, reliability, etc.) and developer quality requirements (maintainability, reusability, etc.); Some quality requirements are difficult to specify in an unambiguous way; Software specifications are usually incomplete and often inconsistent.
16
process meets specified requirements. The degree to which a system, component, or process meets customer or user needs or expectations.
17
Software Quality-Pressman2004
Conformance to explicitly stated functional
and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software
18
Software Quality-Glass1992
the degree of excellence of something. We
19
actions necessary to provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines
--Daniel Galin
20
of activities designed to evaluate the quality of a developed or manufactured product (IEEE 1991). With holding of any product not qualifying
21
21
(product oriented)
22
Ishikawa
6 Features of quality work
Quality Policy
Company wide quality control Top management quality control audit Education and training Quality circles Application of statistical methods Nationwide quality control promotion (eg Japan)
A work is guided by quality policies. Must formulate quality requirements for projects. Use quality plans for projects. A quality manual is used to define a quality management system to implement quality policy
23
Juran
Strategy for achieving quality: Structured annual improvements in quality Massive quality-oriented training program Upper management must lead quality program Structured annual improvements in quality
Study symptoms of defects and failures Develop a theory on the causes of the symptoms Test the theory until the cause is known Stimulate remedial action by appropriate action.
Juran
Universal sequence of events for improving quality and reducing quality-related costs (creation of beneficial change) Universal feedback loop (prevention & adverse change) Fundamentals of data collection and analysis
25
Demming
14 points
Create constancy of purpose towards improvement of product and service Adopt the new philosophy Cease dependence on inspection to achieve quality build quality in, in the first place End the practice of awarding business on the basis of price tag - get single supplier for any one item. Instead minimize total cost Improve constantly and forever the system of production and service to improve quality and productivity - this constantly decreases costs
26
Demming
14 points
Institute training on the job Institute leadership. The aim of supervision is to help people to do a better job Drive out fear, so everyone may work effectively for the company Break down the barriers between departments - work in teams Eliminate slogans, and targets for the workforce asking for zero-defects and new levels of productivity. They create adversarial relationships. The bulk of the causes of low quality and low productivity belong to the system
27
Demming (cont)
Eliminate work standards and management by objectives - substitute leadership Remove barriers that rob workers/managers of the right to pride of workmanship - abolish annual merit rating Institute a vigorous program of education and self improvement Put everybody in the company to work to accomplish the transformation - the transformation is everybody's job
28
Demming Cycle
A common approach to managing problems. 5 Step Repetitive Cycle:
1. 2. 3. 4. 5. Plan Do Check Analyse Act
Quality Software
The International standard for Software Product Evaluation :
ISO-9126 released in 1991 lists six key factors that are important in the production of quality software. They are:
30
Key Ideas
Process
an organisation
quality
32
Quality Factors
The reality of issues related to the various
attributes of software and its use and maintenance are classified into content groups called quality factors
33
requirements Classification of requirements into software quality factors Product operation factors Product revision factors Product transition factors Alternative models of software quality factors Who is interested in defining quality requirements? Software compliance with quality factors
34
The output mission (e.g. red alarms when temperature rises to 100 C) Required accuracy of the output (e.g. non-accurate output will not exceed 1%) Completeness of the output info (e.g. probability of missing data less than 1%) The up-to-dateness of the info (e.g. it will take no more than 1s for the information to be updated) The availability of the info (e.g. reaction time for queries will be less than 2s on average) The required standards and guidelines (the software and its docs must comply with the clients guidelines)
37
the maximum allowed software system failure rate Can focus on entire system or just on a separate function E.g. a heart-monitors failure rate must be less than 1:20 years
38
Integrity:
-Requirements to prevent access to unauthorized persons -Rights management (e.g. limit the write permit to key personnel)
39
with the scope of staff resources needed to train a new employee and to operate the software system E.g. training of a new employee to operate the system will take no more than 2 working days (16h)
40
the effort needed to identify the causes for software failures, to correct them, and to verify the success of the corrections Refers to the modular structure of the software as well as to the manuals and documentations
41
Testability requirements include automatic diagnostics checks and log files, etc. E.g. a standard test must be run every morning before the production begins
42
Reusability:
- Mostly the developer himself will initiate the reusability requirement by recognizing the potential benefit of a reuse - Its expected to save development resources, shorten the development time and provide higher quality modules
43
on developing interfaces with other software systems or with other equipment firmwares E.g a laboratory equipment is required to process its results (output) according to a standard data structure, which the laboratory information system can then use as an input
44
Additional factors
No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + +
45
45
46
47
48
49
50
Schedule Required manpower and hardware resources Risk evaluation Organization issues
53
Quality goals in measurable terms Criteria for starting and ending each project stage List of reviews, tests, and other scheduled V&V activities
54
55
56
56
57
57
Utilization of international professional knowledge Improvement of coordination with other organizations quality systems Objective professional evaluation and measurement of the organizations SQA achievement
58
59
This stage reviews the contract draft on the basis of the proposal and the understandings reached during the subsequent negotiations.
60
following activities have been completed satisfactorily: Customer requirements have been clarified and documented. Alternatives for carrying out the project have been examined. A formal aspects relationship with the customer has been defined.
Development risks have been identified. Resources and schedules for the project have been adequately estimated. Examine the companys capacity to perform the project. Examine the customers capacity to fulfill his commitments. Definition of partner and subcontractor participation. Definition and protection of Proprietary rights.
61
No un-clarified issues remain in the contract draft. All understandings subsequent to the proposal are correctly documented. No changes, additions, or omissions are to be found.
62
Implementation of Contract Review - Identify the factors that affect the extent of the contract review
The efforts to be expended on the contract review
depend on the characteristics of the project. The most important factors are the project:
magnitude Complexity the staffs acquaintance with and experience in the project area, and the number of additional organizations carrying out the project (partners, subcontractors, and the customer).
63
Pressures of the time Need to invest substantial professional working hours when the contract review them members is already occupied by other commitments.
64
preparation schedule. The contract review should be carried out by a team. A contract review leader should be appointed.
65
the internal customer and the internal developer increase the probability of project failure. This trend can be reduced by adequate procedures that will define the preparation and by applying the same guidelines used for external project contract review.
66
for: Scheduling development activities. Recruiting team members and allocating development risks. Resoling development risks. Implementing required SQA activates. Providing management with needed date for project control.
67
68
Project products
The development plan includes the following products: Design documents specifying dates of completion, indicating those items to be delivered to the customer (deliverables) Software products (specifying completion date and installation site) Training tasks (specifying dates, participants and sites.)
69
Project interfaces
Project interfaces include: Interfaces with existing software packages
(software interface) Interfaces with other software and/or hardware development teams that are working on the same system or project (i.e., cooperation and coordination links). Interfaces with existing hardware (hardware interface).
70
Project methodology and development tools to be applied at each phase of the project.
71
72
REVIEWS
73
Reviews in SQA
Sometimes called Formal Technical Review
(FTR), Formal Design Review, Inspection, Walkthrough, Peer Review, etc. Originally developed by Michael Fagan in the 1970s (IBM) Meeting technique: based on teamwork The goal is to find errors from basically any written document (specification, code, etc.)
74
Goals of reviews
Basic idea is to remove the errors in the early part of
the project Project is divided into intermediate stages/phases (makes the progression of the project more visible) Some basic objectives:
Uncover errors in functions, logic or implementation To verify that the document (software code, specification, etc.) meets its requirements To ensure that the software has been represented according to the predefined standards To make projects more manageable
75
Objectives of reviews
Direct objectives
a. To detect analysis and design errors as well as subjects where corrections, changes and completions are required b.To identify new risks likely to affect the project. c.To locate deviations from templates, style procedures and conventions. d. To approve the analysis or design product. Approval allows the team to continue on to the next development phase.
76
Objectives of reviews
Indirect objectives
a. To provide an informal meeting place for exchange of professional knowledge about methods, tools and techniques. b. To record analysis and design errors that will serve as a basis for future corrective actions.
77
Types of Reviews
Formal design reviews (FDRs) Peer reviews (inspections and walkthroughs) Expert opinions
78
79
82
83
84
Prepare the review report, including the action items Establish follow-up to ensure the satisfactory performance of all action items
13.
87
detected defects Report with identification of defects with any action suggested Report with identification of action items but without no follow-up member
89
be reasonable (not too much material) No unfinished material Participants must have enough time to get to know the material beforehand The amount of participants must be kept as low as possible (no unnecessary people)
90
moderator/review leader, secretary/recorder. Focus is on finding the problems rather than solving them Review the product, not the producer. Limit the amount of debate The more new errors found the more successful the meeting is
91
necessary) Reject the product (severe errors) Accept the product provisionally (small errors, new meeting not necessary) All the findings and conclusions are noted to the record (important)
92
Reviews: pros/cons
Most of the errors are found early in the
project (saves money) Producer has a better understanding of the correctness of his work. All the problems arent found just by testing: errors in phase products, style errors, unnecessary code, etc. Problems: causes extra work in the early stages of the project, organizing the inspection might be problematic, attitudes, unprepareness to the meeting
93
94
Walkthroughs
Just focus on errors of
Checklists Defect type frequency table Review for artifact errors Look at development methods Comprehensive Infrastructure Periodic analysis Schedule analysis
95
Peer Reviews
Participants Prep Session Post-review tasks Efficiency Coverage
96
Walkthrus
professionals:
professionals:
Standards enforcer Maintenance expert User representative
97
Chief software engineer or senior staff member Top-level staff and customer representatives Yes
Coordinator (peer, the project leader on occasion) Peers Yes; usually as the reviews initiator
Peers Yes
(1) Designer (1) Standards enforcer (2) Coder or implementer (2) Maintenance expert (3) Tester (3) User representative
98
Properties Overview meeting Participants preparations Review session Follow-up of corrections Formal training of participants Participants use of checklists Error-related data collection
Review documentation Formal design review 1) Inspection session report findings report 2) Inspection session summary report
99
Insufficient in-house professional capabilities in a specialized area. Temporary lack of in-house professionals for review team. Indecisiveness caused by major disagreements among the organizations senior professionals. In small organizations, where the number of suitable candidates for a review team is insufficient.
100
Software Testing
101
Testing that ignores the internal mechanism of the system or component and focuses solely on the outputs in response to selected inputs and execution conditions
2.
Testing conducted to evaluate the compliance of a system or component with specified functional requirements
102
Software testing is a formal process carried out by a specialized testing team in which a software unit, several integrated software units or an entire software package are examined by running the programs on a computer. All the associated tests are performed according to approved test procedures on approved test cases.
103
Direct objectives a. To identify and reveal as many errors as possible in the tested software b. To bring the tested software, after correction of the identified errors and retesting, to an acceptable level of quality c. To perform the required tests efficiently and effectively, within the limits budgetary and scheduling limitation. Indirect objectives a. To compile a record of software errors for use in error prevention (by corrective and preventive actions)
104
Incremental testing
strategies:
105
Stage 4
Integration B
Stage 3
Stage 2
M8
Stage 1
M1
M2
M3
M4
M5
M6
M7
106
Integration A
M11 M10
M9
M6
M7
M3
M4
M5
107
M9
Drive of M9 M8 M1
Module on test Modules tested in an earlier stage
108
M8 Stub of M1
Stub of M2
M2
tested in isolation from other module and then each modules are combined all at a once and tested
109
2.
Testing that ignores the internal mechanism of the system or component and focuses solely on the outputs in response to selected inputs and execution conditions Testing conducted to evaluate the compliance of a system or component with specified functional requirements Testing that takes into account the internal mechanism of a system or component
110
White-box
Black-box
111
White-box
Black-box
112
White-box
Black-box
113
Data Processing & calculation correctness Software Qualification Maintenance Reusability testing
114
Line coverage
Line coverage of a test is measured by the percentage of
115
10
12
Yes
No 14 Night journey?
13
No 16
116
17 Print receipt.
R1 R2 R3
R6
R4
15 17
R5
R1 R2 R3
R6
R4 15
17
R5
Differences in coverage
Path coverage
Simple module required 24 tests to cover all paths
119
coverage
Draw program flow graph Independent path = Any path on the flow graph that includes at
least one edge that is not included in any former independent path.
120
Also, area around the graph is a region E no. of edges in the graph N no. of nodes in the graph P no. of decisions in the graph (nodes with more than one leaving edge
121
R1 R2 R3
R6
R4
15 17
R5
so that all the program statements are executed at least once. Decision coverage (branch coverage): The test cases are generated so that the program decisions take the value true or false. Condition coverage: The test cases are generated so that all the program conditions (predicates) that form the logical expression of the decision take the value true or false. Path coverage: Test cases are generated to execute all/some program paths.
123
Determining the test methodology Planning the tests Designing the tests Performing the tests (implementation)
125
1. 2. 3. 4. 5. 6. 7. 8.
Endangers the safety of human beings Affects an essential organizational function with no system replacement capability available Affects functioning of firmware, causing malfunction of an entire system Affects an essential organizational function but a replacement is available Affects proper functioning of software packages for business applications Affects proper functioning of software packages for a private customer Affects functioning of a firmware application but without affecting the entire system. Inconveniences the user but does not prevent accomplishment of the systems capabilities
126
1. Financial losses * Damages paid for physical injuries * Damages paid to organizations for malfunctioning of software * Purchase cost reimbursed to customers * High maintenance expanses for repair of failed systems 2. Non-quantitative damages * Expected to affect future sales * Substantially reduced current sales
127
Determining the test methodology Planning the tests Designing the tests Performing the tests (implementation)
128
Determining the test methodology Planning the tests Designing the tests Performing the tests (implementation)
129
1. 2. 3. 4. 5.
What to test ? Which sources to use for test cases ? Who is to perform the test ? Where to perform the test ? When to terminat the test ?
130
Module/application issues
1. 2. 3. Magnitude Complexity and difficulty Percentage of original software (vs. percentage of reused software) Professional qualifications Experience with the module's specific subject matter. Availability of professional support (backup of knowledgeable and experience). Acquaintance with the programmer and the ability to evaluate his/her capabilities.
131
Programmer issues
4. 5. 6. 7.
1. 2. 3. 4. 5.
What to test ? Which sources to use for test cases ? Who is to perform the test ? Where to perform the test ? When to terminate the test ?
132
1
1.1 1.2
2
2.1 2.2 2.3 2.4 2.5
Testing environment
Sites Required hardware and firmware configuration Participating organizations Manpower requirements Preparation and training required of the test team
133
Test identification Test objective Cross-reference to the relevant design document and the requirement document Test class Test level (unit, integration or system tests) Test case requirements Special requirements (e.g., measurements of response times, security requirements) Data to be recorded
4
4.1 4.2 4.3 4.4
Test schedule (for each test or test group) including time estimates for:
Preparation Testing Error correction Regression tests
134
Determining the test methodology Planning the tests Designing the tests Performing the tests (implementation)
135
1 Scope of the tests 1.1 The software package to be tested (name, version and revision) 1.2 The documents providing the basis for the designed tests (name and version for each document) 2 Test environment (for each test) 2.1 Test identification (the test details are documented in the STP) 2.2 Detailed description of the operating system and hardware configuration and the required switch settings for the tests 2.3 Instructions for software loading 3. Testing process 3.1 Instructions for input, detailing every step of the input process 3.2 Data to be recorded during the tests 4. Test cases (for each case) 4.1 Test case identification details 4.2 Input data and system settings 4.3 Expected intermediate results (if applicable) 4.4 Expected results (numerical, message, activation of equipment, etc.) 5. Actions to be taken in case of program failure/cessation 6. Procedures to be applied according to the test results summary
136
Mapping of the development process involves providing detailed definitions of each of the projects phases. These descriptions include definitions of inputs outputs, and the specific activates planned . Activity descriptions include: An estimate of the activitys duration. These estimates are highly dependent on the experience gained in previous projects. The logical sequence in which each activity is to be performed , including description of each activitys dependence on previously completed activates . The type of professional resources required and estimates of how much of these resources are necessary for each activity. Several methods are available for scheduling and graphically presenting the development process. One of the most commonly used methods is .
137
Project milestones.
For each milestone, its completion time and project products (documents and code) are to be defined.
138
The organization plan comprises: Organizational structure: definition of project teams and their tasks, including teams comprised of a subcontractors temporary workers. Professional requirements: professional certification, experience in a specific programming language or development tool, experience with a specific software product and type , and so forth. Number of team members required for each period of time, according to a scheduled . It is expected that teams will commence their activities at different times and that their team size may very form one period to the next , depending on the planned activates. Names of team leaders and team members. Difficulties are expected to arise with respect to the long term assignment of staff members to teams because of unanticipated changes in their current assignments. Therefore, the names of staff are required to help keep track of their participation as team members. Coordination with external participants: subcontractors, partners and customers departments that participate in the project (see Chapter 12).
139
Development facilities.
Required development facilities include
hardware , software and hardware development tools , office space, and other items. For each facility, the period required for its use should be indicated on the timetable.
140
Development risks.
Development risks are inherent in any project. To understand their pervasiveness, and how they can be controlled, we should first define the concept. A development risk is a state of property of a development task or averment, which, if ignored, will increase the likelihood of project failure. Typical development risk are: Technological gaps-Lack of adequate and sufficient professional knowledge and experience to carry out the demands of the development contract. Staff shortages-Unanticipated shortfalls of professional staff. Interdependence of organizational elements-The likelihood that suppliers of specialized hardware or software subcontractors for example, will not fulfill their obligations on scheduled.
141
Control methods.
In order to control project implementation , the project manager and the department management apply a series of monitoring practices when preparing progress report and coordination meetings. A comprehensive discussion of project control methods is found in Chapter 19.
142
143
144
145
include:
preparation of development and quality plans is optional However, one should consider the substantial advantages obtained by the plans developer The main advantages of plan preparation are improvements in the developers The understanding of the task greater commitment to complete the project as planned the plan documents contribute to a better understanding between the developer and the customer easier and more effective project control.
147
It is recommended that internal projects, undertaken on behalf of other departments and for development of software packages geared toward the market , be treated as regulate projects . This implies that full-scale development and quality plans are to be prepared. Their benefits include:
a)
b)
c)
The development department will avoid losses incurred by unrealistic timetables and budgets, as well as the consequent damage to other projects and to the firm's reputation. The internal customer will enjoy reduced risk of late completion and budget overruns in addition to and by improved project control and coordination with the developer. The firm will enjoy reduced risk of its software products late entry into the market, reduced risk of a decline in its reputation resulting form late supply, and reduced risk of budget overruns.
148
Measuring Quality?
Users view:
Reliability (number of failures over time) Availability Usability etc. Often directly measurable
Manufacturers view:
149
Reliability
Reliability is the probability of a component, or system,
functioning correctly over a given period of time under a given set of operating conditions. Quantitative: Reliability R(t) is the probability that the system will conform to its specification throughout a period of duration t. Note that it is important If a system only needs to operate for ten hours at a time, then that is the reliability target
150
Availability
The availability of a system is the probability
that the system will be functioning correctly at any given time. Quantitative:
Availability A (or V) is the percentage of time for which the system will conform to its specification.
151
Safety
Safety is a property of a system that it will not
152
Maintainability
Maintenance is the action taken to retain a
system in, or return a system to, its designed operating conditions. Maintainability is the ability of a system to be maintained (ability to undergo repairs and modifications).
153
Completeness is hard to achieve (complexity) Design: design for reliability only in special cases design for manufacturability is not required design for maintainability in special cases Focal area of software quality assurance! Manufacturing Implementation: limited success with statistical process control (metrics) Operation: Fixing found bugs
154
155
development, management, maintenance, marketing, and service of software products third-party participants who may be involved
156
performs these specified functions correctly over repeated use or over a long period of time
For many users ease of use, or usability, graphical user interfaces (GUI), command interpreters often used in mainframes is primarily driven by the usability ease of installation - plug-and-play
157
and relevant standards, proper choice of software methodologies, languages, and tools usability and modifiability, maintainability for maintenance profitability and customer value for product marketing.
158
set of functions and their specified properties. The functions are those that satisfy stated or implied needs. Suitability Accuracy Interoperability Security Reliability: A set of attributes that bear on the capability of software to maintain its level of performance under stated conditions for a stated period of time. The Maturity Fault tolerance Recoverability
159
use, and on the individual assessment of such use, by a stated or implied set of users. Understandability Learnability Operability Efficiency: A set of attributes that bear on the relationship between the level of performance of the software and the amount of resources used, under stated conditions. Time behavior Resource behavior
160
to make specified modifications. Analyzability Changeability Stability Testability Portability: A set of attributes that bear on the ability of software to be transferred from one environment to another Adaptability Installability Conformance Replaceability
161
performance, reliability, installation, maintenance, documentation, and service) CUPRIMDS is often used together with overall customer satisfaction (thus the acronym CUPRIMDSO) to characterize and measure software quality for IBMs software products.
162
165
Fault Classification
Nature (Critical distinction):
random/hardware faults logical/systematic/design faults E.g., Degradation (wear-out) vs. design faults
Duration:
Extent:
167
Faulty requirements definition Client-developer communication failures Deliberate deviations from software requirements Logical design errors Coding errors Non-compliance with documentation and coding instructions Shortcomings of the testing process User interface and procedure errors Documentation errors
168
for large, complex systems. The quality documentation is a record of progress and supports continuity of development as the development team changes. For smaller systems, quality management needs less documentation and should focus on establishing a quality culture.
169
170
the focus was on providing the automated functions to replace the focus was on introducing important features and new systhe focus was on reducing the price to stay competitive accompanied by the widespread use of personal computers. the focus was managing users quality expectations under the increased dependency on software and high cost or severe damages associated with software failures.
171
Schedule
Cost
Reliability
and to achieve an acceptable level of software quality Can be divided into to six classes:
Pre-project components Components of project life cycle activities assessment Components of infrastructure error prevention and improvement Components of software quality management Components of standardization, certification, and SQA system assessment Organizing for SQA-the human components
172
Pre-project components
The schedule and budget as well as other
project commitments are adequately planned Must assure that development and quality plans are correctly determined
173
subcontractors and other external participants during development and maintenance phases
174
improve productivity Procedures and work instructions, staff training, configuration management, documentation control, etc. Applied throughout the entire organization
175
maintenance activities and early managerial support (minimize schedule and budget failures) Software quality metrics, quality cost, project progress control, etc.
176
managerial standards within the organization Quality management standards: focuses on what is required in regards of managerial quality system (e.g. ISO 9001, SEI CMM assessment standard) Project process standards: methodological guidelines (how) for the development team (e.g. IEEE 1012, ISO/IEC 12207)
177
personnel, SQA unit, etc. To develop and support the implementation of SQA components To detect deviations from SQA procedures and methodology To suggest improvements to SQA components
178