Software Testing is not just finding defects in Software. It’s an art to make a quality product. There is no doubt that Software Testing starts at the very beginning of project life cycle. So, the role of Software Test Engineer starts vitally from very beginning of Software Development. The sole aim of Software Testing is to make sure all of the required scenarios are covered by the Software and are working fine.
The following are the important skills that a Software Test Engineer needs to have.
1. Act as an End User
Software are for users. In many cases, Software Test Engineers are technical guys with sharp technical knowledge. So, those guys having strong technical knowledge (programming knowledge) most probably start seeing that Software in technical perspective. This will prevent in finding many defects in a system.
As a Software Test Engineer, assume that you are a real End User and start seeing it with end-user perspective.
2. Participate heavily in all the phases of Software Development
Generally, Software development process follows phases like feature request, feature specs, dev specs, test specs, etc chronologically. As a Software Test Engineer, push yourself in into all the phases of the development cycle. Indulging in those phases helps you to know the know-how of system thereby providing a wide vision range to find the defects. Ideally, Software Test Engineer should go through and know all the specs in Software Development cycle.
3. Politely use WH questions
In scrum, project meeting, feature/dev specs review meeting etc developers or Project Managers provide some approaches of solution. Sometime those ideas are driven by unidirectional thought of a particular person. If a Software Test Engineer fires a right WH question that will definitely prevent a lot of hassles in future. For an example, if a developer or PM proposes one approach for implementing a feature, we can use following WH questions –
- What are the benefits of this approach over others?
- How will end users be benefited from this approach?
- What are the limitation of this approach?
- Who will have to put more efforts in managing this approach?
- When can this be accomplished?
- Why not using other alternative approaches?
Remember, the WH questions may sound irritating to the people. So, we should politely fire these questions. In most of cases, those questions reveal the limitation of the approach from very beginning. This saves a lot of time and efforts. Be polite and fire WH questions appropriately.
4. Treat the System you are testing as your favorite game
Every time you sit on a chair and start testing a system, assume that you are gonna play your favorite game. More we enjoy testing the system, more probably we cover all the areas of Software and more probably we go to the depths of the system.
5. Habit of taking break
Specially rookie Software Test Engineers spend whole day by testing the system continuously. This is a unidirectional way of testing. In such pattern, many defects in the system are skipped. Do not force yourself in a continuous unidirectional path. Take breaks!! . Taking break brings solace to the brain and does contribute to stop walking in unidirectional path.
Software is usually intended to large number of people. So, Software Test Engineer should start thinking in a multi-directional way. Do not test continuously for a long time. If you feel that you have been sitting on a chair and focusing on one single feature testing for a long time, STOP immediately. Take at least few minutes break and come back – the defects in the system will start floating in front of the screen.