Testiautomaation kehys on joukko työkaluja, joita käytetään automatisoidun ohjelmistotestauksen suorittamiseen. Testausautomaatiokehykset tarjoavat merkittäviä etuja manuaaliseen testaukseen verrattuna, ja niitä käytetään yleisesti nopeassa ohjelmistokehityksessä. Näiden kehysten avulla ohjelmistokehittäjät voivat luoda testejä, suorittaa testejä ja analysoida testituloksia. Testiautomaatiokehys voi perustua koodiin, dataan, graafiseen käyttöliittymään (GUI) tai näiden yhdistelmään.
Testausautomaatiokehyksiä tarvitaan nopean ohjelmistokehityksen tarpeiden täyttämiseksi. Klassisessa vesiputouksen ohjelmistokehityksen elinkaaressa ohjelmistotestaus oli erillinen vaihe toteutuksen tai koodauksen jälkeen. Sellaisina ihmisen suorittamat testit olivat tyypillisiä.
Monet kehitystiimit ovat korvanneet vesiputousmallin erilaisilla ketterillä ohjelmistokehitysmenetelmillä, jotka yleensä vaativat nopeaa, iteratiivista kehitystä. Nopea kehitys on luonut tarpeen nopealle testaukselle. Testiautomaatiokehyksen avulla ohjelmistotiimi voi suorittaa usein automaattista testausta koodikannalla. Esimerkiksi sen sijaan, että vaadittaisiin erillistä testausvaihetta kehityksen jälkeen, testiautomaatiokehystä käyttävä tiimi voi halutessaan suorittaa täydellisen joukon testejä yön yli sekä pienempiä automatisoituja testejä koko päivän ajan, kun lähdettä muutetaan koodi.
Yleisimmin käytetty kehys on koodipohjainen kehys, jota käytetään valkoisen laatikon testaamiseen. Koodipohjaiset kehykset vaativat kehittäjiä kirjoittamaan pieniä koodinpätkiä yksikkötestien muodossa ohjelmistojen toimivuuden tai suorituskyvyn testaamiseksi. Koodipohjaisia kehyksiä käyttävien kehittäjien on huolehdittava ohjelmistonsa kirjoittamisesta testattavalla tavalla-eli koodi on moduloitava siten, että yksikkötesti voi kutsua koodinpätkän ja vahvistaa tuloksen. Nämä kehykset sisältävät tyypillisesti xUnit -toteutuksen, jossa “x” vaihtelee testattavan ohjelmointikielen mukaan.
GUI-pohjaisia testikehyksiä käytetään mustan laatikon testaamiseen käyttäen ohjelmistotyökalua, kuten käyttäjä, hiiren ja näppäimistön syötteiden kautta. Ne voivat koostua komentosarjoista, jotka kehittäjät ovat kirjoittaneet käyttääkseen useita toimintoja, tai ne voivat koostua työkaluilla luoduista komentosarjoista, kuten tallennus- ja toistoskripteistä. Yksi mahdollinen haittapuoli näille kehyksille on, että komentosarja rikkoutuu aina, kun käyttöliittymä muuttuu. Jotkin graafisen käyttöliittymän automaatiokehykset voivat luoda komentosarjan, jota kehittäjä voi muokata käyttöliittymän muutosten yhteydessä, ja toiset saattavat vaatia käyttäjää luomaan uuden tallennus- ja toistoistunnon.
Datapohjaiset testikehykset suorittavat ohjelmistotestausta käyttämällä dataa, ja nämä testit toimivat tyypillisesti tietotaulukoiden kanssa, joissa määritetään sekä tulot että lähdöt. Tiedot voidaan säilyttää eri paikoissa, kuten tietokannoissa, laskentataulukoissa tai tekstitiedostoissa. Skriptejä voidaan kirjoittaa ohjelmistomenetelmien suorittamiseksi ottamalla syötteet parametreiksi ja vahvistamaan ohjelmistomenetelmän palautusarvo lähtöä vastaan. Kaikki muu, mitä voidaan muuttaa, kuten ympäristö, jossa testi suoritetaan, voidaan myös tallentaa tietojen kanssa ja erottaa testikomentosarjasta. Näiden kehysten tarjoama etu on tietojen ja logiikan erottaminen, mikä johtaa usein alhaisempaan pitkäaikaiseen ylläpitoon.