Upload
vuongdien
View
214
Download
0
Embed Size (px)
Citation preview
O que são testes?
• São pontuais;
• São previsíveis;
• São finitos;
• São (ou deveriam ser) simples;
O que são testes?
• Testes não verificam completamente a
saída de um programa pois as entradas
são finitas;
• Testes não são perfeitos para validação,
mas são a melhor opção para isso;
Caixa branca
• Testes de unidade de código;
• Testam parte da solução;
• São escritos e mantidos pelo
programador e devem estar sempre
atualizados;
Caixa branca
• Quando construímos um teste de
unidade, o principal desafio é isolar a
classe ou intervalo de código que vai
ser testado, para que nenhuma outra
seja envolvida noclasse
teste
do sistema
e influencie no resultado
esperado.
Caixa preta
• Testes funcionais e de aceitação;
• Testes de integração;
• Testam a solução completa;
Cobertura dos testes
Sem cobertura Com cobertura
• Nova release =códigos sem testes;
• Não há segurança de que as alterações não irão correr malem outros pontos da aplicação;
• Problemas, muitosproblemas;
Cobertura dos testes
• Dificilmente
cobertura de
consegue-se 100%
testes, contete-se
de
com
99%;
• Quanto maior a cobertura dos testes na
aplicação maior a confiabilidade nas
alterações e novos recursos;
Cobertura dos testes
bons testes• Aplicações cobertas por
propiciam:
– Facilidade de manutenção;
– Facilidade para inclusão de novos membros
na equipa de desenvolvimento;
– Menos problemas e redução de custos em
manutenções;
– Telefone silencioso nas madrugadas!
Testes são necessários
• Necessário verificar o código, sempre;
• Necessário garantir que os requisitos
estão implementados (e corretos);
• Necessário ter segurança para realizar
alterações;
Testes são necessários
• Necessário testar rápido para entregar
rápido;
• Aumento da garantia de qualidade da solução
com testes;
• Necessário ser criativo para explorar o
máximo possível com testes, não usar testes
mentirosos;
Garantir o que se faz
• Cliente:
– Isto não funciona funciona!
• Programador:
máquina estava– Mas como!? Na minha
funcionar ontem.
Garantir nosso trabalho, ser
profissional
mundo
não há
Realidade!
• O cliente não quer
saber se X é Y. Ele
Errado!
• Numcapitalizado
tempo para testes;
• O cliente não quer
saber como é feito, ele
quer que funcione
acontecer que
quer que o problema
não aconteça e se
seja
corrigido rapidamente;
conseguee
sem
• Não se
qualidade
confiabilidade
testes;
Rapidez nos
resultados.
Repetição
exaustiva de
testes.
Facilita o
armazenamento e
execução dos casos
de testes.
Geração de
logs de
execuções.
Reprodução
fiel dos testes.
Beneficios
Ferramentas Open Source
ProjectKoach - http://www.projectkoach.com/
php-collab - http://www.php-collab.org
GanttProject - http://ganttproject.biz/
]project-open[ - http://www.project-open.com/
OpenWorkbench - http://www.openworkbench.org/
XPlanner - http://www.xplanner.org/
WebCollab - http://webcollab.sourceforge.net/
Mindquarry - http://www.mindquarry.com/
Ferramentas Open Source
TestLink - http://www.teamst.org/
QaManager - http://qamanager.sourceforge.net/
rth - http://www.rth-is-quality.com
TestMaster - http://testmaster.sourceforge.net/
Testitool - http://majordojo.com/testitool/
Test Case Web (TCW) - http://tcw.sourceforge.net/
Testopia - http://www.mozilla.org/projects/testopia/
Ferramentas Open Source
Mantis - http://www.mantisbt.org/
Bugzilla - http://www.bugzilla.org/
Scarab - http://scarab.tigris.org/
BugNET - http://www.bugnetproject.com/
TRAC - http://trac.edgewall.org/
Redmine – http://www.redmine.org
Ferramentas Open Source
TortoiseCVS http://www.tortoisecvs.org/
WinCVS - http://www.wincvs.org/
Subversion - http://subversion.tigris.org/
darcs - http://darcs.net/
Ferramentas Open SourceTestes Funcionais
Selenium (WEB) - http://www.openqa.org/selenium/
actiWATE (WEB) - http://www.actiwate.com/
Marathon (Java Swing) - http://www.marathontesting.com/marathon/
Watir (WEB) - http://wtr.rubyforge.org/
Canoo WEBTest (WEB) - http://WEBtest.canoo.com/
Apodora (WEB) - http://www.apodora.org/
Abbot (Java Swing) - http://abbot.sourceforge.net
SoapUI (WEBServices) - http://www.soapui.org/
SOAPSonar Personal Edition (WEBServices) - http://www.crosschecknet.com/
LISA WS-Testing (WEBServices) -http://www.itko.com/site/products/lisa/ws_testing.jsp
Squish for KDE (Linux) - http://www.froglogic.com
SharpRobo (WinForm .NET) - http://confluence.public.thoughtworks.org/display/SHRO/Home
FitNesse - http://fitnesse.org/
Ferramentas Open SourceTestes Carga, Stress e Performance
OpenSTA - http://www.opensta.org/
JMeter - http://jakarta.apache.org/jmeter/index.html
Microsoft WEB Application Stress Tool -
http://www.microsoft.com/downloads/details.aspx?FamilyID=e2c0585a-062a-
439e-a67d-75a89aa36495&DisplayLang=en
WEBLOAD - http://www.WEBload.org/
The Grinder - http://grinder.sourceforge.net/
Ferramentas Open SourceTestes Carga, Stress e Performance
OpenSTA - http://www.opensta.org/
JMeter - http://jakarta.apache.org/jmeter/index.html
Microsoft WEB Application Stress Tool -
http://www.microsoft.com/downloads/details.aspx?FamilyID=e2c0585a-062a-
439e-a67d-75a89aa36495&DisplayLang=en
WEBLOAD - http://www.WEBload.org/
The Grinder - http://grinder.sourceforge.net/
JUnit
• É um frameworkutilizado
de testes
na criação
unitários
altamente eficaz e
e
de
largamente
execução
códigos;
Um teste com
JUnit
public class HelloWorldTest {
@Test public void testMultiplication() {
//Testar se 2*2 = 4
assertEquals ("Multiplication", 4, 2*2);
}
}
Selenium
• Ferramenta para realização de testes
integrados e de aceitação;
• Usado no browser, grava todos os passos
executados na aplicação diretamente no
browser e os executa de forma
automatizada no browser;
JMeter
• Propósito principal para testes de carga
e stress de aplicações;
• Pode ser usado para testes integrados e
de aceitação;
Clover
• Ferramenta para análise de cobertura
dos testes na aplicação;
• Integrado a várias IDEs - Eclipse
• Existem diversas opções semelhantes:
JCoverage, Cobertura, etc;