Wednesday, October 13, 2010

Test organization and independence

     A critical issue with testing is independence. [ISTQB05] The effectiveness of finding defects by testing and reviews can be improved by using independent testers. Options for
independence are:
  • Independent testers within the development teams.
  • Independent test team or group within the organization, reporting to project management or        executive management.
  • Independent testers from the business organization, user community and IT.
  • Independent test specialists for specific test targets such as usability testers, security
     testers or certification testers (who certify a software product against standards and
     regulations).
  • Independent testers outsourced or external to the organization. For large, complex or safety        critical projects, it is usually best to have multiple levels of testing, with some or all of the              levels done by independent testers. Development staff may participate in testing, especially at      the lower levels, but their lack of objectivity often limits their effectiveness. The independent        testers may have the authority to require and define test processes and rules, but testers              should take on such process-related roles only in the presence of a clear management                    mandate to do so.

The benefits of independence include:

   • Independent testers see other and different defects, and are unbiased.
   • An independent tester can verify assumptions people made during specification and
implementation of the system.

Drawbacks include:

  • Isolation from the development team (if treated as totally independent).
  • Independent testers may be the bottleneck as the last checkpoint.
  • If proper communication is not insured, developers may lose a sense of responsibility
    for quality.

Agile Development Methodologies

  • Extreme Programming (XP)
  • Crystal
  • Adaptive Software Development (ASD)
  • Scrum
  • Feature Driven Development (FDD)
  • Dynamic Systems Development Method
  • (DSDM)
  • XBreed

What is Agile Testing?

1. Testing practice that follows the agile manifesto, treating development as the customer of testing
! In this light the context-driven manifesto provides a set of principles for agile testing.

 2. Testing practice for projects using agile  methodologies. ! What is the role of the tester on an agile project?

Friday, October 8, 2010

What is Test Strategy?

Test Strategy is a document which can provide following information : 

1.      Product, Revision and Overview

Describe the product and revision designator.

Describe briefly how the product works. Reference other material as appropriate.

2.      Product History

Include a short history of previous revisions of this product. (3-4 sentences). Include defect history.

3.      Features to be tested

List all features to be tested. Organize the list in the way that makes most sense- user features, or by level:

Application

Demo software

Client substrate

Server

Network (this may be more layers)

4.      Features not to be tested

Describe any features not to be tested

5.      Configurations to be tested and excluded

I recommend a table showing which hardware configurations will be tested with which software.

6.      Environmental requirements

Enumerate hardware, firmware, software, networks, etc. required to carry out the testing.

7.      System test methodology

Brief description of work items to be performed from the beginning to the end of the product development.

8.      Initial Test requirements

Test strategy (this document), written by test personnel, reviewed by product team, agreed to by project manager.

9.      System test entry and exit criteria

9.1.   Entry Criteria

The software must meet the criteria below before the product can start system test. Specifically enumerate any project-specific departures from the Generic Criteria. This list must be negotiated with and agreed upon by the project leader.

Generic criteria:

1. All basic functionality must work.

2. All unit tests run without error.

3. The code is frozen and contains complete functionality.

4. The source code is checked into the CMS.

5. All code compiles and builds on the appropriate platforms.

6. All known problems posted to the bug-tracking system.

9.2.   Exit Criteria

The software must meet the criteria below before the product can exit from system test. Specifically enumerate any project-specific departures from the Generic Criteria. This list must be negotiated with and agreed upon by the project leader.

Generic criteria:

1. All system tests executed (not passed, just executed).

2. Successful execution of any "Getting Started" sequence.

3. Results of executed tests must be discussed with product management team.

4. Successful generation of executable images for all appropriate platforms.

5. Code is completely frozen.

6. Documentation review is complete.

7. There are 0 showstopper bugs.

8. There are fewer than major bugs, and minor bugs.

10.  Test Deliverables

• Automated tests in

• Test Strategy and SQA project plan

• Test procedure

• Test logs

• Bug-tracking system report of all issues raised during SQA process

• Test Coverage measurement

11.  References

Other documents referring the project or testing.

Wednesday, July 29, 2009

What is Testing ?

In organization level testing is conducted to verify the functionality of an application and also to see the user requirements.

What is Manual Testing ?

Manual testing is the oldest and most rigorous type of software testing. Manual testing requires a tester to perform manual test operations on the test software without the help of Test automation.

Note: Manual testing is a laborious activity that requires the tester to possess a certain set of qualities like to be patient, observant, speculative, creative, innovative, open-minded, resourceful, and skillful.