Learn about software quality

Tram Ho

1. What is software?

According to IEEE: Software is: Computer program, procedure, related documents (if any) and related data.

The ISO definition (ISO 9000-3) lists 4 components needed to ensure the quality of software development and long-term maintenance processes:

  • Computer program (code)
  • Procedure
  • Document
  • Data required for the operation of the software system.

Software Error – Software Error Is the wrong code due to syntax error, logic or error due to analysis and design.

Software Fault – Errors are errors that lead to incorrect software operation. Not all errors cause errors.

Software Failures Fault will become a failure when it is activated.Some runs cause failures, some fail.

2. Software errors, software faults and software failures

For example

Error: look for zeros from index 1 instead of index 0. For example numZero ([2,7,0]) is calculated to exactly 1, and with numZero ([0,7,2]) will is calculated to be 0.

In both cases, the fault is executed.

The second case is causing failure

3. Nine causes of software failure

1. Error when defining request

  • Often referred to as the source of software errors
  • Error request definition: Wrong definition, eg wrong formula
  • Incomplete definition: Request not clear
  • Missing required
  • Unnecessary request:
    • Many projects have requirements that are never used
    • Affect budget, complexity, development time, …

2. Client-developer relationship

  • Misunderstanding the required documents
  • Misunderstanding documents when changed
  • Misunderstanding change (oral) during development
  • Not coming
    • Inform customers about devlopers’ solutions about required changes and
    • Customer feedback on developer questions
  • Sometimes customers present themselves as users, programmers present in a different way of thinking.

3. Intentional violations of software requirements

  • The developer reuses the same result to save time
  • Often reuse code that needs to be modified or unnecessary for developer (s) to remove functionality due to time / budget constraints.
  • Developer adds unacceptable “enhancements” (code enhancements, new sorting / searching, etc.) resulting in a loss of some features.

4. Logic design error

  • Wrong algorithm: Wrong formula, wrong decision table, wrong operator / operand…
  • Process definition: processes in the system do not accurately reflect business processes
    • Note: not all errors are software errors.
    • This is a procedural error, and not part of the system …
  • Error defining boundary conditions – common source of error: Be careful with boundary values, e.g. ‘no more than’ “fewer than,” “n times or more;” “the first time,” .. .
  • Missing software states: If rank is> = O1 and RPI is numeric, then …. It is easy to miss actions based on software state
  • Ignoring definitions related to the response of invalid actions in software with code to detect invalid actions but not designing response actions of the software. For example: warning bells, …

5. Programming error

  • A lot of things are related to coding errors.
    • Grammatical errors
    • Logical error (program runs; results wrong)
    • Run-time error (crash during execution)

6. Not following the guidelines for writing documents and code

  • Non-compliance with templates (structure)
  • Not following the coding standards (attribute names …)
  • (Standards and Integration Branch)
    • Other programs must run in the environment!
    • Data Elements and Codes: AFM 300-4;
    • Instruction manuals and operating instructions; AFDSDCM 300-8, …
  • SQA team: testing not only software implementation but also coding standards, documentation, displayed messages, necessary resources, naming resources (file names, program names, …)

7. Shortcomings of the testing process

  • Part of the development process but often undercut!
  • Inadequate test plan: Do not test all parts of the application or test through the speaker!
  • Failed to detect document or report errors
  • The error cannot be detected due to a vague description of the error
  • Not enough time to fix errors

8. Error of user interface and procedure

Procedures instructing the user to manipulate the steps necessary for each step of the process. They are important for complex software that requires a process that involves several consecutive steps, each processing different data types and allowing the examination of intermediate results.

9. Document error

  • Error in document design
  • Error in the user guide, online help
  • List functions that do not exist: Have been planning to develop, but postpone and have not edited the document
  • Nonsense error message
  • Specification: specification of errors, incomplete, inconsistent.
  • Design: Basic errors in software design. Installation (Code): programming error, malicious code (malicious code).
  • Supporting system: Poor programming language, faulty compiler …
  • Incomplete testing: incomplete testing, poor verification, …

4. Software quality, the definition of IEEE

Software quality is:

(1) The extent to which a system, component, or process meets the specification required by Philip Crosby

Emphasis on the specification: if the customer specifies all the requirements in the specification AND if the specification is met then the customer will be satisfied.

The specification was written by the customer and the development team. Therefore, specification errors are not considered and do not affect the software quality. This is what we need to consider.

(2) The extent to which a system, component, or process meets customer / user needs / desires. by Joseph M. Juran

Here, the emphasis is on customer satisfaction. Therefore, the specification may need to be modified

However, the customer must be able to give an accurate and complete specification.

In fact, many major problems can be discovered too late. Customers are not satisfied!

Roger Pressman’s software quality definition

The fulfillment of functional requirements, performance, standards (specifications) are developed, desired features from all professional (implicit) software.

5.Different definitions of software quality assurance

5.1 Software quality assurance

  1. A planned and systematic model of all the actions needed to give confidence that an item / product meets established technical requirements.
  2. Set of actions designed to assess product development / production processes In contrast to quality control

5.2 Objectives of SQA activities in software development (Process-Oriented)

(1) Ensure an acceptable level of reliability is that the software will comply with functional specifications.

(2) Ensure an acceptable level of reliability is that the software will comply with time and financial management requirements.

(3) Initiate and manage activities for improved software development and SQA activities.

5.3 Objectives of SQA activities in software maintenance (Product-Oriented)

(1) Ensure an acceptable level of reliability is that software maintenance operations will comply with functional specifications.

(2) Ensure an acceptable level of reliability is that software maintenance activities will comply with financial and time management requirements.

(3) Initiate and manage activities for improved software maintenance and SQA operations

Reference: Daniel Galin. Sofware Quality Assurance – From Theory to Implemtation. Addion Wesley, 2004.

Share the news now

Source : Viblo