Friday, July 4, 2008

Automation Testing: Is this the answer?

All those who are familiar with the field of testing must be knowing what automation testing is. Lets dig into it and find what it is all about and Is Automation testing an answer to every testing problem.

Automation Testing is testing which is done without human intervention.This is the testing assisted with software tools and does not require any operator input,analysis or evaluation.
No doubt we have many advantages like:
  • accelerates the test time
  • easy to do repetitive testing
  • possibility of exhaustive testing
  • Better test path coverage
With all these benefits in mind,I can't stop but thinking is Automation an answer to every testing problem? Is it applicable everywhere?The answer according to me is NO. And why is that?

Simply because automation testing has many sub challenges, and is restricted by a number of questions:
  • Is the time frame permissible of creating an automation testing framework? Although this makes the testing faster but creating framework takes time.
  • Do we have the skilled and sufficient resources to do the job? If the resources are not there,nothing can happen and obviously they cannot be hired at the blink of the eye.
  • Does automating will make the process really faster? If a project is not big enough,is it a complete waste spending time and energy on it?
  • Up to what level the automation needs to be done?
I have seen this happening a number of times that the decision of using automation and the extent of it becomes debatable. In certain scenarios, we have implemented automation partially because completely automating the task was not worth the effort.

So whatever testing is decided to be used:manual or automated or a super mix,I believe one should always measure all the pros and cons of the process.

Tuesday, July 1, 2008

QA Glossary continued

In continuation to my last post,I have come up with some other terms and their meanings:
  • Alpha Testing: Testing performed at the developer's site by a group that is independent of the design team and all the issues so found are fixed before going into production.
  • Beta Testing: Testing performed at customer's site by one or more end users in order to know how good a software is,whether they should go into the production with this software or not. The software has to meet the acceptance criteria as set by the customer.
  • Software testing methodology: It is a three step process: a) Creating a test strategy b) Creating a test plan c) Executing tests.
  • Test strategy: The test strategy is a formal description of how a software product will be tested. A test strategy is developed for all levels of testing, as required. The test team analyzes the requirements, writes the test strategy and reviews the plan with the project team. The test plan may include test cases, conditions, the test environment, a list of related tasks, pass/fail criteria and risk assessment.
  • Clear box testing: Same as white box testing. It is a testing approach that examines the application's program structure, and derives test cases from the application's program logic.
  • Boundary value analysis: Boundary value analysis is a technique for test data selection. A test engineer chooses values that lie along data extremes. Boundary values include maximum, minimum, just inside boundaries, just outside boundaries, typical values, and error values. The expectation is that, if a systems works correctly for these extreme or special values, then it will work correctly for all values in between. An effective way to test code, is to exercise it at its natural boundaries.
  • Ad hoc testing: Random testing which is performed with no formal documents so it is a least formal testing approach.
Blog Widget by LinkWithin