Projeto – PSA 20101 TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO Testes Funcionais: Caixa Branca: também chamado de estrutural ou orientado à lógica, é uma técnica de teste que usa a perspectiva interna do sistema para modelar os casos de teste. No teste de software, a perspectiva interna significa basicamente o código fonte, ou seja, 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, etc. Testes Funcionais: Caixa Preta: é um teste de software para verificar a saída dos dados usando entradas de vários tipos. Tais entradas não são escolhidas conforme a estrutura do programa. Quanto mais entradas são fornecidas, mais rico será o teste. A técnica de caixa-preta avalia o comportamento externo do componente de software, sem se considerar o comportamento interno do mesmo. 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. Testes Funcionais: Caixa Preta Essa técnica é aplicável a todas as fases de teste: Teste unitário Teste de integração (Não será executado) Teste de sistema Teste de aceitação Teste de operação Testes Funcionais: Caixa Cinza (Não será executado): é um mesclado do uso das técnicas de caixa-preta e de caixa-branca. Isso envolve ter acesso a estruturas de dados e algoritmos do componente a fim de desenvolver os caso de teste, que são executados como na técnica da caixa-preta. manipular entradas de dados e formatar a saída não é considerado caixa-cinza pois a entrada e a saída estão claramente fora da caixa-preta. A caixa-cinza pode incluir também o uso de engenharia reversa para determinar por exemplo os limites superiores e inferiores das classes, além de mensagens de erro. Este teste não será implementado ou executado, pois não contribui para alcançar a missão de avaliação. Testes Funcionais: Regressão (Não será executado): é uma técnica do teste de software que consiste na aplicação de testes à versão mais recente do software, para garantir que não surgiram novos defeitos em componentes já testados. Se, ao juntar o novo componente ou as suas alterações com os componentes restantes do sistema surgirem novos defeitos em componentes inalterados, então considera-se que o sistema regrediu. Este teste não será implementado ou executado, pois não contribui para alcançar a missão de avaliação. Testes não Funcionais: Desempenho: é o mesmo que teste de carga, mas com o intuito de testar o software a fim de encontrar o seu limite de processamento de dados no seu melhor desempenho. Testes não Funcionais: Carga: é usado para verificar o limite de dados processados pelo software até que ele não consiga mais processá-lo. Também é conhecido como teste de estresse. Testes não Funcionais: Usabilidade: tem por objetivo verificar a facilidade que o software possui de ser claramente compreendido e manipulado pelo usuário. Verificase o sistema utiliza manuais, help on-line, assistentes eletrônicos, etc. Testes não Funcionais: Confiabilidade: no contexto da engenharia de software, é um teste em que são validadas as entradas, saídas e operações efetuadas em relação aos requisitos definidos previamente para a aplicação. Sua função é a de assegurar que o software recebe corretamente os dados, realiza o processamento adequadamente e apresenta os resultados corretamente. Testes não Funcionais: Recuperação (Não será executado): é um teste utilizado para verificar a robustez e também a capacidade de um determinado software para retornar a um estado operacional após estar em um estado de falha. Este teste não será implementado ou executado, pois não contribui para alcançar a missão de avaliação. Fases: Teste de unidade: é toda a aplicação de teste nas assinaturas de entradas e saídas de um sistema, consiste em validar dados válidos e inválidos via I/O (entrada/saída) sendo aplicado por desenvolvedores ou analistas de teste. Uma unidade é a menor parte testável de um programa de computador. Em programação procedural, uma unidade pode ser uma função individual ou um procedimento. Idealmente, cada teste de unidade é independente dos demais, o que possibilita ao programador testar cada módulo isoladamente. Fases: Teste de integração (Não será executado): é a fase do teste de software em que módulos são combinados e testados em grupo. Ela sucede o teste de unidade, em que os módulos são testados individualmente, e antecede o teste de sistema, em que o sistema completo (integrado) é testado num ambiente de produção. Este teste não será implementado ou executado, pois não contribui para alcançar a missão de avaliação. Fases: Teste de sistema: é uma fase do processo de teste de software e de hardware em que o sistema já completamente integrado é verificado quanto a seus requisitos num ambiente de produção. Está no escopo da técnica de teste de caixa-preta, e dessa forma não requer conhecimento da estrutura (lógica) interna do sistema. É um teste mais limitado em relação aos testes de unidade e de integração, fases anteriores do processo de teste, pois se preocupa somente com aspectos gerais do sistema. Fases: Teste de aceitação: é uma fase do processo de teste em que um teste de caixa-preta é realizado num sistema antes de sua disponibilização. Tem por função verificar o sistema em relação aos seus requisitos originais, e às necessidades atuais do usuário. É geralmente realizado por um grupo restrito de usuários finais, num ambiente parecido com o deles. Fases: Teste de operação: é a fase de teste em que o teste é conduzido pelos administradores do ambiente final onde o sistema ou software entrará em ambiente produtivo. Vale ressaltar que essa fase é aplicável somente a sistemas de informação próprios de uma organização, cujo acesso pode ser feito interna e/ou externamente a essa organização. Nessa fase de teste devem ser feitas simulações para garantir que a entrada em produção do sistema será bem sucedida. Envolve testes de instalação, simulações com backup e restore das bases de dados, etc. Em alguns casos um sistema entrará em produção para substituir outro e é necessário garantir que o novo sistema continuará garantindo o suporte ao negócio. Artefatos: Caso de teste: é um conjunto de condições usadas para teste de software. Ele pode ser elaborado para identificar defeitos na estrutura interna do software, através de situações que exercitem adequadamente todas as estruturas utilizadas na codificação; ou ainda, garantir que os requisitos do software que foi construído sejam plenamente atendidos. Podemos utilizar a ferramenta de casos de uso para criar e rastrear um caso de teste, facilitando assim identificação de possíveis falhas. Artefatos: Plano de teste: é um documento com uma abordagem sistemática para o teste de sistemas como hardware ou software. Ele geralmente consiste numa modelagem detalhada do fluxo de trabalho durante o processo.