In your life and field of software testing, you must have come across situation where you may have been asked to test an application in a very short span/period of time and deliver a report with a few or XX days. If you have not faced the situation then either you are lucky or you may not have worked on sufficient projects. A proper skilled testing requires lots of planning, effort to work/test the product with a substantial amount of time. In case if the project get's delayed then ultimately the testing phase gets a hit thereby decreasing the time span of testing cycle.
Now in order to deal with such limited time frame which is allowed/given for testing, you should make the best use of the time and resource available. Begin testing with an assumption that "Test all important features/items by prioritizing them (high to low) within the allowed time frame". From an economic stand point of view, it is always advisable to spend less time on the area of the application where the chances of finding defects/bugs is low. As a rule of thumb always prioritize the items i.e. what items/features to test first and in which sequence so that you spend limited time working/testing on areas that really doesn't matter or are low priority. Now for performing such task, you need to require doing some analysis, develop strategy & intuition based on your experience. Make sure, performing a risk analysis on items/features will help you to identify the areas or function where risk involved is high and that would be used most by the customers/end users.
Now while testing, it is always best suited to use a checklist which would help you to identify the key areas. Here is a checklist that I often use when I get limited time for testing an application:
Now in order to deal with such limited time frame which is allowed/given for testing, you should make the best use of the time and resource available. Begin testing with an assumption that "Test all important features/items by prioritizing them (high to low) within the allowed time frame". From an economic stand point of view, it is always advisable to spend less time on the area of the application where the chances of finding defects/bugs is low. As a rule of thumb always prioritize the items i.e. what items/features to test first and in which sequence so that you spend limited time working/testing on areas that really doesn't matter or are low priority. Now for performing such task, you need to require doing some analysis, develop strategy & intuition based on your experience. Make sure, performing a risk analysis on items/features will help you to identify the areas or function where risk involved is high and that would be used most by the customers/end users.
Now while testing, it is always best suited to use a checklist which would help you to identify the key areas. Here is a checklist that I often use when I get limited time for testing an application:
- Check the functionality that most frequently be used by End Users. Ask yourself, “Which functionality is most visible to the End users”.
- Try interacting with all project stakeholder (mostly client, if possible end users) and gather info from them as well which they think are most important to them and include them in your list of test item.
- Test the functionality which act as a interface with an external systems i.e. third party software. These are often classic areas where you can find integration level defects.
- Check the most complex functionality which you expect can be easy misunderstood and misinterpreted. Look for parts of the code that are most complex, and thus most prone to errors.
- Don't forget that the newly added functionality are often least unit tested. Make sure to include them in your test items list.
- Identify related functionality of similar projects that you may have worked on in past and that caused problems mostly in terms of the defect's raised by customers. So try to co-relate them with current project if possible and try to use it to your advantage.
- Identify related functionality of similar previous projects that you may have worked on in past that had large maintenance expenses. Correlate the cases/scenario of the project with the current application and try to use it to your advantage.
- Test the functionality where recent modification where done to code or may be the areas which includes bug fixes.
- Check the functionality which are part of the requirement and design that are unclear or poorly thought out.
- Make sure to gather info on the areas/section where development was done in a rush or panic mode or under extreme time pressure. Include those areas in your test item list.
- Test the section/areas that demand a consistent level of performance and reflect complex business logic.
- Test the most risky area of the application with the largest safety impact which if broken can bring down the entire application. Talk with developers if possible and gather info or take suggestion on the same is probably a good idea here.
- Check the part of the application where many programmers/developers have worked on.
- Check the functionality which are part of new tools, architecture or may be where new technology are involved.
- Test the area of the application where the largest financial impact lies on the end users and project stakeholders.
- Device tests that could cover multiple functionality/features at same time & high-risk-coverage at the minimum time.
- Try to find & test the functionality which in case if it returns incorrect output then it could result in bad publicity.
- Try to find & test the functionality which could cause most customer support complaints.
Note: This may not be a complete list to check/test under a tight schedule though it covers quite a lot of important areas that usually needs attention. Now being a software tester, I am always aware of the fact that using a checklist will allow you to think & perform testing in an more effective manner within a jam-packed schedule.
Happy Testing :)
Happy Testing :)
No comments:
Post a Comment