Principles of Testing and Analysis

 1) What : The quality process

Quality Process : Set of activities and responsibilities

  • Focused primarily on ensuring adequate dependability.
  • concerned with project schedule or with product usability.
The quality process provides a framework for
  • selecting and arranging activities.
  • considering interactions and trade-offs with other important goals.
Process Quality
  • Repeatability, Timeliness, Cost.
Product Quality
  • Internal Qualities: Reusability, Manageability, Maintainability, Modifiability.
  • External Qualities: 
    - Dependability qualities : Availability, correctness, reliability, safety, robustness.
    - Usefulness qualities : Usability, Performance, Security, Portability, Interoperability.

2) Where : Focusing on problematic constructs and modules most likely to contain bugs.

  • Floating points numbers:
    Inherently imprecise. The imprecision may lead to invalid comparisons
    Sequences of computations may lose precision.

  • Pointers(C/ C++):
    Pointers referring to the wrong memory areas can corrupt data.
    Aliasing can make programs difficult to understand and change.

  • Parallelism:
    Can result in subtle timing errors because of unforeseen interaction between parallel processes
    Can result in deadlock if synchronization is used incorrectly.

  • Numeric Limits/Boundaries:
    Very large values for integers/floats
    Boundary values for relational expressions.

  • Interrupts:
    Interrupts can cause a critical operation to be terminated and back make a program difficult to understand.
    Interrupts are comparable to goto statements.

  • Complex boolean expression:
    Nested boolean operators can be difficult to understand.

  • Casts and conversions between types:
    Especially numeric types : can lose precision or overflow

3) When : Performing testing as early and often as possible.
It involves V model

V Model:

It is a model of software development which pairs phases. Each phase on the left side of the V generates test planning for an accompanying phase on the right side.

Validation:

  • Confirms that the software performs to the user's satisfaction.
  • Assuring that the software system meets the user's needs.
  • Answering "Are we building the right product?"
Verification: 
  • Confirms that the software performs and conforms to its specification.
  • Answering "Are we building the product right?"

4) Who : Structuring organization for effective testing.

5) How : Strategies for effective testing

  • Scope of tests
  • Purpose of tests
  • Testing techniques
  • Visibility : Observability, State exposure, Logging
  • Repeatability
  • Redundancy
  • Feedback

Comments

Popular Posts