Ricardo Striquer Soares (ricardophp)http://twitter.com/rstriquer http://www.programabrasil.org/
e teste de software
http://www.youtube.com/watch?v=dUhDggoNktA
O teste do software a investigao do software a fim de fornecer informaes sobre sua qualidade em relao ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.
Teste de software
Definio de testeDefinio de teste de software
Frases celebres!
- Depois validamos com o cliente;
- O prazo est apertado, vamos deixar os testes para a prxima faze;
- Depois escrevo o caso de teste;
Por que escrever testes. - Ao entregar o software vc ter certeza de que fez um trab bem feito e poder atender o cliente sem a preocupao de saber se o app ir ou no estar funcionando;
- O aplicativo fica mais bem documentado pois o teste um mtodo de documentao;
- Voc ter um atestado de qualidade do aplicativo que poder ser validado por outros.
Resultados conhecidos!
- No, eu fiz o que voc mandou!
- O software podia estar incorreto, mas ele no pode ter estragado seu computador!
- Na minha mquina funcionou.
Por que escrever testes. - Ao entregar o software vc ter certeza de que fez um trab bem feito e poder atender o cliente sem a preocupao de saber se o app ir ou no estar funcionando;
- O aplicativo fica mais bem documentado pois o teste um mtodo de documentao;
- Voc ter um atestado de qualidade do aplicativo que poder ser validado por outros.
http://pt.wikipedia.org/wiki/ISO_9126
ISO/IEC 9126 ou NBR ISO/IEC 9126.
Objetivos de teste de softwares
1) Garantir que os objetivos tcnicos e de negcios que guiaram o design e o desenvolvimento foram conquistados;
2) Autenticar que o software funciona como esperado;
3) Garantir que o processo (aplicativo) pode ser implementado com as mesmas caractersticas (esperadas);
Objetivos do xUnit
Rpido ao se executar
Isolado
Composto
Fcil de escrever
Fcil de aprender
Fcil de Ler
Simples de executar
Fcil de escrever
If it's hard to learn how to write tests, developers will not learn to write them. Easy to write.
If tests are not easy to write, developers will not write them. Easy to read.
Test code should contain no extraneous overhead so that the test itself does not get lost in noise that surrounds it. Easy to execute.
The tests should run at the touch of a button and present their results in a clear and unambiguous format. Quick to execute.
Tests should run fast so so they can be run hundreds or thousands of times a day. Isolated.
The tests should not affect each other. If the order in which the tests are run changes, the results of the tests should not change. Composable.
We should be able to run any number or combination of tests together. This is a corollary of isolation.
Fcil de aprender a se escrever X Fcil de escrever
Isolados X Rpido de executar
Problemas padro de um xUnit
There are two main clashes between these constraints:
Easy to learn to write versus easy to write.
Tests do not generally require all the flexibility of a programming language. Many testing tools provide their own scripting language that only includes the minimum necessary features for writing tests. The resulting tests are easy to read and write because they have no noise to distract you from the content of the tests. However, learning yet another programming language and set of programming tools is inconvenient and clutters the mind. Isolated versus quick to execute.
If you want the results of one test to have no effect on the results of another test, each test should create the full state of the world before it begins to execute and return the world to its original state when it finishes. However, setting up the world can take a long time: for example connecting to a database and initializing it to a known state using realistic data.
'Padro de um autntico xUnit
http://flylib.com/books/en/1.104.1.24/1/
Funcionalidade padro de um xUnit
Era uma vez ....
EM 1997 Kent Beck e Eric Gamma estavam em um voo de Zrich para Atlanta seguindo para a OOPSLA Conference. Kent Beck possua um framework de testes para SmallTalk e gostaria de aprender Java, Erich Gamma possua um computador com Java e gostaria de ter um framework de testes parar Java, quando o Avio chegou a Atlanta Kent Beck havia aprendido Java de Erick Gamma e eles haviam escrito a verso inicial do que hoje conhecido como jUnit.
A concorrncia
http://ojesunit.blogspot.com/
http://code.google.com/p/snaptest/
(Mdulo Lime)http://www.symfony-project.org/book/1_2/15-Unit-and-Functional-Testing
http://www.simpletest.org/
- xUnit- Apoiado pela Zend utilizado no Zend Framework
Perg: Voc testar Mtodo privado?
Eu li o post sobre como testar o mtodo privado (http://pt.efreedom.com/Question/1-34571/whats-the-best-way-of-unit-testing-private-methods) porque eu normalmente no test-los, eu sempre pensei que mais rpido para testar apenas mtodo pblico que ser chamado de externas do objeto.
Voc testar Mtodo privado?ou se eu sempre testar Mtodo privado?Esta questo foi originado stackoverflow.com
Resposta
Eu fao o teste de unidade no mtodos privados. Um mtodo particular um detalhe de implementao que deve ser escondido para os usurios da classe. Testando mtodos particulares quebras de encapsulamento.
Se eu achar que o mtodo particular grande ou complexa ou suficientemente importante para exigir que seus prprios testes, eu apenas coloc-lo em outra classe e torn-la pblica l (Mtodo Object).Em seguida, posso facilmente testar o mtodo anteriormente-pblico-privado mas-agora que agora vive na sua prpria classe.
Quem utiliza phpUnit
http://logging.apache.org/log4php/
http://www.s9y.org/
http://www.osoa.org/display/PHP/SOA+PHP+Homepage
http://www.phpunit.de/wiki/WhoUsesPHPUnit
http://propel.phpdb.org/
http://gtk.php.net/
http://agavi.org/
http://www.phing.info/
Caractersticas principais
http://www.phpunit.de/wiki/Features
Pontos importantes:
TAGs para descritivos de funes@depends@dataProvider@expectedException@expectedException
Classe PHPUnit_Framework_AssertassertArrayHasKey(); assertClassHasAttribute(); assertClassHasStaticAttribute(); assertContains(); assertContainsOnly(); assertEmpty(); assertEqualXMLStructure(); assertEquals(); assertFalse(); assertFileEquals(); assertFileExists(); assertGreaterThan(); assertGreaterThanOrEqual(); assertInstanceOf(); assertInternalType(); assertLessThan();assertLessThanOrEqual(); assertNull(); assertObjectHasAttribute(); assertRegExp(); assertStringMatchesFormat(); assertStringMatchesFormatFile(); assertSame(); assertSelectCount(); assertSelectEquals(); assertSelectRegExp(); assertStringEndsWith(); assertStringEqualsFile(); assertStringStartsWith(); assertTag(); assertThat(); assertTrue(); assertType(); assertXmlFileEqualsXmlFile(); assertXmlStringEqualsXmlFile(); assertXmlStringEqualsXmlString
Teste prtico Simples.
http://ticomqi.blogspot.com/2010/08/capitulo-4-escrevendo-testes-para.html
Exemplo 4.1: operaes com matrizes Testes com PHPUnit
Teste prtico Complexo.
phpunit CarrinhoTest.phpPHPUnit 3.4.15 by Sebastian Bergmann.
..FF..
Time: 1 second, Memory: 12,25Mb
There were 2 failures:
1) CarrinhoTest::test_Carrinho___aplicaPromocaoPagamentoEntrega with data set #2 (0.05, false, 10, 20, 100, 0, 120)Failed asserting that matches expected .
/srv/htdocs/sandbox/ricardo/FC/trunk/www/fc/phpunit/CarrinhoTest.php:28
2) CarrinhoTest::test_Carrinho___aplicaPromocaoPagamentoEntrega with data set #3 (0.05, true, 10, 20, 100, 0, 120)Failed asserting that matches expected .
/srv/htdocs/sandbox/ricardo/FC/trunk/www/fc/phpunit/CarrinhoTest.php:28
FAILURES!Tests: 6, Assertions: 6, Failures: 2.
Exemplo de resultado de erro
Top Related