Saturday, May 9, 2020

Validation Testing

Validation Testing

  • Validation testing begins at the conclusion of integration testing,
  • When individual components have been exercised, the software is completely assembled as a package, and interfacing errors have been uncovered and corrected.
  • At the validation or system level, the distinction between conventional software, object-oriented software, and WebApps disappears.
  • Testing focuses on user-visible actions and user-recognizable output from the system.
  • In simple meaning, validation succeeds when software functions in a manner that can be reasonably expected by the customer.
  • Validation-Test Criteria
  • Software validation is achieved through a series of tests that demonstrate conformity with requirements.
  • A test plan outlines the classes of tests to be conducted and A test procedure defines specific test cases that are designed to ensure that
    • All functional requirements are satisfied,
    • All behavioral characteristics are achieved,
    • All content is accurate and properly presented,
    • All performance requirements are attained,
    • Documentation is correct, and usability and other requirements are met (e.g., transportability, compatibility, error recovery, maintainability).
  • After each validation test case has been conducted, one of two possible conditions exist:
    • The function or performance characteristic conforms to specification and is accepted.
    • A deviation (Error) from the specification is uncovered and a deficiency list is created.
  • Configuration Review :
    • An important element of the validation processis a configuration review.
    • The objective of the review is to ensure that all elements of the software configuration have been properly developed.
    • The configuration review, sometimes called an audit…
  • Acceptance Testing :
  • When custom software is built for one customer, a series of acceptance tests are conducted to enable the customer to validate all requirements.
  • Conducted by the end user rather than software engineers, an acceptance test can range from an informal “test drive” to a planned and systematically executed series of tests.
  • In fact, acceptance testing can be conducted over a period of weeks or months.
  • Alpha and Beta Testing :
  • If software is developed as a product to be used by many customers, it is impractical to perform formal acceptance tests with each one. 
  • Most software product builders use a process called alpha and beta testing to uncover errors that only the end user seems able to find.
  • The alpha test is conducted at the developer’s site by a representative group of end users.
  • The software is used in a natural setting with the developer “looking over the shoulder” of the users and recording errors and usage problems.
  • Alpha tests are conducted in a controlled environment.
  • The beta test is conducted at one or more end-user sites.
  • Unlike alpha testing, the developer generally is not present. Therefore, the beta test is a “live” application of the software in an environment that cannot be controlled by the developer.
  • The customer records all problems (real or imagined) that are encountered during beta testing and reports these to the developer at regular intervals.
  • As a result of problems reported during beta tests, you make modifications and then prepare for release of the software product to the entire customer base.


Alpha vs Beta Testing, Difference Between Alpha and Beta Testing

Alpha vs Beta Testing, Difference Between Alpha and Beta Testing

Alpha vs Beta Testing, Difference Between Alpha and Beta Testing



Monday, May 4, 2020

Test Strategies for WebApps

Test Strategies for WebApps


  • The strategy for WebApp testing adopts the basic principles for all software testing and applies a strategy that are used for object-oriented systems.
  • The following steps summarize the approach :
    • The content model for the WebApp is reviewed to uncover errors.
    • The interface model is reviewed to ensure that all use cases can be accommodated.
    • The design model for the WebApp is reviewed to uncover navigation errors.
    • The user interface is tested to uncover errors in presentation and/or navigation mechanics.
    • Each functional component is unit tested.
    • Navigation throughout the architecture is tested.
    • The WebApp is implemented in a variety of different environmental configurations and is tested for compatibility with each configuration.
    • Security tests are conducted.
    • Performance tests are conducted.
    • The WebApp is tested by a controlled and monitored population of end users.

Friday, May 1, 2020

Test strategies for Object-Oriented Software

Test strategies for Object-Oriented Software

  • Introduction: The objective of testing, stated simply, is to find the greatest possible number of errors with a manageable amount of effort applied over a realistic time span.
  • Although this fundamental objective remains unchanged for objectoriented software.
  • The nature of object-oriented software changes both testing strategy and testing tactics (Plan).

Unit Testing in the OO Context

  • When object-oriented software is considered, the concept of the unit changes. Encapsulation drives the definition of classes and objects.
  • This means that each class and each instance of a class packages attributes (data) and the operations that manipulate these data.
  • An encapsulated class is usually the focus of unit testing.
  • However, operations (methods) within the class are the smallest testable units. Because a class can contain a number of different operations, and a particular operation may exist as part of a number of different classes.
  • Class testing for OO software is the equivalent of unit testing for conventional software.
  • Unlike unit testing of conventional software, which tends to focus on the algorithmic detail of a module and the data that flow across the module interface,
  • Class testing for OO software is driven by the operations encapsulated by the class and the state behavior of the class.

Integration Testing in the OO Context 

  • Different strategies for integration testing of OO systems.
    • Thread-based testing
    • use-based testing 
    • Cluster testing
  • The first, thread-based testing, integrates the set of classes required to respond to one input or event for the system.
  • Each thread is integrated and tested individually. 
  • Regression testing is applied to ensure that no side effects occur.
  • The second integration approach, use-based testing, begins the construction of the system by testing those classes (called independent classes) that use very few (if any) server classes.
  • After the independent classes are tested, the next layer of classes, called dependent classes, that use the independent classes are tested.
  • This sequence of testing layers of dependent classes continues until the entire system is constructed.

Cluster testing

  • Cluster testing is one step in the integration testing of OO software. 
  • Here, a cluster of collaborating classes is exercised by designing test cases that attempt to uncover errors in the collaborations.