Nos tempos de hoje, o crescimento e desenvolvimento da tecnologia é mais do que notável, o que antes ocupava vários metros2, arquivando papéis e mais papéis, em grandes gavetas, hoje resumimos a um HD, que pode ser levado para qualquer lugar dentro de uma bolsa, ou, a um servidor, que ocupa menos de 2 ou 3 metros2. Antes se usava a máquina de escrever para redigir uma carta, e o destinatário levava de 1 a 3 dias para receber a informação. Hoje utilizamos o e-mail, ou até mesmo o SMS, sendo que ambos são recebidos em uma fração de segundos ou no máximo em minutos.
A exigência hoje é se adaptar/preparar, pois a tecnologia está batendo na porta principalmente das empresas, porque os clientes querem cada vez mais facilidade e comodidade na hora de utilizar os serviços oferecidos. Baseadas nessas adaptações, a exigência por atualização e qualidade, cresce gradativamente. Afinal, disponibilizar um sistema com erro ocasiona atraso e prejuízo, e ainda é pior quando esse erro é identificado pelo cliente, porque além do prejuízo, gera a falta de credibilidade para a empresa perante o cliente, causando mais problemas em um futuro próximo, principalmente por conta da alta concorrência do mercado.
Baseados nesses fatos, as companhias optam por criar um departamento de qualidade de software (quando possuem seu próprio departamento de desenvolvimento), ou por contratar uma fábrica de software que tenha um departamento de qualidade de software.
O departamento de qualidade de software (quality assurance) é responsável por assegurar o perfeito funcionamento do sistema, seja ele qual for.
São utilizadas algumas metodologias e vários tipos de testes para a realização dos mesmos, assegurando assim a qualidade do software.
Tudo começa com a documentação a ser desenvolvida pelo analista de teste. Nela são descritas os tipos de testes que serão aplicados no sistema desenvolvido, as tabelas envolvidas e a finalidade do sistema. Nesta documentação, também tem que constar a data do desenvolvimento e/ou alteração, a versão do software e os envolvidos no projeto (desenvolvedores, solicitante, motivo e afins). Após desenvolver essa documentação, o analista de testes, desenvolve o plano de testes a ser executado pelos testadores, onde estará descrito passo-a-passo o que o testador deve fazer para executar a verificação do sistema.
Hoje, para ganhar tempo, temos alguns softwares para a automatização destes testes, alguns exigem um conhecimento técnico mais profundo, como o JUnit (www.junit.org), PHPUnit (www.phpunit.de) e Selenium (www.seleniumhq.org), todos open source.
E temos outros softwares, que exigem licensa para utilização, porém não exigem um conhecimento técnico tão grande, como por exemplo, o WAPT (www.loadtestingtool.com) e o Rational da IBM® (www.ibm.com/software/br/rational/). O diferencial destes programas é a amplitude que eles atingem, como por exemplo, a execução de vários tipos de testes em simultâneo e a geração de relatórios com gráficos, tempo de resposta e probabilidade de falha caso algo inesperado ocorra.