Monday 17 December 2012

Key goals of Testing or Principle


Early identification of defects and prevention of defect migration are key goals of testing process.

1) Finding defects in the early stages
2) Gaining confidence in and providing information about the level of quality
3) prevention of defect migration.


What is the best or good practice of the tester?
Participating during the review of the test basis document.


Test plan:-

A test plan is a document detailing a systematic approach to testing a system such as a machine or software. The plan typically contains a detailed understanding of what the eventual workflow will be.A test plan documents the strategy that will be used to verify and ensure that a product or system meets its design specifications and other requirements. A test plan is usually prepared by Test Manager.

Test plan document formats can be as varied as the products and organizations to which they apply. There are three major elements that should be described in the test plan: Test Coverage, Test Methods, and Test Responsibilities. These are also used in a formal test strategy

Test strategy:-

A test strategy is an outline that describes the testing portion of the software development cycle. It is created to inform project managers, testers, and developers about some key issues of the testing process. This includes the testing objective, methods of testing new functions, total time and resources required for the project, and the testing environment.

The test strategy describes how the product risks of the stakeholders are mitigated at the test-level, which types of test are to be performed, and which entry and exit criteria apply.The test strategy is created based on development design documents.The design documents describe the functionalities of the software to be enabled in the upcoming release. For every set of development design, a corresponding test strategy should be created to test the new feature sets.

Test Levels:-
The test strategy describes the test level to be performed. There are primarily three levels of testing: unit testing, integration testing, and system testing. In most software development organizations, the developers are responsible for unit testing. Individual testers or test teams are responsible for integration and system testing.



Test Plan vs Test strategy:-


Test Plan:- what to test

Test Strategy:- How to test


Test Strategy:--A strategy is how you are going to address testing for the project.
A Test Strategy document is a high level document and normally developed by project manager. This document defines “Testing Approach” to achieve testing objectives. The Test Strategy is normally derived from the Business Requirement Specification document.

The Test Stategy document is a static document meaning that it is not updated too often. It sets the standards for testing processes and activities and other documents such as the Test Plan draws its contents from those standards set in the Test Strategy Document.

Some companies include the “Test Approach” or “Strategy” inside the Test Plan, which is fine and it is usually the case for small projects. However, for larger projects, there is one Test Strategy document and different number of Test Plans for each phase or level of testing.

Components of the Test Strategy document

   * Scope and Objectives
    * Business issues
    * Roles and responsibilities
    * Communication and status reporting
    * Test deliverability
    * Industry standards to follow
    * Test automation and tools
    * Testing measurements and metrices
   * Risks and mitigation
    * Defect reporting and tracking
    * Change and configuration management
    * Training plan

1) Scope and objective: The purpose of testing in an organization
2) Business issues: Budget control for testing
3) Testing approach: That is the TRM ( Test responsibility Matrix)
4) Test Delivarables: Names of the testing documents to be prepared by the Testing Team.
5) Roles and Responsibilities: Names of jobs in the testing team and their responsibilities
6)Communication and status reporting: Required negotiation between two jobs in a team
7) Test automation and Tools: Availability of testing tools and purpose of automation
8) Defect reporting and Tracking: required negotiation between testing and development teams
9) Risks and Migitations: Expected failures during testing and solutions to overcome
10) Change and Configuration management: How to handle sudden changes in customer requirements.
11) Training plan :

Test Plan
The Test Plan document on the other hand, is derived from the Product Description, Software Requirement Specification SRS, or Use Case Documents.
The Test Plan document is usually prepared by the Test Lead or Test Manager and the focus of the document is to describe what to test, how to test, when to test and who will do what test.

It is not uncommon to have one Master Test Plan which is a common document for the test phases and each test phase have their own Test Plan documents.

There is much debate, as to whether the Test Plan document should also be a static document like the Test Strategy document mentioned above or should it be updated every often to reflect changes according to the direction of the project and activities.
My own personal view is that when a testing phase starts and the Test Manager is “controlling” the activities, the test plan should be updated to reflect any deviation from the original plan. After all, Planning and Control are continuous activities in the formal test process.

    * Test Plan id
    * Introduction
    * Test items
    * Features to be tested
    * Features not to be tested
    * Test techniques
    * Testing tasks
    * Suspension criteria
    * Features pass or fail criteria
    * Test environment (Entry criteria, Exit criteria)
    * Test delivarables
    * Staff and training needs
    * Responsibilities
    * Schedule

1 ) Test plan ID : Unique number or name
2) Introduction : About project
3) Test Items: Names of all modules in the project.
4) Features to be tested :
5)Features not to be tested:
6) Tessting approach: finalized TRM, selected testing techniques
7) Entry Criteria : When testing can be started
8) Exit Criteria : when testing can be stopped
9)Fail or Pass criteria:
10) Test Environment : The environment where the test is to be carried out.
11) Test Delivarables:
12) Staff and training
13) Roles and Responsibilities
14 ) Project starting and End dates
15) Risks and migitations.


Test Strategy Vs Test Plan

A test strategy is a statement of the overall approach to testing, identifying what levels of testing are to be applied and the methods, techniques and tools to be used. A test strategy should ideally be organization wide, being applicable to all of organizations software developments.Developing a test strategy, which efficiently meets the needs of an organization, is critical to the success of software development within the organization. The application of a test strategy to a software development project should be detailed in the projects software quality plan.
                             The next stage of test design, which is the first stage within a software development project, is the development of a test plan. A test plan states what the items to be tested are, at what level they will be tested, what sequence they are to be tested in, how the test strategy will be applied to the testing of each item, and describes the test environment.

A test plan may be project wide, or may in fact be a hierarchy of plans relating to the various levels of specification and testing:
    *
     An Acceptance Test Plan, describing the plan for acceptance testing of the software. This would usually be published as a separate document, but might be published with the system test plan as a single document.
    *
     A System Test Plan, describing the plan for system integration and testing. This would also usually be published as a separate document, but might be published with the acceptance test plan.
    *
     A Software Integration Test Plan, describing the plan for integration of testes software components. This may form part of the Architectural Design Specification.
    *
     Unit Test Plan(s), describing the plans for testing of individual units of software. These may form part of the Detailed Design Specifications.

The objective of each test plan is to provide a plan for verification, by testing the software, that the

software produced fulfils the requirements or design statements of the appropriate software

specification. In the case of acceptance testing and system testing, this means the Requirements

Specification.