A apresentação discute a importância dos testes de unidade e TDD, incluindo como eles melhoram o design de classes, qualidade do código e acoplamento. Também aborda níveis de teste, mock objects e quando não usar TDD.
Apesar de muitas empresas ainda não utilizarem técnicas de teste de software para o desenvolvimento dos seus produtos, alegando o atraso, o tempo ou o custo para esta tarefa, as pesquisas indicam que os testes ajudam na garantia de qualidade do software.
Demonstração de TDD com JUnit sobre um algoritmo de árvore binária.
Conteúdo referente à disciplina Engenharia de Software do curso de Ciência da Computação do Centro Universitário de Belo Horizonte (UniBH), ministrada pelo professor Paulo Henrique Ladeira.
Atenção à órdem dos commits, eles identificam o processo de geração de assinaturas dos métodos, geração de testes e implementação do código.
Código da árvore binária inspirado no seguinte respoitório: https://github.com/Renants/Arvore
Código disponível no repositório https://github.com/guiAlberto/JUnit-Sample
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
Slides de apresentação realizada no dia 24/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Testes de software e sua importância
- Behavior-Driven Development
- Exemplo prático utilizando o Visual Studio 2015 e o framework SpecFlow
Slides de apresentação realizada no dia 27/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Dificuldades técnicas na implementação e execução de testes automatizados
- Mocking Test
- Exemplos no Visual Studio 2015
Apesar de muitas empresas ainda não utilizarem técnicas de teste de software para o desenvolvimento dos seus produtos, alegando o atraso, o tempo ou o custo para esta tarefa, as pesquisas indicam que os testes ajudam na garantia de qualidade do software.
Demonstração de TDD com JUnit sobre um algoritmo de árvore binária.
Conteúdo referente à disciplina Engenharia de Software do curso de Ciência da Computação do Centro Universitário de Belo Horizonte (UniBH), ministrada pelo professor Paulo Henrique Ladeira.
Atenção à órdem dos commits, eles identificam o processo de geração de assinaturas dos métodos, geração de testes e implementação do código.
Código da árvore binária inspirado no seguinte respoitório: https://github.com/Renants/Arvore
Código disponível no repositório https://github.com/guiAlberto/JUnit-Sample
Behavior-Driven Development (BDD) - QA Ninja Conf 2016Renato Groff
Slides de apresentação realizada no dia 24/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Testes de software e sua importância
- Behavior-Driven Development
- Exemplo prático utilizando o Visual Studio 2015 e o framework SpecFlow
Slides de apresentação realizada no dia 27/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Dificuldades técnicas na implementação e execução de testes automatizados
- Mocking Test
- Exemplos no Visual Studio 2015
Apresentação sobre TDD(Test-Driven Development) realizada em 18/04/2013.
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
- Testes unitários e o Visual Studio 2015
Slides da palestra "Testando aplicações Flex com Selenium" que apresentei no FlexMania 2011.
O código-fonte e a gravação da pelestra estão disponíveis no meu blog: http://victorserta.com.br/blog/2011/07/11/material-palestra-testando-aplicacoes-flex-com-selenium-do-flex-mania-2011/
Slides de apresentação realizada para o GDG São Paulo no dia 23/05/2016.
Tópicos abordados:
- Testes de software
- Selenium: uma visão geral
- Como utilizar o Selenium na plataforma .NET
- Selenium e boas práticas
- Exemplos práticos
Test-Driven Development (TDD) - MSP Coding DayRenato Groff
Slides de apresentação realizada durante o MSP Coding Day, evento realizado em Santos-SP no dia 23/07/2016.
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
Tópicos abordados:
Uma experiência de implementação de testes unitários usando JUnit 4. Entendendo como testes unitários podem ajudar na evolução do código, e como podemos construindo testes unitários melhores.
Apresentação sobre TDD(Test-Driven Development) realizada em 18/04/2013.
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
- Testes unitários e o Visual Studio 2015
Slides da palestra "Testando aplicações Flex com Selenium" que apresentei no FlexMania 2011.
O código-fonte e a gravação da pelestra estão disponíveis no meu blog: http://victorserta.com.br/blog/2011/07/11/material-palestra-testando-aplicacoes-flex-com-selenium-do-flex-mania-2011/
Slides de apresentação realizada para o GDG São Paulo no dia 23/05/2016.
Tópicos abordados:
- Testes de software
- Selenium: uma visão geral
- Como utilizar o Selenium na plataforma .NET
- Selenium e boas práticas
- Exemplos práticos
Test-Driven Development (TDD) - MSP Coding DayRenato Groff
Slides de apresentação realizada durante o MSP Coding Day, evento realizado em Santos-SP no dia 23/07/2016.
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
Tópicos abordados:
Uma experiência de implementação de testes unitários usando JUnit 4. Entendendo como testes unitários podem ajudar na evolução do código, e como podemos construindo testes unitários melhores.
Breve presentación en power point sobre la temática de la solicitud de un semáforo para una comunidad costarricense, para el curso "vivir la democracia".
El grado sexto presente un nivel de
indisciplina debido a la pluralidad del
grupo, debido a esta situación ay poca
convivencia con las personas de su
alrededor y se dificulta su aprendizaje.
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
A importância de testes de software já deveriam ser um consenso entre times de desenvolvimento. Contudo ainda há profissionais que não compreendem o valor deles, um dos motivos é que de fato muitos softwares possuem testes mas continuam a apresentar bugs a cada entrega. Isso ocorre porque é comum os testes garantirem o funcionamento do código, mas não das funcionalidades como um todo. Na apresentação será abordado como equilibrar testes unitários, de componentes e de integração organizando-os através de uma visão mais direcionada ao negócio, features e histórias do que apenas ao código implementado.
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
Características da Programação Orientada por Objetos (POO).
Conceito de Classe, Atributos, Métodos, e Eventos.
Conceito de Objeto.
Conceito de Encapsulamento.
Conceito de Visibilidade de Classes, Métodos e Atributos.
Diagramas de Classe.
O ambiente de trabalho do Visual C#.
Objetos básicos e outras características básicas da linguagem do Visual C# e respetivo ambiente de trabalho.
Test-Driven Development (TDD) utilizando o framework xUnit.netRenato Groff
Tópicos abordados:
- Motivos que contribuem para a falta de testes
- Quais os impactos da falta de testes?
- Visão geral dos diferentes tipos de testes na área de software
- Testes unitários e a plataforma .NET
- TDD: conceitos gerais
- Implementação de um exemplo prático
- Data-Driven Unit Testing
- Testes unitários e o Visual Studio 2015
2. Sobre
Esta apresentacao teve como base o livro de TDD da
casa do codigo, a minha experiencia profissional e as
dicas dadas por profissionais mais experientes. Onde o
objetivo da mesma nao e ensinar como usar o
junit, mas sim, a importancia dos testes, e o que eles
podem agregar de positivo em projetos de software.
3. Sumario
1. Teste de unidade
2. TDD
3. Design de classes
4. Qualidade do codigo
5. Coesao
6. Acoplamento
7. Mock Objects
8. Niveis de teste
9. Quando nao usar TDD
4. 1-Teste de unidade
Os sistemas sao geralmente grandes e complexos
Um teste de unidade nao se preocupa com o sistema
todo, mas sim com um “pedaco” dele.
Geralmente esses pedacos sao classes.
Logo, os teste de unidade serao responsaveis pelas
classes.
5. 2-TDD
Foco no teste e nao na implementacao
Codigo nasce testado
Simplicidade
Melhor reflexao sobre o design de classes
Sem TDD vamos obter o mesmo resultado?
Feedback dos teste
6. 3-Design de classe
Para muitos TDD e um guia para um bom design de
classes
Feedback
“A pratica de TDD nao guia o desenvolvedor para um
bom projeto de classes de forma automatica;A
experiencia e o conhecimento do desenvolvedor sao
fundamentais para criar o software orientado a objeto”
7. 4-Qualidade do codigo
Testes podem apresentar problemas no codigo
Teste deve ser algo facil e produtivo
Todas as boas praticas que o desenvolvedor aplica no
codigo de producao pode ser utilizado no codigo de
teste
8. 5-Coesao
Classes que fazem muita coisas sao dificeis de serem
mantidas
Principio da responsabilidade unica
Uma classe coesa e aquela que possui apenas uma unica
responsabilidade
Em sistemas orientado a objetos a ideia e sempre
buscar classes coesas
Feedback
9. 6-Acoplamento
Dizemos que uma classe esta acoplada a outra quando
existe alguma relacao de dependencia entre elas
Mudanca nesta classes podem impactar negativamente
Inversao de controle e injecao de dependencia
Repassando a dependencia para uma abstracao
Cenario mais preparado para os impactos que as
possiveis mudancas podem causar
Classes altamente coesas e pouco acopladas sao dificeis
de serem projetadas
10. 7-Mock Objects
Em um teste onde existem classes integradas, se o teste falhar
, como saber qual objeto gerou o erro
“Objetos duble”
Objetos que simulam o comportamento de outras
Simula objetos que surgem como dependencia durante os testes
Mocks “escondem” problemas que so seriam vistos em producao
Classes que representam entidades, servicos, utilitarios, ou
qualquer coisa que “encoste” na infraestrutura nao deve ser
mockada
Classes complexas e trabalhosas devem ser mockadas, por
exemplo,classes de infraestrutura
Mockito
11. 8-Niveis de teste
Unidade
Testa modulos( classes ) de forma independente do restante do
sistema
Integracao
Testa os modulos funcionando de forma conjunta
Botton-up
Top-down
Sistema
Testa todo o sistema mas se preocupa apenas com aspecto gerais
Aspectos funcionais
Regra de negocio
nao-funcionais
Expectativa do cliente
12. Fim
Sites e livros recomendados
http://www.guj.com.br
http://www.CasaDoCodigo.com.br
http://www.caelum.com.br/online
https://github.com/clauvane
https://github.com/rponte