Software development is one of leading sectors all over the world for decades due to
the advancement of the hardware technologies in parallel to software technologies. Modern
design capabilities have combined these technologies and created “smart devices”. Recently
we hear this word “Smart” quite often, “smart phones, smart watches, smart houses, smart
TVs, smart cards, smart technologies etc.”. What makes those devices smart? Smart
features come from the software that utilizes the hard features of the devices and makes
them serve to the benefit of us.
Software acts as the soul of the devices and tells them how to behave in certain
conditions. Nowadays there are few devices left totally mechanical, software is used almost
in every electrical/electronic device. Because of the fact that there is high demand for
software development and software development requiring people having high technical
capability it is an expensive production process. Furthermore it has a complex production
procedure which is called SDLC (Software Development Life Cycle).
Substantial costs occur during the software life cycle. Starting from the first release
plan of your software you have to take into consideration change, maintenance and
execution costs all. One of the major costs incurring during SDLC is the testing cost which is
estimated as the 23% of total software development cost, allocated as QA (Quality
Assurance) expenditures within IT budget. It is vital to test a software when you first develop
it. Later, you have to test the software in any change either it is a development or a
configuration change based on the impact of the change on the software. Even when there
are no changes, companies/institutions want to be sure that their software is functioning
correctly, so they set periodic test runs to increase service availability.
Software testing is literally labor intensive work. Sometimes it requires more effort to
test a software than the effort spent for development. Any changes made on the code,
configuration or environment may require testing of the same cases again and again and
again. Testing the same features over and over again may lead to a weariness and
blindness on the tester side. There has to be some methods developed to decrease the cost
of repetitive testing of the same cases and increasing the maturity level of software in terms
of having less bugs before going live.
“Test Automation” which is becoming extremely popular for the last few years which
seems to have an impact on increasing the software quality and lowering the costs of
software testing, one of the most costly phases of the software development process. Test
automation is the process of software testing using test automation tools in order to compare
expected results and actual results of specific actions.
Compared to manual testing, test automation is a more expensive and time
consuming process. Because of the fact that test automation is costly companies/institutions
keep test automation limited to specific test scenarios which are more likely to be repetitive.
When deciding on the scenarios to be automated you have to take into consideration several
parameters like test resources, project deadline, regression tests, integration tests etc.
Although it is a trend the proportion of the automated tests to the total testing efforts doesn’t
exceed 20%. However automated testing is a promising field that the IT industry is investing
in this field a substantial amount of resources and money.