In software development, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes to predicted outcomes. Test automation can automate previous repetitive but necessary testing in a formalized testing process already in place, or add additional testing that would be difficult to perform manually. In other words, if an application has a robust automated test suite it is no longer necessary to actually run the application and test each new feature by clicking on links and buttons, creating or updating information, or uploading or manipulating assets.
Some software testing tasks, such as extensive low-level interface regression testing, can be laborious and time consuming to do manually. In addition, a manual approach might not always be effective in finding certain classes of defects. Test automation offers a possibility to perform these types of testing effectively. Once tests have been automated, they can be run quickly and repeatedly. Many times, this can be a cost effective method for regression testing of software products that have a long maintenance life. Even minor patches over the lifetime of the application can cause features to break which were working at an earlier point in time.
Katika maendeleo ya programu, majaribio ya kiotomatiki ni matumizi ya programu maalum (tofauti na programu inayopimwa) kudhibiti utekelezaji wa vipimo na kulinganisha matokeo halisi na matokeo ya utabiri. Utafiti wa kiotomatiki unaweza kuendesha majaribio ya awali ya kurudia lakini muhimu katika mchakato wa majaribio ya rasmi tayari, au kuongeza majaribio ya ziada ambayo ingekuwa vigumu kufanya kwa mkono. Kwa maneno mengine, ikiwa programu ina seti ya majaribio ya kiotomatiki, haifai tena kuendesha programu na kujaribu kila kipengele kipya kwa kubonyeza viungo na vifungo, kuunda au kusasisha habari, au kupakia au kudhibiti mali. Baadhi ya kazi za majaribio ya programu, kama vile majaribio makubwa ya chini ya kiwango cha interface, inaweza kuwa ngumu na inachukua muda kufanya manually. Kwa kuongezea, mbinu ya mkono inaweza kuwa si daima ufanisi katika kupata madarasa fulani ya kasoro. Automation mtihani inatoa uwezekano wa kufanya aina hizi za mtihani kwa ufanisi. Mara baada ya vipimo kuwa automated, wanaweza kuwa mbio haraka na mara kwa mara. Mara nyingi, hii inaweza kuwa njia ya gharama nafuu kwa ajili ya kupima regression ya bidhaa za programu ambayo kuwa na maisha ya muda mrefu ya matengenezo. Hata patches ndogo juu ya maisha ya maombi inaweza kusababisha vipengele kuvunja ambayo walikuwa kufanya kazi katika hatua ya awali katika muda.