Tuesday 20 December 2011

What is software testing?

Software testing is a process of verifying that a system is fit for purpose and meets it business and technical requirements. It starts at the beginning of system development cycle and have many stages such as:

·        Requirement reviews

·        Code reviews

·        Unit testing

·        Functional testing

·        Integration testing

·        System testing

·        Regression testing

·        Performance testing

·        User acceptance testing

·        Business verification testing

 Software testing has three main purposes:
 Verification- this process confirms that the software meets its technical specifications.  This means that it accepts a specific input, perform specific actions and produce a specific output under specific conditions. Example to activate Login’ button to internet banking you need a login id and a six digit password.  The login button only activate (specific out) if you enter your login credentials (Specific input) and your password is six digits (Specific actions)

Validation- this process confirms that the software meets the business requirements.  This means that it does what it supposes to do. In the above example the business requirement is that a user can access the internet banking with valid login credentials. So to enter the internet banking you need to input valid login credentials. If your credentials are wrong you won’t be able to enter the system.

Defect- this is a variance between the expected and actual result. In the above example if the system accept a password less than or more than six digits then it is a defect. The defect can be introduced in the specification, design, development or deployment phases.

Why to test the software?

Software has purpose like any other product. So it needs to be  tested to confirm that it ‘Fit for purpose’ means it only does what is suppose to do. Any variation from the purpose can result into catastrophic failures such as In October 1999 the $125 million NASA Mars Climate Orbiter—an interplanetary weather satellite—was lost in space due to this reason. One can find many other similar or different examples everyday in current era of technology.

Though software is like any other product but most of the defects in software are design errors, not manufacturing defects. Software does not wear out or damaged unless it is changed.  So the defects introduced in the specification, design, development or deployment phases, will remained latent until activated.

By testing software we can:

·        reduce the risk of failure.

·        give confidence to user that it is fit for purpose.

·        improve the functioning of the system

Monday 19 December 2011

What is a Test Case?


A test case is a document that describes the:

·         process of testing a feature of an application for its functioning.

·        actions performed to input the test data.

·        actions performed to get expected response.

·        results of action performed.

A test case also includes the following information:

·        Test case ID

·        Test case name

·        Test case description

·        Test data

·        Test conditions/pre-requisite

·        Requirements covered

·        Test steps

·        Expected results

·        Developed by

·        Reviewed by

·        Executed by

Sunday 18 December 2011

Who makes a good Test Manager?

A good Test Manage is one who:

·        Has knowledge of software development process

·        Can improve and maintain morale of their team

·        Can understand their team and help them maintain enthusiasm

·        Allows their team to participate in decision making process

·        Can act as a strong link between BAs, Developers, testers and management

·        Have sound negotiation, analytical and judgmental skills

·        Is an active listener

·        An communicate with technical and non technical stakeholders

·        Can effectively delicate the work

·        Has a good time management skills

·        Can work under pressure

·        Can coach and mentor staff

·        Is flexible and determined to achieve results

·        Has an eye for detail.

·        Loves his trade and tools

Wednesday 14 December 2011

Who makes a good software tester?


I have been asked many times what makes a good software tester. During my time in the industry I have seen a major shift in attitude of senior management and developers toward software testing.  Also the quality of testers has improved a lot. For me a good tester is one who:
  • has the attitude to walk in user’s shoes;
  • is smart, intelligent, but can think like a stupid;
  • has an eye for details;
  • can think outside a box;
  • can build relationship with stakeholders;
  • is eager to learn new things;
  • is able to follow instructions;
  • is an active listener;
  • is an excellent communicator;
  • can work under pressure;
  • can handle changing priorities;
  • is master of his/her trade and tools; and
  • is proud to be a tester.