Software testing

There are many wrong perceptions about software testing that creates a lot of confusions among students. Many students think software testing is a boring job as testers sit in front of a computer waiting for developers gives them their code to test. Many students believe that testing is a “temporary job” for them to gain experiences before move up to developing job. Some software companies hire people with limited training to be testers as they do not have enough skills to work as developers. These are reasons why software have many defects and often fail to perform accordingly.

Testing is a creative process that supports the overall software development process. This only happens when testers make an effort towards understanding their contributions towards the development process and how to improve project workflow and communication with the other project members. Experienced testers always improve their skills that allow them to approach testing from a multi-disciplined approach. They always take the initiative to seal the gap between the developers and users. They understands the point of view of the users by understand the business environment then communicates to developers the reason why a bug needs to be fixed in certain way. They also understand the point of view of the developers then communicate to users why certain functions must be prioritized in certain way. That is why experienced testers never wait until the code is done and start testing. They start early in the project during requirements phase because they must develop test cases to validate that software meets users’ requirements.

Even today, few students understand the testing process. They believe that testing means check the code of developers for bugs without understand that they should be involved in the entire software development process. Many do not even know the software development lifecycle and the importance of quality in the software project. Many students are not aware of the business goals and objectives of the project as part of the larger business function of the company. Unfortunately, many training programs are still focusing on the programming aspect without teaching about software process and the roles of software testers in the overall development process. That is why there are many misunderstandings between developers and testers that create unnecessary conflicts. Many testers do not understand the developers, finding them unfriendly, and feeling uncomfortable with them. They often stay away from developers that they should work with. They do not know how to share their view with developers and make important contributions to the project. Eventually many testers end up passively by only testing the code rather than involve in the entire development process.

Experienced testers do not act passively. They start early by meet with users so that they can understand the type of testing which is expected of them. This also helps prioritize the testing areas that could be validated by users. They always initiate regular meetings that allow them and developers to exchange information. Both parties also understand the kind of feedback expected in these meetings and together develop a defined process to identify and solve problems together. By having the well defined process, they can improve the communication and the responsibility of each team to ensure a high quality and productive relationship for the project.

Today, many software developers and testers do not understand the important of having a defined process. Without a process, interaction will happen at the individual level and conflicts often happen. Testers blame developers of having too many bugs. Developers complain that testers do not understand their logical thinking. Having a well defined process will eliminate this kind of conflict and avoid personal problems between project team members. Inexperienced testers do not understand the need to maintain good communication with developers. They do not know how to involve early in the project by participate in all development phases. Many just wait until the code is done then start testing. It is too late and that is why many software products have defects. Communication skills are essential criteria in testing. Having the right people skills enables the tester to maintain a good relationship with developers and management, while allowing testers to understand developers’ viewpoints and being careful about the nature of bugs filed for fixing.

The testing function requires the tester to be alert and aware of changes within the software product under test at all times and to be capable of making the right decisions at the required time. Testers should always find the means of updating their knowledge and skills as it helps to improve their understanding of the work of developers. By continuous training testers will develop the needed skills to understand the finer points of the software testing process and allow them to make good judgment about which high-risk areas should be focused for testing given a limited time.

Testing is an very important function that every company must have to ensure the quality of its product. It is a profession that deserves a lot of respect. Testing is a progressive state and should always be followed through with accurate test cases to ensure the quality of the final product. Customer focus is a key feature in the development of a quality software product and it is important that all project team members understand the meaning of quality in this respect. The success of the testing effort depends in part on the careful evaluation of customer needs and feedback into the development of a successful software product. Today, software are being done in a rapid development environment, it is more critical to have experienced testers to prevent the risks of delivering a poorly tested software product.

Although testers come in varying skills, discipline, creativity and experience. The quality of the software product depends on the worth of these individuals in contributing towards the testing effort and the general success of the testing process. It is important that testers be given the required training in understanding their part in the testing effort. The “bad practice” of hiring people with limited skills, people with few months of trainings, people that is willing to work for less should be eliminated. There are many studies concluded that: “To save money by hiring low paying, unskilled people as testers will always cost the company much more due to poor quality issues.” Testing is an important professional position. Testers play a critical role in the software development and they deserve a much better recognition to their contribution.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University