undefined. Week 7 Software Quality.
undefined. Basic concepts and objectives of software quality assurance: What is software? Software errors, faults and failures Differences Classification of the causes of software errors.
undefined. Definition of software is really not simple. Simply code? According to the IEEE: Software is: Computer programs, procedures, and possibly associated documentation and data pertaining to the operation of a computer system. ISO definition (from ISO 9000-3) lists four components necessary to assure the quality of the software development process and years of maintenance: computer programs (code) procedures documentation data necessary for operating the software system..
undefined. Software Error – made by programmer Syntax (grammatical) error Logic error (multiply instead of adding two operands) Software Fault – All software errors may not cause software faults That part of the software may not be executed Software Failures – Here’s the interest. A software fault becomes a software failure when/if it is activated. Faults may be found in the software due to the way the software is executed or Other constraints on the software’s execution, such as execution options..
undefined. Software Errors, Faults, and Failures.
undefined. Faulty Requirements Definition Usually considered the root cause of software errors Incorrect requirement definitions Simply stated, ‘wrong’ definitions (formulas, etc.) Incomplete definitions Unclear or implied requirements Missing requirements Just flat-out ‘missing.’ (e.g. Program Element Code) Inclusion of unneeded requirements (many projects have gone amuck for including far too many requirements that will never be used. Impacts budgets, complexity, development time, ….
undefined. Client-developer communication failures Misunderstanding of instructions in requirements documentation (written / graphical instructions) Misunderstanding of written changes during development. Misunderstanding of oral changes during development. Lack of attention to client messages by developers dealing with requirement changes and to client responses by clients to developer questions Very often, these very talented individuals come from different planets, it seems. Clients represent the users; developers represent a different mind set entirely some times!.
undefined. Deliberate deviations from software requirements Developer reuses previous / similar work to save time. Often reused code needs modification which it may contain contain unneeded / unusable extraneous code. Book suggests developer(s) may overtly omit functionality due to time / budget pressures. Another BAD choice; System testing will uncover these problems to everyone’s dismay! I have never seen this done intentionally – but understand it! Developer inserting unapproved ‘enhancements’ (perfective coding; a slick new sort / search….); may also ignore some seemingly minor features, which sometimes are quite major. Have seen this and it too causes problems and embarrassment during reviews..
undefined. 4. Logical design errors Definitions that represent software requirements by means of erroneous algorithms. Yep! Wrong formulas; Wrong Decision Logic Tables; Incorrect descriptions in text Process definitions: procedures specified by systems analyst not accurately reflecting the real business process Note: all errors are not necessarily software errors. This seems like a procedural error, and likely not a part of the software system…But they are errors nonetheless! Erroneous Definition of Boundary Condition – a common source of errors The “absolutes” like ‘no more than’ “fewer than,” “n times or more;” “the first time,” etc..
undefined. 4. Logical design errors Omission of required software system states If rank is >= O1 and RPI is numeric, then….easy to miss an action based on the software system state. Omission of definitions / procedures concerning reactions to illegal operation of the software system. Including not only code to detect an illegal operation but failure to design the computer software reaction to this: Gracefully terminate, sound alarm, etc. ??.
undefined. Coding errors Too many to try to list. Syntax errors (grammatical errors) Logic errors (program runs; results wrong) Run-time errors (crash during execution).
undefined. Non-compliance with documentation and coding instructions Non-compliance with published templates (formats) Non-compliance with coding standards (Standards and Integration Branch) Size of program; Other programs must be able to run in environment! Coding: Data Elements and Codes: AFM 300-4; Development Procedures: Required documentation manuals and operating instructions; AFDSDCM 300-8, etc… SQA Team: testing not only execution software but coding standards; manuals, messages displayed; resources needed; resources named (file names, program names,…).
undefined. 7. Shortcomings of the Testing Process Likely the part of the development process cut short most frequently! Incomplete test plans Parts of application not tested or tested thoroughly! Superficial; boundary conditions… Path testing, branch testing … (coverage measures) Failure to document and report detected errors and faults So many levels of testing….we will cover. Failure to quickly correct detected faults due to unclear indications that there ‘was’ a fault Failure to fix the error due to time constraints Many philosophies here depending on severity of error..
undefined. User Interface and Procedure errors Remember: to the user, the interface is the entire system. If the Interface is unsatisfactory, this view will be absolutely conveyed ‘up the line.’ The ‘learnability,’ and utility of the interface. Documentation Errors Errors in the design documents If Docs do not represent the implemented design, this is trouble for subsequent redesign and reuse Errors in the documentation in the User Manuals, Operators Manual, other manuals (Installation…) Errors in on-line help, if available. Listing of non-existing software functions Planned early but dropped; remain in documentation! Many error messages are totally meaningless.
undefined. The nine causes of software errors are: 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.