One of the most common situation, how will you start Testing without any functional requirement specification or any related documents? No wonder there are sometimes these kind of situations, ex. Resource attrition, no-documentation-with-agile-projects, etc. The only hope in these situations is ‘Exploratory Testing’. Since there are no documents to refer, refer the application directly 😉 Explore it, Test it. Gradually the flows make sense and we actually start testing it. Other option is to sit with Business analysts and developers to get application understanding – listening to experts instead of reading a document.
Automation is mostly employed for regression, i.e. to gauge the impact of changes on ‘already-working’ functionality. The same Manual test cases are automated and executed. Automation is for confirmation. What if you want to find issues/defects? Yeah! Manual testing is the first approach. After all, end-user is not a scripted machine. Simulating end-user behavior, testers explore the application with some alternate flows & on-the-fly data.
Exploratory Testing has gained popularity in past few years. There are several studies and has also received much of professional attention from the industry. Exploratory Testing gives power to the tester together with responsibility; it offers great freedom and opportunity to the tester for exploring and identifying areas for improvement. But why do we need exploratory testing if we’re already doing a good level of scripted testing? We’re writing test scenarios in each story, running them on different builds until they all pass, and we’re also running them in regression to make doubly sure that the product is still working. Sound good and thorough – what’s the point in doing more software testing on top of that? Well, there are a few good reasons to do exploratory testing in addition to the regular, scripted testing. It exposes the underlying issues within your product, app or website and allows testers to literally explore the functionality.
Industry is sure moving to Automated Test execution. But as I say – Automation is confirmatory, Manual tests are more exploratory. Only Automation testing is not enough, so testers need to be good at finding bugs. “Finding Bugs” is one characteristic that differentiates a good tester from a mediocre tester. The basic principle is to combine things that programmers didn’t expect with common failure modes of your platform. Always remember, Testers don’t break the software. It is already broken. You just need to find those broken pieces and help make the software better.
Exploratory testing, is all about discovery, investigation and learning. It’s like Machine learning, in concept. It empathizes on learning and adaptability. While the software is being tested, the tester learns things that together with experience and creativity generates new good tests to run. It emphasizes on personal freedom and responsibility of the individual tester. Exploratory testing is done without any specific plans and schedules. Test cases are not created in advance but testers check system on the fly. They may note down ideas about what to test before test execution. The focus of exploratory testing is more on testing as a “thinking” activity.
Defect Leakage is natural. It’s common. If you build a software, bugs will be there. Similarly even if you Test a software, you cannot prove their absence. But we can do our best to eliminate maximum of them. Typically in most of the projects even if you complete functional testing (system testing) without any time & cost constraints, still UAT team (Business) manages to catch some more bugs. Any idea why? There has to be something missing in the system test coverage. What is it?
Quality – Why is this word so important for your software? Software teams today involve a number of people: developers, testers, support engineers, designers, product managers, and executive stake holders. A low quality software impacts all of these or in other words everyone in the team is responsible for the quality of software delivered. When we look into the overall effectiveness or cost manual testing still have a pivotal role to play. Unfortunately, very little discussion is only happening on how to improve efficiency of manual testing instead most of discussions are happening on how to increase the level of automation. Many of us would advocate the fact that Manual Testing is no longer needed, and I know it well why they think so. It is mostly because of the drawbacks and challenges associated with Manual Testing.