Entries from September 2008 ↓

Top 20 practical software testing tips you should read before testing any application.

I wish all testers read these software testing good practices. Read all points carefully and try to implement them in your day-to-day testing activities. This is what I expect from this article. If you don’t understand any testing practice, ask for more clarification in comments below. After all you will learn all these testing practices by experience. But then why not to learn all these things before making any mistake?

Here are some of the best testing practices I learned by experience:

1) Learn to analyze your test results thoroughly. Do not ignore the test result. The final test result may be ‘pass’ or ‘fail’ but troubleshooting the root cause of ‘fail’ will lead you to the solution of the problem. Testers will be respected if they not only log the bugs but also provide solutions.

2) Learn to maximize the test coverage every time you test any application. Though 100 percent test coverage might not be possible still you can always try to reach near it.

3) To ensure maximum test coverage break your application under test (AUT) into smaller functional modules. Write test cases on such individual unit modules. Also if possible break these modules into smaller parts.
E.g: Lets assume you have divided your website application in modules and ‘accepting user information’ is one of the modules. You can break this ‘User information’ screen into smaller parts for writing test cases: Parts like UI testing, security testing, functional testing of the ‘User information’ form etc. Apply all form field type and size tests, negative and validation tests on input fields and write all such test cases for maximum coverage.

4) While writing test cases, write test cases for intended functionality first i.e. for valid conditions according to requirements. Then write test cases for invalid conditions. This will cover expected as well unexpected behavior of application under test.

5) Think positive. Start testing the application by intend of finding bugs/errors. Don’t think beforehand that there will not be any bugs in the application. If you test the application by intention of finding bugs you will definitely succeed to find those subtle bugs also.

6) Write your test cases in requirement analysis and design phase itself. This way you can ensure all the requirements are testable.

7) Make your test cases available to developers prior to coding. Don’t keep your test cases with you waiting to get final application release for testing, thinking that you can log more bugs. Let developers analyze your test cases thoroughly to develop quality application. This will also save the re-work time.

8 ) If possible identify and group your test cases for regression testing. This will ensure quick and effective manual regression testing.

9) Applications requiring critical response time should be thoroughly tested for performance. Performance testing is the critical part of many applications. In manual testing this is mostly ignored part by testers due to lack of required performance testing large data volume. Find out ways to test your application for performance. If not possible to create test data manually then write some basic scripts to create test data for performance test or ask developers to write one for you.

10) Programmers should not test their own code. As discussed in our previous post, basic unit testing of developed application should be enough for developers to release the application for testers. But you (testers) should not force developers to release the product for testing. Let them take their own time. Everyone from lead to manger know when the module/update is released for testing and they can estimate the testing time accordingly. This is a typical situation in agile project environment.

11) Go beyond requirement testing. Test application for what it is not supposed to do.

12) While doing regression testing use previous bug graph (Bug graph – number of bugs found against time for different modules). This module-wise bug graph can be useful to predict the most probable bug part of the application.

13) Note down the new terms, concepts you learn while testing. Keep a text file open while testing an application. Note down the testing progress, observations in it. Use these notepad observations while preparing final test release report. This good habit will help you to provide the complete unambiguous test report and release details.

14) Many times testers or developers make changes in code base for application under test. This is required step in development or testing environment to avoid execution of live transaction processing like in banking projects. Note down all such code changes done for testing purpose and at the time of final release make sure you have removed all these changes from final client side deployment file resources.

15) Keep developers away from test environment. This is required step to detect any configuration changes missing in release or deployment document. Some times developers do some system or application configuration changes but forget to mention those in deployment steps. If developers don’t have access to testing environment they will not do any such changes accidentally on test environment and these missing things can be captured at the right place.

16) It’s a good practice to involve testers right from software requirement and design phase. These way testers can get knowledge of application dependability resulting in detailed test coverage. If you are not being asked to be part of this development cycle then make request to your lead or manager to involve your testing team in all decision making processes or meetings.

17) Testing teams should share best testing practices, experience with other teams in their organization.

18) Increase your conversation with developers to know more about the product. Whenever possible make face-to-face communication for resolving disputes quickly and to avoid any misunderstandings. But also when you understand the requirement or resolve any dispute – make sure to communicate the same over written communication ways like emails. Do not keep any thing verbal.

19) Don’t run out of time to do high priority testing tasks. Prioritize your testing work from high to low priority and plan your work accordingly. Analyze all associated risks to prioritize your work.

20) Write clear, descriptive, unambiguous bug report. Do not only provide the bug symptoms but also provide the effect of the bug and all possible solutions.

Don’t forget testing is a creative and challenging task. Finally it depends on your skill and experience, how you handle this challenge.

Over to you:

Sharing your own testing experience, tips or testing secrets in comments below will definitely make this article more interesting and helpful!!

If you are not regular reader of this website then highly recommend you to sign up for our free email newsletter! Sign up just providing your email address below:

Enter your email address:

How to hire the right candidates for software testing positions?

Do companies really judge candidate’s testing ability in interviews? Do they ask the questions that really judge the candidate’s skill? What questions should be asked to judge the candidate for software testing field? What is the key process to hire good candidates for software testing positions?

Ok, I am asking to many questions without giving answer to any of it. Well, each question mentioned above will require a separate post to address the problem fairly. Here we will address in short about – How to hire the right candidates for software testing positions?

Companies or interviewers, who are not serious about hiring right candidates, often end with hiring poor performers.

What I mean by “Not serious” here?
- They don’t know why and for what post they are hiring a candidate.
- They either fake or fail to post the exact job opening details.
- Or they don’t want to hire skilled performers at all. Hmm, jealousy might be the key here!

Whichever is the reason, there is definitely loss of organization. Loss in terms of both revenue and growth.

If you need answer to these questions, here is an informative video from Pradeep Soundararajan – Consulting tester of Satisfice Inc in India. He explained what is the current situation of software testing interview process in India and how interviewers are wrong in selecting questions to be asked to candidates. A nice start to spread the awareness and importance of software testing interviews.

Current Software Testing Interview situation:


Click on the bottom right button to see the video in full screen.

You can watch his more video’s on software testing here.

Do not forget to comment your experience on software testing interviews, either as an interviewer or as a candidate.

Related article: Choosing software testing as your career.

How to keep motivation alive in software testers?

Couple of months back I wrote an article on “How to keep good testers in testing position“. There I mentioned one point as to appreciate the testers for their good work.

“Reward testers for finding good quality bugs. Keep some weekly or monthly competitions such as ‘Bug of the week’ to reward them.  This will help to build a successful QA team”.

The same concept is used by Eric Jacobson – a software tester, to keep motivation alive in his testing team. Eric found interesting idea to reward good testers. The idea of holding a bug contest. And decided to award the ‘Mercury’ cap to the tester who could log the most bugs in a given week. See the winner of his contest.

A small tweak I would rather suggest to make this technique more effective is to award the testers who will find the quality bug, may be called as “Bug of the week”. This way quality bugs will be the main focus of software testers rather than running behind the quantity. Obviously you should not ignore those small UI bugs also :-)

I am really fan of awarding testers for their good work. It may be any kind of appreciation. May be a small gift or just few kind words of appreciation from the lead or manager. This will keep the spirit alive in testers to find new and quality bugs.

If you are a team leader, manager or even a team member, what do you think is the best way to keep motivation alive in software testers?