Een testscript is een script voor het testen van bijvoorbeeld software.
Een testscript is een onderdeel van gestructureerd testen. Testscripts kunnen handmatig en geautomatiseerd worden uitgevoerd. Een script bestaat uit een aantal testcases, die in een logisch volgorde zijn geplaatst. Voor een testcase moet eerst een goede beginsituatie gemaakt worden. Als die eenmaal aanwezig is kunnen een aantal testcases achter elkaar afgespeeld worden. Een combinatie van handmatige en geautomatiseerde scripts is uiteraard mogelijk en in de praktijk het meest gebruikelijk. Geautomatiseerde scripts zijn korte programma's. Hiervoor zijn gespecialiseerde hulpmiddelen beschikbaar zoals: HP Unified Functional Testing(UFT) voorheen bekend als QTP (Quicktest professional), SilkTest, Rational Robot. Ook kan het geschreven worden in een bekende programmeer- of scripttaal. In de ideale situatie worden in een geautomatiseerd testscript alle testcases getest, waarbij alle requirements getest worden. Het script zou ook moeten doorlopen bij fouten zodat het volledig wordt uitgevoerd.
Het grote voordeel van scripts is dat het sneller gaat met minder menselijke ingrepen en dus minder menselijke fouten. Scripts, zeker als ze geautomatiseerd zijn, zijn ook uitstekend bruikbaar bij regressietesten of stresstesten.
Een belangrijk voordeel is ook dat er logisch wordt nagedacht, het script dwingt dat af. Er moet worden nagedacht over de beginsituatie, over de actie en over het verwachte resultaat. Daarbij wordt met name gekeken naar de volledigheid. Worden alle requirements getest?
Een nadeel van geautomatiseerd testen is dat het maken van geautomatiseerde tests veel tijd kost, die er niet altijd aan besteed wordt, waardoor ze vaak slecht geschreven zijn en ze vaak stoppen als ze afgespeeld worden, zonder dat duidelijk wordt wat er nu precies fout ging.
Als een systeem door mensen gebruikt gaat worden lijkt het goed om het gedeeltelijk ook door mensen te handmatig laten testen. Met geautomatiseerde scripts worden alleen die zaken gevonden waarvoor ze zijn ontworpen. Tijdens een handmatige test kunnen ook zaken opvallen waar niet expliciet naar gezocht werd, zoals gebruikersvriendelijkheid, performance, schermontwerp etc.
Men moet niet in de val lopen om meer tijd te besteden aan het maken van een geautomatiseerde test, dan het uitvoeren van de handmatige tests zou kosten, tenzij het in de planning ligt de test vaker uit te voeren, bijvoorbeeld tijdens regressie of stresstesten.