2. Automação de teste é...
“o uso de software para controlar a execução do teste de software, a
comparação dos resultados esperados com os resultados reais, a
configuração das pré-condições de teste e outras funções de controle
e relatório de teste.”
- nosso querido wikipedia
3. Teste de Software? Hã?
“O teste do software é a investigação do software a fim de fornecer
informações sobre sua qualidade em relação ao contexto em que ele
deve operar. Isso inclui o processo de utilizar o produto para encontrar
seus defeitos.”
- nosso querido wikipedia
4. Sobre o teste de software
Teste de software
Técnicas funcionais caixa-branca, caixa-preta, regressão
Técnicas não funcionais desempenho, carga, usabilidade, confiabilidade, recuperação, segurança
Fases unidade, integração, sistema, aceitação, operação
Artefatos caso de teste, plano de teste
5. Principais tipos de testes(fases)
Unidade
Testes de comportamento/funcionalidade da menor parte de um software
Integração
Tem o objetivo de encontrar falhas provenientes da integração interna dos componentes de um
sistema
Sistema
Tem o objetivo de executar o sistema sob ponto de vista de seu usuário final, varrendo as
funcionalidades em busca de falhas em relação aos objetivos originais
Aceitação
Grupo restrito verifica se o comportamento do software está de acordo com o solicitado
Operação
Administradores do ambiente final realizam testes como os de aceitação para a entrada do
software em ambiente de produção
6. Ciclo de vida do teste
Planejamento
Preparação
Especificação
Execução
Entrega
Planejamento
Nesta fase é elaborada a Estratégia de Teste e o Plano de Teste.
Preparação
Etapa de preparação do Ambiente de teste
Especificação
Etapa onde é elaborado/revisado os casos de testes e roteiros de testes
Execução
Os testes são executados e os resultados obtidos são registrados.
Entrega
Projeto é finalizado e toda documentação é finalizada e arquivada.
8. Em desenvolvimento ágil, surgiu algumas
técnicas como:
• TDD
Test drive Development,
primeiro se escreve o teste de unidade depois se desevolve a funcionalidade
• BDD
Behavior Driven Development
Testes de comportamento da aplicação, juntamente com a colaboração de dev, QA e
negócios
11. Testes de unidade
“Testam apenas uma classe ou método, verificando se seu
comportamento está de acordo com o desejado. Em testes de
unidade, verificamos a funcionalidade da classe e/ou método em
questão passando o mínimo possível por outras classes ou
dependências do nosso sistema.”
- caelumBook
12. Instalação e Configuração
• Via nugget package command, instale o xunit no seu projeto
através destes comandos:
• Install-Package xunit
• Install-Package xunit.runner.visualstudio
• Ou pesquise pelo nugget.
13. Para visualizar os testes...
• Utilize a Test Explorer do próprio Visual Studio
• Test > Windows > Test Explorer
• Ou alguma ferramenta de terceiros
14. Pontos Chave do XUnit
Declaração do FACT
• Testes que são sempre verdadeiros. Eles testam condições invariáveis.
Declaração do THEORY
• Testes que são verdade apenas para um determinado conjunto de dados.
Uso correto da classe ASSERT
15. public class Assert
“Uma asserção é uma afirmação: alguma invariante que em
determinado ponto de execução você quer garantir que é verdadeira.
Se aquilo não for verdade, o teste deve indicar uma falha, a ser
reportada para o programador, indicando um possível bug.”
- caelumBook
O teste do software é a investigação do software a fim de fornecer informações sobre sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar seus defeitos.
Vide: https://pt.wikipedia.org/wiki/Teste_de_software
Caixa-branca
Também chamada de teste estrutural ou orientado à lógica, a técnica de caixa-branca avalia o comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código fonte do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados, teste de ciclos, teste de caminhos lógicos, códigos nunca executados.
Caixa-pretaTambém chamada de teste funcional, teste comportamental, orientado a dado ou orientado a entrada e saída, a técnica de caixa-preta avalia o comportamento externo do componente de software, sem se considerar o comportamento interno do mesmo.[4] Dados de entrada são fornecidos, o teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido. Como detalhes de implementação não são considerados, os casos de teste são todos derivados da especificação.
RegressãoEssa é uma técnica de teste aplicável a uma nova versão de software ou à necessidade de se executar um novo ciclo de teste durante o processo de desenvolvimento. Consiste em se aplicar, a cada nova versão do software ou a cada ciclo, todos os testes que já foram aplicados nas versões ou ciclos de teste anteriores do sistema. Inclui-se nesse contexto a observação de fases e técnicas de teste de acordo com o impacto de alterações provocado pela nova versão ou ciclo de teste. Para efeito de aumento de produtividade e de viabilidade dos testes, é recomendada a utilização de ferramentas de automação de teste, de forma que, sobre a nova versão ou ciclo de teste, todos os testes anteriores possam ser executados novamente com maior agilidade.
Técnicas não funcionais
São técnicas utilizadas para verificar a operação correta do sistema em relação a casos inválidos ou inesperados de entrada