Every project needs testing to ensure product goals are met. What is testing? In short, testing is about verifying the features or applications meet the software requirements or user story. The biggest challenges are when requirements are either incomplete, inaccurate or outdated or a combination of this. A number of testing skills or characteristics are useful and definitely important because project and product goals are always crucial to customer satisfaction.
There has been much research and discussions on test design techniques, test processes & test plans for projects large or small. Testing has always been an intellectual process to ensure product quality. Even though simple in principle - it is not easy in practice. Attitude plays an important role in testing.
A determined tester would seek out high value defects while a complacent one might stop thinking once all test executions have completed. A good tester would continue looking while thinking there are defects waiting to be found even after all high or critical test cases have been completed. Testing is NOT just about ticking list of check boxes. Rather the check list is more of a tool to inspire thoughts of where else other defects might be lurking.
Being curious and adventurous
Nothing or very little escapes a good tester. A different font type or size might seem trivial but not so to the content team who require a different font type for a foreign language site. There is no test technique that trumps all other techniques. In fact, each test technique is suitable and applicable to different scenarios. Just because a particular feature has always been working in a certain way does not mean it is working correctly. Good testers put assumptions through its paces with dynamic execution.
Automated testing is a great way to verify a particular feature works as designed. However, it takes time to design effective tests and implement them. There are many numerous paid and open source testing tools for testing but may require customization to suit the application.
Having an open mind
Defects may be found in a legacy feature but its severity or impact could be open to discussion. If its main functionality is working and a workaround is available with little to no impact to the end user, then such defects may be low in severity. This is especially so after discussions with the business representative and gaining their approval.
Moving with the times
Change is the only constant both in life and in test projects. Past projects have produced high quality products using the waterfall process where requirements documents were reviewed by teams and version-controlled before any development started. As in the case of many projects nowadays, the waterfall process is making way to the agile methodology where process and documentation are reduced to the optimum. Stand-ups, sprints and interviews have become the mainstay. Likewise, testers cannot be stuck with methods that have worked in the past and insist on using them in current and future projects. Instead, testers need to move with the times by learning and applying more suitable methodologies like Agile and Lean.
No one is an island and certainly all good testers will embark on continuously learning the latest test technique and trends. There are various forums and blogs where there are tried and tested testing techniques which give the best bang for time spent testing. James Bach is a well known advocate in the testing community. His website www.satisfice.com contains many useful testing ideas. There are a number of software testing certifications from foundation level to expert level e.g. ISTQB. Other sources on software testing include IEEE 29119 Software Testing. The content material is very similar in both ISTQB and IEEE 29119. Only ISTQB provides certification for software testers.
Professional development does not end with securing the certification. In fact, it is only a milestone of a continuous journey of self-learning and self-development. There is a growing trend moving away from manual testing to automated security testing, UI and API testing; especially in web-based solutions. There is no better time than now for manual testers to up skill in coding to add value by creating automated test scripts.
Good testing adds value by ensuring applications work as designed. Testing is also a team effort involving the PMs, developers and of course testers. Testing is primarily a intellectual process where tools, processes and techniques add value to software products.
[As written by one of our Consultants]