Codechef4u is a community for computer professionals,by computer professionals,just like you; who loves sharing and helping each others,Join them
Share your post

Exploratory Testing


In project meeting my manger asked a question to Quality assurance person “why you are performing exploratory testing if you covered all functionality in automated scripts?”

QA person politely replied,

1. Do you believe automated test script covers new functionality and new system changes?
2. Do you believe automated test script covers new changes impact on other modules?
3. Do you believe application is ready for release after running automated scripts successfully?

And in last answer is you require exploratory testing for quality product.

In this article I will describe in detail what is exploratory testing, why it required exploratory testing for quality software.

What Is Exploratory Testing? 

Real exploratory testing is not the same as ad hoc testing; it’s much more sophisticated and organized than that. The term was originally coined by Kem Caner in his book, Testing Computer Software, to describe an alternative approach to traditional formal planning. He implored testers to “Trust your instincts.” But he also warned that you should “always write down what you do and what happens when you run exploratory tests.”
 In the early 1990s, ad hoc was too often synonymous with sloppy and careless work.
         But in exploratory testing by leveraging your insight and targeting your exploration, new issues will be discovered. This is not a random bug hunt. You’ve established your boundaries and the scope of your testing session upfront. In order to get the maximum benefit from your discoveries you have to generate reports of your findings.
          In addition to verifying software and discovering issues, exploratory testing can help identify useful test cases for future regression testing. An exploratory testing session can be the bridge between unscripted and scripted testing for your project.
          Exploratory testing is an organized, well-structured approach that lets testers excel in the ever changing landscape of agile development.

Exploratory testing in short:

=> is a hands-on approach.
=> Testers check system on the fly.
=> Minimum planning and maximum test execution.
=> Black box testing.
=> is an important tool in any experienced tester’s kit.
=> It complements scripted testing activities.


Why Exploratory Testing?


If you’re not sure what to test next, or you want to dig deeper into a complex piece of software, then it’s time for some exploratory testing.


Difference between Scripted Test Execution and exploratory testing:

Scripted Test Execution:

This is usually a non-thinking activity where testers executes the test steps and compare the actual results with expected results. Such test execution activity can be automated does not require much cognitive skills.


Exploratory testing:

Exploratory testing, on the other hand, is all about discovery, investigation and learning. This emphasizes on personal freedom and responsibility of the individual tester. 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.


Though the current trend in testing is to push for automation, exploratory testing is a new way of thinking. Automation has its limits.

And obviously in the modern age of agile development, with software being updated and released faster than ever, exploratory testing is nothing short of essential.       

Agile Testing

Agile Software Testing

In this article I will explain in detail what is agile testing and advantages using agile testing.

Definition (Reference Wikipedia)

Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace.


Agile, as its name suggests, simply proposes to be a faster, more priority & risk focused, and more flexible, adaptable, and efficient way of conducting the complicated business of software production.  And, of course, it is not without its critics.

In the agile approach:

      => Testing and coding are done incrementally and interactively

      =>  Developers and testers should always meet and compare notes daily

      =>  Building up each feature until it provides enough value to release to production

      =>  Requires a depth of continuous collaboration between stakeholders- mangers, developers, testers and customers throughout the production process  

      =>  Reducing the need for robust testing teams

      =>  All types of testing covers

Advantages of Agile Testing: 

1.  Agile Testing Saves Time and Money.

2.  Less Documentation.

3.  Regular feedback from the end user.     

4.  Daily meetings can help to determine the issues well in advance.

In the usual waterfall model the sequential phases are: 

As you can see in the diagram above, in a waterfall process the “design” and “implementation” stages exist prior to, and distinct from, the “verification” and “maintenance” stages.  This split between software developers and software testers, positioning them as separate entities at different points along a production cycle, is one of the fundamental problems that Agile seeks to resolve.


Agile Scrum Process:

In the Scrum method of agile software development, work is confined to a regular, repeatable work cycle, known as a sprint or iteration. Scrumsprints used to be 30 days long, but today many teams prefer shortersprints, such as one-week or two-week sprints.
The sprint backlog is a list of tasks identified by the Scrum team to be completed during the Scrum sprint. During the sprint planning meeting, the team selects some number of product backlog items, usually in the form of user stories, and identifies the tasks necessary to complete each user story.
The Scrum Master is to constantly refine the schedule and direction and keep the team
on track.

Advantages over classic waterfall model:

1.  Scrum relies on more frequent touch points between developers and testers,

Testers and BAs, and BAs and Developers to make sure any changes are

Properly communicated.

2.  Daily standup calls keeps activities aligned, remove obstacles if any team member facing.

3.  Knowledge sharing is better in this process.

4. Strong project management keeps team on track and active.

Agile is constantly evolving. Today there are emerging methodologies like BDD, TDD, ATDD, Kanban and many more.

Functional Testing

In this tutorial I will explain functional testing with sample example.


Functional testing means testing the application against business requirements, client requirements.

In Detail:

Functional Testing:

  •     is a quality assurance (QA) process
  •     is the testing technique which used to test features
  •     It test functioning of the system / software


The registered user should be able to login to the Leave web application, only admin users
Has access for administration panel. General user can only apply for leave and check their leave details.
Master users (Manager) can approve/reject general users (Employee) leaves.


The functions are described in the FRS or SRS documents

Major Functional Testing Techniques are:

1. Unit Testing 
2. Integration Testing
3. System Testing  
4. Regression Testing
5. Acceptance Testing
6. Smoke Testing
7. Sanity Testing
8. Exploratory Testing 
9. Ad hoc Testing
10. Localization Testing
11. Interface Testing
12. Usability Testing
13. Globalization Testing