Asigurarea calității a fost un obiectiv subânțeles în lumea programatorilor datorită:
- mândriei;
- erorilor;
- duratelor;
- renumelui;
- depanării;
- zvonurilor;
- efectelor;
- termenelor;
- admirației.
Orice programator se asigura că știe destul de bine să scrie programe pentru că și atunci ca și acum se punea problema traversării etapelor de realizare de la analiză, la scriere de text sursă, la testare, la implementare și la utilizare, această ultimă etapă revenea în peste 80% tot ptogrematorului, beneficiarul fiind cel care aducea cu tiile cu cartele de date.
Nu exista în legătură cu asigurarea calității ceea ce există acum, mai ales că perfecționarea programatorilor nu presupunea certificări și meseria nu se învăța, se fura. Asigurarea calității o făceau șefii de sectoare din centrele de calcul, prin distribuirea de sarcini acelor programatori despre care ei aveau certitudinea că scriu bine programe. Pe ceilalți îi arondau unor echipe la și alții. Programatorii de elită asigurau calitatea studiind variante de soluții și alegând una dintre ele, pe care o considerau cea mai potrivită.
Ei scriau pe hârtie formule, făceau diagrame, făceau calcule, schițau liste de parametrii. Când se apucau de scris programe știau cu excatitate ce scriu, căci foile de programare nu se șterg așa cum se șterg liniile de text sursă de pe monitor, când procesorul de texte suportă orice. Existența schemelor logice de detaliu arată că programatorul are o imagine completă asupra a ceea ce are de făcut. Numai faptul că etichetele în programele FORTRAN erau termenii unei progresii aritmetice cu primul termen 10 și cu rație, de asemenea, 10, spune foarte multe.
Asigurarea calității era realizată prin testul de birou, în care programatorul verifica bloc cu bloc schema logică, după care verifica existența concordanței dintre blocuri și instrucțiunile din program. În acele vremuri nu existau metrici, nici indicatori, numai că se știau:
- numărul de linii sursă al programului;
- numărul de erori de compilare la fiecare rulare;
- numărul erorilor de execuție;
- instrucțiunile de scriere rezultate intermediare;
- urma programului solicitată sau generată;
- raportarea în raport cu termenul de predare;
- analiza rezultatului predării programului.
Acum asigurarea calității produselor software este capitol de Software engineering și există cărți despre așa ceva. Una dintre ele este Software Quality Assurance a lui Daniel GALIN, apărută în anul 2004 în Editura Edisson Wesley, new York, de 587 de pagini,
Al cărui cuprins îl redau aici:
Contents
Preface xvii
Unique features of this text xviii
The book’s audience xix Acknowledgements xx
Publisher’s acknowledgements xxi
About the author xxii
Guides for special groups of readers xxiii
Guide to readers interested in ISO 9000-3 requirements xxiii
Guide to readers interested in ASQ’S CSQE body of knowledge xxiv
Part I Introduction 1
Chapter 1 The software quality challenge 3
1.1 The uniqueness of software quality assurance 4
1.2 The environments for which SQA methods are developed 7
Summary 11
Review questions
12 Topics for discussion 12
Chapter 2
What is software quality? 14
2.1 What is software? 15
2.2 Software errors, faults and failures 16
2.3 Classification of the causes of software errors 19
2.4 Software quality – definition 24
2.5 Software quality assurance – definition and objectives 25
2.6 Software quality assurance and software engineering 30
Summary 30
Selected bibliography 32
Review questions 32
Topics for discussion 33
Chapter 3
Software quality factors 35
3.1 The need for comprehensive software quality requirements 36
3.2 Classifications of software requirements into software quality factors 37
3.3 Product operation software quality factors 38
3.4 Product revision software quality factors 41
3.5 Product transition software quality factors 43
3.6 Alternative models of software quality factors 44
3.7 Who is interested in the definition of quality requirements? 47
3.8 Software compliance with quality factors 49
Summary 51
Selected bibliography 52
Review questions 52
Topics for discussion 54
Chapter 4
The components of the software quality assurance system – overview 56
4.1 The SQA system – an SQA architecture 57
4.2 Pre-project components 60
4.3 Software project life cycle components 61
4.4 Infrastructure components for error prevention and improvement 65
4.5 Management SQA components 68
4.6 SQA standards, system certification, and assessment components 69
4.7 Organizing for SQA – the human components 70
4.8 Considerations guiding construction of an organization’s SQA system 72
Part II Pre-project software quality components 75
Chapter 5
Contract review 77
5.1 Introduction: the CFV Project completion celebration 78
5.2 The contract review process and its stages 79
5.3 Contract review objectives 80
5.4 Implementation of a contract review 82
5.5 Contract review subjects 85
5.6 Contract reviews for internal projects 85
Contents
Summary 87
Selected bibliography 88
Review questions 89
Topics for discussion 89
Appendix 5A: Proposal draft reviews – subjects checklist 92
Appendix 5B: Contract draft review – subjects checklist 94
Chapter 6
Development and quality plans 95
6.1 Development plan and quality plan objectives 97
6.2 Elements of the development plan 97
6.3 Elements of the quality plan 101
6.4 Development and quality plans for small projects and for internal projects 103
Summary 106
Selected bibliography 108
Review questions 109
Topics for discussion 110
Appendix 6A: Software development risks and software risk management 112
Part III SQA components in the project life cycle 119
Chapter 7
Integrating quality activities in the project life cycle 121
7.1 Classic and other software development methodologies 122
7.2 Factors affecting intensity of quality assurance activities in the development process 131
7.3 Verification, validation and qualification 133
7.4 A model for SQA defect removal effectiveness and cost 135
Summary
143 Selected bibliography 145
Review questions 146
Topics for discussion 147
Chapter 8 Reviews 149
8.1 Review objectives 150
8.2 Formal design reviews (DRs) 152
8.3 Peer reviews 158
8.4 A comparison of the team review methods 168
8.5 Expert opinions
170 Summary 171
Selected bibliography
172 Review questions
172 Topics for discussion
174 Appendix 8A: DR report form 175
Appendix 8B: Inspection session findings report form 176
Appendix 8C: Inspection session summary report 177
Chapter 9 Software testing – strategies 178
9.1 Definition and objectives 180
9.2 Software testing strategies 182
9.3 Software test classifications 187
9.4 White box testing 189
9.5 Black box testing 197
Summary 209
Selected bibliography 211
Review questions 212
Topics for discussion 213
Chapter 10 Software testing – implementation 216
10.1 The testing process 217
10.2 Test case design 232
10.3 Automated testing 235
10.4 Alpha and beta site testing programs 245
Summary 247
Selected bibliography 249
Review questions 250
Topics for discussion 251
Chapter 11 Assuring the quality of software maintenance components 254
11.1 Introduction 255
11.2 The foundations of high quality 257
11.3 Pre-maintenance software quality components 261
11.4 Maintenance software quality assurance tools 264
Summary 273
Selected bibliography 275
Review questions 275
Topics for discussion 277
Chapter 12 Assuring the quality of external participants’ contributions 279
12.1 Introduction: the HealthSoft case 280
12.2 Types of external participants 282
12.3 Risks and benefits of introducing external participants 283
12.4 Assuring quality of external participants’ contributions: objectives 286
12.5 SQA tools for assuring the quality of external participants’ contributions 287
Summary 293
Selected bibliography 295
Review questions 295
Topics for discussion 296
Chapter 13 CASE tools and their effect on software quality 298
13.1 What is a CASE tool? 299
13.2 The contribution of CASE tools to software product quality 302
13.3 The contribution of CASE tools to software maintenance quality 304
13.4 The contribution of CASE tools to improved project management 304
Summary 305
Selected bibliography 306
Review questions 306
Topics for discussion 307
Part IV Software quality infrastructure components 309
Chapter 14 Procedures and workinstructions 311
14.1 The need for procedures and work instructions 312
14.2 Procedures and procedures manuals 313
14.3 Work instructions and work instruction manuals 316
14.4 Procedures and work instructions: preparation, implementation and updating 317
Summary 318
Selected bibliography 319
Review questions 319
Topics for discussion 320
Appendix 14A: Design review procedure 322
Chapter 15 Supporting quality devices 325
15.1 Templates 326
15.2 Checklists 329
Summary 332
Selected bibliography 333
Review questions 333
Topics for discussion 334
Chapter 16 Staff training and certification 335
16.1 Introduction: Surprises for the “3S” development team 336
16.2 The objectives of training and certification 337
16.3 The training and certification process 338
16.4 Determining professional knowledge requirements 338
16.5 Determining training and updating needs 339
16.6 Planning training and updating programs 340
16.7 Defining positions requiring certification 340
16.8 Planning the certification processes 341
16.9 Delivery of training and certification programs 342
16.10 Follow-up subsequent to training and certification 344
Summary 345
Selected bibliography 346
Review questions 347
Topics for discussion 347
Chapter 17 Corrective and preventive actions 349
17.1 Introduction: the “3S” development team revisited 350
17.2 Corrective and preventive actions – definitions 351
17.3 The corrective and preventive actions process 352
17.4 Information collection 353
17.5 Analysis of collected information 354
17.6 Development of solutions and their implementation 356
17.7 Follow-up of activities 359
17.8 Organizing for preventive and corrective actions 360
Summary 361
Selected bibliography 362
Review questions 362
Topics for discussion 363
Chapter 18 Configuration management 365
18.1 Software configuration, its items and its management 367
18.2 Software configuration management – tasks and organization 369
18.3 Software change control 371
18.4 Release of software configuration versions 373
18.5 Provision of SCM information services 380
18.6 Software configuration management audits 380
18.7 Computerized tools for managing software configuration 381
Summary 382
Selected bibliography 383
Review questions 384
Topics for discussion 384
Chapter 19 Documentation control 387
19.1 Introduction: where is the documentation? 388
19.2 Controlled documents and quality records 389
19.3 The controlled documents list 392
19.4 Controlled document preparation 393
19.5 Issues of controlled document approval 393
19.6 Issues of controlled document storage and retrieval 394
Summary 395
Selected bibliography 396
Review questions 397
Topics for discussion 397
Part VManagement components of software quality 399
Chapter 20 Project progress control 401
20.1 The components of project progress control 402
20.2 Progress control of internal projects and external participants. 404
20.3 Implementation of project progress control regimes 405
20.4 Computerized tools for software progress control 406
Summary 408
Selected bibliography 409
Review questions
410 Topic for discussion 411
Chapter 21 Software quality metrics 412
21.1 Objectives of quality measurement 414
21.2 Classification of software quality metrics 415
21.3 Process metrics 416
21.4 Product metrics 420
21.5 Implementation of software quality metrics 427
21.6 Limitations of software metrics 432
Summary 434
Selected bibliography 436
Review questions 438
Topics for discussion 440
Appendix 21A: The function point method 442
Chapter 22 Costs of software quality 449
22.1 Objectives of cost of software quality metrics 450
22.2 The classic model of cost of software quality 451
22.3 An extended model for cost of software quality 455
22.4 Application of a cost of software quality system 458
22.5 Problems in the application of cost of software quality metrics 462
Summary 463
Selected bibliography 465
Review questions 465
Topics for discussion 468
PartVI Standards, certification and assessment 471
Chapter 23 Quality management standards 475
23.1 The scope of quality management standards 476
23.2 ISO 9001 and ISO 9000-3 477
23.3 Certification according to ISO 9000-3 481
23.4 Capability Maturity Models – CMM and CMMI assessment methodology 485
23.5 The Bootstrap methodology 490
23.6 The SPICE project and the ISO/IEC 15504 software process assessment standard 492
Summary 497
Selected bibliography
499 Review questions 500
Topics for discussion 501
Appendix 23A: CMMI process areas 502
Appendix 23B: ISO/IEC 15504 model processes 505
Chapter 24 SQA project process standards – IEEE software engineering standards 507
24.1 Structure and content of IEEE software engineering standards 509
24.2 IEEE/EIA Std 12207 – software life cycle processes 510
24.3 IEEE Std 1012 – verification and validation 514
24.4 IEEE Std 1028 – reviews 519
Summary 521
Selected bibliography
524 Review questions 524
Topics for discussion 525
Appendix 24A: IEEE Software Engineering Standards 526
Appendix 24B: MIL-STD-498: list of Data Item Descriptions (DIDs) 528
Appendix 24C: Task structure for a primary process according to IEEE/EIA Std 12207 – example 528
PartVII Organizing for quality assurance 539
Chapter 25 Management and its role in software quality assurance 543
25.1 Top management’s quality assurance activities 544
25.2 Department management responsibilities for quality assurance 549
25.3 Project management responsibilities for quality assurance 550
Summary 551
Selected bibliography 552
Review questions 553
Topics for discussion 554
Chapter 26 The SQA unit and other actors in the SQA system 555
26.1 The SQA unit 556
26.2 SQA trustees and their tasks 563
26.3 SQA committees and their tasks 563
26.4 SQA forums – tasks and methods of operation 564
Summary 565
Review questions 568
Topics for discussion 568
Epilogue The future ofSQA 570
Facing the future: SQA challenges 571
Facing the future: SQA capabilities 574
Author index 577
Subject index 580
Se observă cu ușurință că pentru a face asigurarea calității și programatorul și analistul și testerul și toți cei ce sunt într-o companie dezvoltatoare de software trebuie să știe:
- ce este aceea calitatea software;
- care sunt caracteristicile de calitate;
- câteva modele sau indicatori de măsurare a carateristicilor;
- cum se culeg datele de intrare în modele și indicatori;
- să folosească niște software care calculează indicatorii;
- să interpreteze rezultatele;
- să corecteze module pentru a le face să fie de calitate.
Între teorie și practică este mare diferență, iar practica este cea care arată dacă se face sau nu asigurarea calității software, căci nu trebuie constatată nici calitatea, nici non-calitatea, ci trebuie făcuți acei pași care să ducă spre texte sursă care să dovedească un nivel de calitate ridicat.
în lucru acum
(08 decembrie 2017)
No comments:
Post a Comment