Sobre o que vc pode fazer no seu local de trabalho talvez isso lhe ajude
http://blog.fragmental.com.br/2008/03/24/testadores-ageis/
Sobre os testes, o principal é vc pegar algum teste que vc ja repetiu e utilizar uma ferramenta para reproduzir e avaliar a resposta.
um exemplo muito simples seria o teste de uma aplicação web usando curl (um browser modo-texto que cospe o html lido) e diff (programa para analisar diferenças entre 2 arquivos.
1- criação do teste
setup
curl http://endereco/a/b/c/d > master.01.dat
2- execucao
setup
curl http://endereco/a/b/c/d > test.01.dat
diff test.01.dat master.01.dat
Se o resultado do diff for que os dois arquivos são identicos, o seu teste passou.
isto vale para um GET http mas pode valer para um POST. por exemplo vc pode submeter um valor para um formulario e verificar a resposta e ver que dado inserido está la.
perceba que eu coloquei um comentario “setup”. antes de qq teste vc faz um setup para colocar o sistema no ponto que vc quer. por exemplo vc vai testar um cadastro de cliente, por exemplo. Vc apaga os clientes e testa unicamente a inclusao de um cliente. Ou vc pode inserir no banco uns mil clientes para testar a paginacao.
o curl consegue fazer coisas bem complexas com http, incluindo upload de arquivo. O problema dessa abordagem é a forma de analisar que algo deu certo: um diff pode pegar coisas triviais como um numero randomico em um link que certamente sera diferente - desses usados para evitar cache - ou entao pode pegar uma data que sera diferente da data gravada no arquivo master.
Nada impede que o seu arquivo master seja um template, com algo como
<html><head><title>%titulo%</title>...
e vc substitui o titulo pelo que vc espera. mas ainda assim o diff nao eh nada amigavel. A forma como vc vai testar a resposta certamente vai passar por uma analise do html de resposta em certos elementos do html.
Existem excelentes ferramentas como Watir, Selenium, etc, que vc pode executar os requests e analisar a resposta de uma forma mais apropriada mas tudo tem como base o conceito que te passei.
SE o software for algo não web o principio vale o mesmo, muda a interação e a forma de verificar se ele fez o que se espera. por exemplo se eh um programa que escreve na stdin basta capturar e ler como arquivo. se ele manipula o banco de dados uma consulta SQL pode verificar se ele fez o que eh certo. se ele cria um arquivo basta ver se ele criou.
O mais dificil eh organizar os testes. Se vc puder utilizar algo como cucumber ficara bem interessante.
curl http://endereco/a/b/c/d > test-.01.dat