Friday, October 28, 2011
Why is testing taking so long?
Saturday, January 29, 2011
Test Reviews - An efficient way to validate test coverage
Thursday, December 30, 2010
Are you doing software testing or quality assurance?
- design the product?
- hire programmers?
- decide which bugs to fix?
- allocate staff?
- set the schedule?
- fix problems in code?
- decide on raises?
- allocate training budgets?
- produce manuals?
- choose the development model?
- fire some programmers?
- control the budget?
- set the company's strategic direction?
Monday, December 27, 2010
Are you testing or checking?
Checking Is Confirmation
Checking is something that we do with the motivation of confirming existing beliefs. Checking is a process ofconfirmation, verification, and validation. When we already believe something to be true, we verify our belief bychecking. We check when we’ve made a change to the code and we want to make sure that everything that worked before still works. When we have an assumption that’s important, we check to make sure the assumption holds. Excellent programmers do a lot of checking as they write and modify their code, creating automated routines that they run frequently to check to make sure that the code hasn’t broken. Checking is focused on making sure that the program doesn’t fail.
Testing Is Exploration and Learning
Testing is something that we do with the motivation of finding new information. Testing is a process of exploration, discovery, investigation, and learning. When we configure, operate, and observe a product with the intention of evaluating it, or with the intention of recognizing a problem that we hadn’t anticipated, we’re testing. We’re testing when we’re trying to find out about the extents and limitations of the product and its design, and when we’re largely driven by questions that haven’t been answered or even asked before. As James Bach and I say in our Rapid Software Testing classes, testing is focused on “learning sufficiently everything that matters about how the program works and about how it might not work.”
Sunday, November 28, 2010
QA testing in agile world - Attitude matters most!
- Understand your development team first. Study each engineer and adjust your way of acting (communication, management etc..) according to the team you are working on
- Do not act as a quality police. Everyone is responsible for quality. It is your task to guide the others NOT finding faults and complain
- Be as flexible as you can in all situations
- Be quick on everything - learn, design, implement, configure, deploy quickly and test fast
- Be innovative
- Identify highly risked features first and start hunting bugs
Finally;
- CREATE A VALUE as a tester for your organization and BUILD the CONFIDENCE among the team!
Monday, September 13, 2010
Creating value with testing
Wednesday, August 18, 2010
Process vs Tools and Technologies - What should Sri lankan QA community be concerned with?
Tuesday, February 2, 2010
Importance of logging in QA testing
A detailed log will surely help to minimize the effort required to reproduction of issues. There are intermittent failures, random application crashes which are extermely hard to regenerate in successive attempts. If the AUT is written in a way in which all the major user events are logged, then the root causes of such random failures can be traced easily.
A comprehensive log is a useful test report. After a test run, you can store the log somewhere safely and use it as the test report. Specially, in agile test processes, test teams do not find sufficient time to record test results and maintain detailed test reports due to the short release cycles. If the AUT provides good set of logs, it will help testers to use them instead of maintaining separate test logs.
IMHO, comprehensive logging is a must have feature of any of the enterprise-scale application. At WSO2, this has been identified as a extremely important tool and the necessary modifications are in-progress to improve logging in WSO2 Carbon SOA middleware suite.
Saturday, October 24, 2009
Key factors for successful test automation
- Dedication to automation (Instead of treating it as a spare-time activity)
- Commitment by the entire team (rather than just one or two testers),
- Commitment to automation from the start (rather than trying to automate a manual process later)
- Making use of correct tools/frameworks/technology
- Allocating sufficient time and resources
Sunday, July 5, 2009
Complexity of middleware testing
1. Target audience/end users of middleware apps
Most middleware products are developed for the use of highly technical tasks and they are used by programmers. When it comes to SOA middleware, product end-users are technically savy engineers. Therefore when testing them, QA/test teams should understand the purpose of it, target audience and act accordingly.
2. Complexity of applications
The developers understand the use cases of middleware applications when implementing them. Obviously without knowing the requirements, they can't be implemented. Therefore the developers of middleware applications gets the knowledge of the application under development while it is being developed regardless of the complexity of it.
This is not applicable for QA/testers. In agile like processes, due to the release crunch, QA gets no time to learn the use of middleware. They do not even get time to derive test cases/scenarios. So, QA teams are forced to test applications with these limitations.
3. Test Automation
Majority of the middle ware application tests can be automated. However, it cannot be done by overnight. Without having a better understanding of the applications, no body can automate them. Automation is highly effective for middleware testing.
Having said that, I must emphasize that, automation is not the solution for everything. Specially in middleware testing, human intervention is critical. If you are a middleware tester, you must live with the application and its surrounding technologies. You must learn the use cases of middle ware app and apply them to derive more and more test scenarios. In my career, 80% of highly severe bugs were uncovered by exploratory testing.
It takes times to learn the technologies behind middleware apps. It takes time to understand the use of them. A content management system or a telco billing application can be learned and understand with considerably less time and effort. However, middleware applications are different and deriving use cases are not simple.
If you have any doubts about the complexity of middleware testing, the best way to clarify them is to involve in middleware testing for few days. Work with middleware test teams. Then you can understand the real situation and issues behind it.
Sunday, June 14, 2009
Importance of defect isolation
True! A good bug report should provide with the information to reproduce the issue. It is QA tester's responsibility to specify the exact steps of bug recreation. Isolating the environment and conditions at which the issue occurred are extremely important components of a defect report.
Sadly I have seen some people ignore these important practices due to tight schedules and rush testing processes. No! In any case, even with management push towards quicker feedback of the products under test, ignoring these vital practices are totally unacceptable. Your bug report mirrors the professionalism of software QA testing job. Developers do not waste time or jump in to assumptions by reading your bug report. It provides all the necessary details. It consists of logs, screen shots when they are required.
A good QA tester must isolate the issue first. He never reports bugs just by seeing an exception in server console. He attempts multiple instances to recreate and isolate the issue. Some failures can be repeated easily but some requires more effort. Then prepare a detailed defect report.
As Cem Karner said, "there are no intermittent software errors. The problem may appear rarely but each time the exact conditions occur, the behavior will repeat".
More to follow....
Friday, September 19, 2008
QA role in Hackathons and Risk based testing
If you are familiar with hackathons or if you are a tester, you may certainly raise the following questions.
- What is the role of QA in a Hackathon
- How to deal with the regression issues and frequent builds
It certainly is a challenge to involve in testing and quality assurance during a hackathon. There is a high risk of breaking the features in between builds. However if you manage it properly, Hackathons are good opportunities for QA and testing teams to get more familiar with the AUT (Application under test) hence uncovering more and more bugs, learn and share the knowledge of practical use cases of products etc..
Lets try to find out answers for the above questions from QA user point of view.
What is the role of QA in a hackathon?
As defined in the wikipedia, Hackathon is an event when programmers meet to do collaborative software development. Testers, BAs, PMs and other astake holders may also take part in it.
The primary role of QA/test teams in a hackaton is reproduce the issues which were reported by them. This involves functional issues, cross browser issues as well as cross platform related bugs. The reporter of the bug knows the way to recreate it than any other.
This will greatly reduce the time to reproduce bugs and help developers to get them fixed effectively.
In most occasions, the AUT is started in debug mode in testers machines and someone familiar with the code, debug the source remotely to get the issues fixed quickly.
Whenever a bug is marked as resolved, testers get an update from source repository (in our case SVN), build the source and verify and close or reopen the bug.
Hackathons are ideal places to discuss the usage scenarios/patterns of the product being developed. QA/testers can identify more and more scenarios and apply them in testing. This help to uncover a lot of hidden bugs.
It is an essential for QA/testers to have and set the source code up in their IDEs. If you are familiar with the code and know the root cause of the issue, you are free to go ahead and fix the bug by your self. We did it and worked well :)
One of the most important requirement to have source with QA during a hackathon is, QA can go through a module with some developer and try to find out the places where bugs can be introduced. This glass box testing approach is one of the most important feature in a hackathon.
During a hackathon, QA find bugs and report it immediately to the relevant developer and get it fixed. QA should make sure to track all issues using the bug tracking system though some of the issues are reported verbally.
Dealing with regression issues and frequent builds
While fixing more and more bugs it is essential to ensure that the regression issue are minimum. Regression testing is the most difficult task for QA in a hackathon. Whenever a set of bugs are fixed, you get an update from source repository and build in your machine. Then you verify the bug and close it.
When you do this, there is a high chance to missing more and more regression issues. So, as a QA tester, how do you deal with it?
Before starting a hackathon, you should have a proper idea about the most critical features of the AUT. You should identify the areas which can cause most damages to the recognition of the product as well as for your customers. Then you should keep in mind that these critical features are not regressed in any new build use for testing. In other wards, though you test 4-5 new builds per day, you must ensure that the highly risked features are verified and tested properly.
Risk based testing is the most suitable approach to ensure the critical features are not broken during a hackathon.
It is important to get a few labeled builds for testing during a hackathon. We could not do this in Data service 1.0 hackathon though. We cannot guarantee the quality of the builds taken from users local repositories. Therefore, to make sure the AUT is in a proper state, it will be essential to have a labeled QA release built from a pure build environment and release for testing.
After all, Data Service 1.0 hackathon went really well and helped to deliver the product on time with acceptable quality!
Friday, July 4, 2008
Why is quick learning ability extremely important for QA?
it is THE most important and must-have skill for a QA engineer. Why is that?
In theory, a QA cycle is supposed to start with test analysis and design. Requirements specifications/design specs are the ultimate references to derive test scenarios and
test cases in test analysis/design phase. But those reference materials are not always available in early stages of the development and in some projects you don't even see such docs.
Even if you have the documented requirements and design docs, you don't get the feel of actual business flow and scenarios until you play around with the
working instance of the product. There were thousands of test cases written by referring to functional specs, however the real business
scenarios may have missed due to the lack of understanding of the domain and nature of the product.
When the initial builds are released for QA testing, you will get a better knowledge of the product and its domain while you play around the features of product.
You will start to realize the functional flows documented in test scenarios (which were derived using requirement specs) and sudden requirements to aware of new technologies will arise.
However you don't get much time to learn every bits of business domain and related technologies with the frequent test build releases.
This is where your quick learning ability comes in to play. If QA engineer possesses;
-grasp things with minimum time
-eager to find out how it works
-Love to read
then I always believe such QA engineer is capable to move forward in a challenging environment.
Remember, QA is expected to act as user's advocates and should know what and how the product functions. Therefore catching the things as quickly as possible
and apply them in testing are key to deliver a successful QA outcome.