Saturday, December 9, 2017

Asigurarea calității

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