Tuesday, February 12, 2013

To be a great software tester, you need to develop following 16 characteristics within you:

1. Be Skeptical Don’t believe that the build given by developers is bug free or quality outcome. Question everything. Accept the build only if you test and find it defect free. Don’t believe anyone whatever be the designation they hold, just apply your knowledge and try to find errors. You need to follow this till the last testing cycle.
2. Don’t Compromise on Quality Don’t compromise after certain testing stages. There is no limit for testing until you produce a quality product.  Quality is the word made by software testers to achieve more effective testing. Compromising at any level leads to defective product, so don’t do that at any situation.
3.Ensure End User Satisfaction Always think what can make end user happy. How they can use the product with ease. Don’t stop by testing the standard requirements. End user can be happy only when you provide an error free product.
4. Think from Users Perspective Every product is developed for customers. Customers may or may not be technical persons. If you don’t consider the scenarios from their perspective you will miss many important bugs. So put yourself in their shoes. Know your end users first. Their age, education even the location can matter most while using the product. Make sure to prepare your test scenarios and test data accordingly. After all project is said to be successful only if end user is able to use the application successfully.
5. Prioritize Tests First identify important tests and then prioritize execution based on test importance. Never ever execute test cases sequentially without deciding priority. This will ensure all your important test cases get executed early and you won’t cut down on these at the last stage of release cycle due to time pressure. Also consider the defect history while estimating test efforts. In most cases defect count at the beginning is more and goes on reducing at the end of the test cycle.
6. Never Promise 100% Coverage Saying 100% coverage on paper is easy but practically it is impossible. So never promise to anyone including clients about total test coverage. In business there is a philosophy – Under promise and over deliver.” So don’t goal for 100% coverage but focus on quality of your tests.
7. Be Open to Suggestions Listen to everyone even though you are an authority on the project having in depth project knowledge. There is always scope for improvements and getting suggestions from fellow software testers is a good idea. Everyone’s feedback to improve the quality of the project would certainly help to release a bug free software.
8. Start Early Don’t wait until you get your first build for testing. Start analyzing requirements, preparing test cases, test plan and test strategy documents in early design phase. Starting early to test helps to visualize complete project scope and hence planning can be done accordingly. Most of the defects can be detected in early design and analysis phase saving huge time and money. Early requirement analysis will also help you to question the design decisions.
9. Identify and Manage Risks Risks are associated with every project. Risk management is a three step process. Risk identification, analysis and mitigation. Incorporate risk driven testing process. Priorities software testing based on risk evaluation.
10. Do Market Research Don’t think that your responsibility is just to validate software against the set of requirements. Be proactive, do your product market research and provide suggestions to improve it. This research will also help you understand your product and its market.
11. Develop Good Analyzing Skill This is must for requirement analysis but even further this could be helpful for understanding customer feedback while defining test strategy. Question everything around you. This will trigger the analysis process and it will help you resolve many complex problems.
12. Focus on Negative Side as Well Testers should have test to break attitude. Concentrating on only positive side will almost certainly create many security issues in your application. You should be hacker of your project to keep other hackers away from it. Negative testing is equally important. So cover a good chunk of your test cases based on negative scenarios.
13. Be a Good Judge of Your Product Judge usually thinks whether it is right or wrong. Judge listens to both the sides. Same is applicable for testing. As a software tester if you think something as right, try to prove it why it is not wrong and then only accept it. You must have valid reason for all your decisions.
14. Learn to Negotiate Testers have to negotiate with everyone in all stages of project life cycle. Especially negotiation with developers is more important. Developers can do anything to prove that their code is correct and the defect logged by testers is not valid. It requires great skills to convince developers about the defect and get it resolved. Though some software testers think this is not our task but explaining the true impact of any issue is very helpful for developers to quickly understand the overall scenario and its implications. This requires years of practice but once you learn to negotiate you will gain more respect.
15. Stop the Blame Game It’s common to blame others for any defects which are not caught in testing. This is even more common when the tester’s responsibilities are not defined concretely. But in any situation never blame anyone. If an error occurs, first try to resolve it rather than finding someone to blame. As a human everybody makes mistake, so try to avoid blaming others. Work as a team to build team spirit.
16. Finally, Be a Good Observer Observe things happening around you. Keep track of all major and minor things on your project. Observe the way of developing the code, types of testing and its objective. Observe and understand test progress and make necessary changes if it is off the track in terms of schedule or testing activities. This skill will essential help you to keep yourself updated and ready with course of action for any situation.
Try to implement above 16 steps in your day-to-day testing activities. Practicing these steps will make you to excel in testing filed. Remember testing is not only a challenging job but it is a creative job too. Love your job and you will become the leader in your filed!

Tuesday, September 6, 2011

Test Cases for Search Functionality


Every web application by default will contain search feature in it. Many search engines’ main functionality is search feature.
The parameters to be considered while developing this feature or testing this feature are not limited. There are many factors which should be looked in when checking the coverage and usability of the search text box in the application.
Preparation before testing the search functionality
1. Note down the valid input details for the search feature.
2. Find out the minimum and maximum range.
3. Find out the depth of the search – document search, word in a document, image search
4. Should document search display the size of the document also? Similarly for image?
5. Any advanced search features like document or image type selection to refine the search are available?
6. General set of input which can be given are
a. A-Z
b. a-z
c. 0-9
d. { [ ( ~ ! @ # $ % ^ & * ` | \ : ” ; ’ < > ? , . / * - + ) ] }
e. Blank spaces


Work with these inputs when testing the search functionality


1. Special set of data which can be tried as input are
a. 2 blank spaces – These should be trimmed and error message should be displayed
b. Blank spaces followed with special characters or numbers
c. Special set like a* should give the results for all characters starting with a.
d. Enter any sql query like “Select * from hello;” without quotes and with quotes.
e. Search for tags.
f. Search for hyperlinks should be performed.
2. Search for documents. For advanced search feature, search with different valid and invalid types of documents. Document size should also be looked at.
3. Search for images with their sizes, names and types.
4. Any input data entered should return proper error message guiding to enter the correct input.
5. Text in different panels of the page should be searched. For example if left panel of the web page contains menus and hyperlinks. Hyperlinks in that area should be searched properly. If menus are also in scope then they should also appear in the search results.
6. Search response time should be checked.
7. Try pressing “Enter” key instead of clicking “Search” button.
8. Try searching in the page where a part of the page has form with Submit button.

Search results testing

DO not ignore the search results just because you got the results.
1. Check number of results in each page.
2. Check the count of the search results displayed in the page.
3. Check if the search results are displayed by popularity or most viewed or any other criteria mentioned in the requirements.
4. Proper messages should be displayed when there are no results.
5. Each search result should contain one link and few lines containing the searched keyword. Link should navigate to the page where the keyword exists.
6. Searched keyword should be highlighted in the search results page and also in the page where the keyword exists.
7. Pagination of the search results should be tested.
8. Number of search results display and the count should also be tested.