SYSTEM/SOFTWARE QUALITY AND QUALITY ASSURANCE
Exercise: What is quality, quality assurance
Quality in the project manager’s triangle
Quality is free, cost of poor quality
What we, others mean by quality
Need for positive common quality definition
Quality factors and quality dimensions
Engineered Deliverable Quality
Quality assurance vs. quality control
SQA in IEEE Stds. 12207 and 730
Proactive SQA changes in IEEE Std. 730
Not just ‘traffic cop’ compliance
SYSTEM/SOFTWARE PROCESSES
REAL vs. Presumed processes, silos
Exercise: Your software process
Defect injection, detection, ejection metrics
Economics of quality problems in life cycle
Making the business case for SQA
Life cycle concepts, waterfall vs. iterative
Process capability, variation, improvement
Project, process, product measures
Direct and indirect process evaluation
SEI Process Capability Maturity Models
QUALITY ASSURANCE CONCEPTS
Exercise: Why SQA groups so often fail
SQA groups’ changes over time
Common SQA interpretations, issues
Quality control (QC) testing
‘QA Test’
Document and procedure compliance
‘QA Reviews’ and toll gates
Standards and procedures manuals
Staffing and organizational influence
Reasons for resistance to SQA
SQA needs broader view of quality
Proactive SQA™ for effectiveness
Assuring processes vs. doing it all
6 functions of effective software QA
QA Plans, quality reviews of deliverables
Exercise: Managing SQA tasks, resources
Engineering standards, conventions
Quality controls at all key points
Project control
Configuration management, checkpoints
Recordkeeping and auditing
Metrics and analysis for improvement
Exercise: Key product and process metrics
Promoting awareness and recognition
ACTIVE STATIC TESTING
Role of requirements in producing quality
Exercise: ‘Established Requirements’ issues
Exercise: Reviewing Requirements
Unrecognized weaknesses of “Regular Way”
Why review of requirements fails
Formal technical reviews, procedures
Review approaches, formality
Often overlooked walkthrough limitations
Why reviews so economically find defects
Foundation technique, topic guidelines
Evaluating requirements form, testability
REAL, business vs. system requirements
Finding overlooked, incorrect requirements
Reviewing design suitability and content
Four powerful design review CAT-Scans
Exercise: Reviews and Software Process QA
HOW TESTING CAN CUT EFFORT & TIME
Testing for correctness vs. testing for errors
Developer views of testing
Reactive testing—out of time, but not tests
Proactive Testing Life Cycle model
CAT-Scan Approach to find more errors
Dynamic, passive and active static testing
V-model and objectives of each test level
Developer vs. independent test group testing
Strategy—create fewer errors, catch more
Four keys to effective testing
Need for testing sampling
Written vs. not written benefits and issues
Test activities that save the developer’s time
The “we don’t have time” fallacy
TEST PLANNING VALUE NOT BUSYWORK
Risk elements, relation to testing
Proactive vs. reactive risk analysis
IEEE Standard for Test Documentation
Benefits of the structure
Enabling manageability, reuse, selectivity
Test plans vs. test designs, cases, procedures
Exercise: Anticipating showstoppers
Risk-based way to define test units
Letting testing drive development
Preventing major cause of overruns
Master Test Plan counterpart to project plan
Approach, use of automated tools
Entry/exit criteria, anticipating change
DETAILED TEST PLANNING
IEEE Standard on Unit Testing
Functional (Black Box) testing strategy
3-level top-down test planning and design
Exercise: Functionality matrix
Detailed Test Plan technical document
White box structural testing coverage
Use cases, revealing overlooked conditions
Exercise: Defining use case test coverage
INTEGRATION/SYSTEM TEST PLANNING
Graphical technique to simplify integrations
Integration test plans prevent schedule slips
Smoke tests; system and special testing
Daily, top- and bottom-down builds strategy
DESIGNING AND WRITING TEST CASES
Exercise: Your challenges and issues
Exercise: Disciplined brainstorming
Checklists find more overlooked conditions
Data formats, data and process models
Business rules, decision tables and trees
Equivalence classes and boundary values
Formal, informal Test Design Specifications
Leveraging reusable test designs
Test Case Specifications vs. test data values
Writing test cases, script/matrix
Embedding keystroke-level procedural detail
Exploratory testing applied most effectively
MEASURING AND MANAGING TESTING
Estimating
Defect isolation
Defect reporting, categories and analysis
Defect reports that prompt suitable action
Exercise: Measures for managing testing
Common measures of test status, issues
Exercise: Test status report audiences
Projecting when software is good enough
Exercise: Measuring testing effectiveness
Exercise: Post-Implementation Review