



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
projeto para um trabalho de conclusão de curso falando sobre teste de software
Tipologia: Manuais, Projetos, Pesquisas
1 / 6
Esta página não é visível na pré-visualização
Não perca as partes importantes!




Resumo - Capítulo 2 - Teste de Software Teste de software tem como principal objetivo descobrir e tratar defeitos que prejudiquem o funcionamento do software, e com isso garantir que todos requisitos sejam atendidos, garantindo a qualidade do produto final. Assim, o teste se relaciona a ideia de validação e verificação. A verificação analisa se os requisitos especificados estão sendo feito de maneira correta. Ou seja é feita uma análise dos requisitos para saber se está de acordo com o que foi especificado pelo cliente. Enquanto que a validação é uma atividade que tem como objetivo saber se o que foi entregue está de acordo com o que foi especificado pelo cliente. Garantir padrões de qualidade de software, não é algo simples, alguns fatores são importantes para que isso aconteça. De acordo com Sá(2010, p.21), são: “Fatores de Qualidade Operacional, caracterizado pela correção, eficiência ou desempenho, robustez, confiabilidade, usabilidade e validade do software; Fatores de Qualidade de Revisão, que está relacionado com a manutenção, evolução e avaliação do software;Fatores de qualidade de Transição, que estão relacionados com a instalação, reutilização com outros produtos.” Outro ponto que é importante mencionar é que existem padrões de qualidade no processo de desenvolvimento de software como a norma IEEE Std. 829/98, que especifica um conjunto de documentos para as tarefas de um projeto de teste de software. Além dessa existe também o TMM(Testing Maturity Model) que auxilia no processo de teste, e é baseado no modelo CMM(Modelo de Maturidade de Capacidade). Testar o software significar examinar o que acontece com um programa dado um conjunto de dados de entradas e verificar se o que aconteceu foi algo esperado. Existe um domínio de dados infinitos. É selecionado um conjunto de dados que servirá como caso de teste para um determinado programa. Alguns termos que representam conceitos de testes são importantes, são eles: Dinâmico: Significa que os testes implicam na execução dos valores de entrada do software. Finito: Muitos casos de teste podem ser feitos, no entanto
testes exaustivos podem demorar muito. Selecionado: é responsável por selecionar um conjunto de teste de maneira eficiente. Esperado: Verifica se o resultado esperado é aceitável ou não. Outros termos que são importantes introduzir para melhor entendimento do assunto são os conceitos de erro, defeito e falha. Erro: Pode ser uma ação humana que produz um resultado incorreto; Defeito: É uma inconsistência no software, algo que foi implementado de maneira incorreta; Falha: É a incapacidade de executar funções descritas nos requisitos. Erro é uma ação humana que resulta em um bug no software, que pode levar a um defeito no produto, que pode resultar em uma falha no funcionamento de um programa. Casos de teste Casos de teste: são um conjunto de dados selecionado pelo testador e depois executados obedecendo algumas condições. Além disso, o testador tem que saber previamente quais são as saídas para comparar se a saída adquirida após a execução dos dados de entrada é igual a saída esperada. Um caso de teste, contém os as seguintes informações (IEEE 610.12, 1990): Um conjunto de dados de entrada de teste: São os dados recebidos por um componente de hardware, software ou humana; Condições de execução: São condições importantes que precisam ser realizadas para a execução do teste; Saídas esperadas: São os resultados que serão feitos por um código que está sendo testado. Um dado de teste para um programa P é um elemento do domínio de entrada de P. Um caso de teste é formado por um par: <dado de teste, resultado esperado>. Por exemplo, um programa que computa x^y, onde y>=0 temos que: CT1 = < (2,0), 1> CT2 = < (4,2), 16> CT3 = < (3,-1), ERRO> Ou seja usamos um subconjunto do domínio de P, D(P). As saídas podem resultar em falhas ou acerto, que será decido pelo testador com base nas especificações.
"é um conjunto de atividades, ligadas por padrões de relacionamento entre ela, pelas quais se às atividades operarem corretamente e de acordo com os padrões requeridos, o resultado desejado é produzido. O resultado desejado é um software de alta qualidade e baixo custo. Obviamente, um processo que não aumenta a produção (não suporta projetos de software grandes) ou não pode produzir software com boa qualidade não é um processo adequado." Assim, de forma geral, o processo de software seria um conjunto de regras que auxilia no desenvolvimento do produto. È importante destacar que entre essas atividades que compõem o processo de desenvolvimento do produto, existe as atividade de teste, que é dividida em cinco fases: Planejamento e Controle: é feito um plano de teste de software que leva em consideração algumas especificações de requisitos para chegar aos objetivos do software que será testado. Análise e Projeto: está relacionado com o detalhamento do que será testado, e como serão geradas as combinações dentro de um caso de teste, de forma que um caso de teste terá que cobrir o maior número de condições possíveis. Implementação e execução: é feita a execução dos testes, isto inclui o Test Bed mencionado mais acima. Avaliação das Saídas e Geração das Evidências: Nessa etapa as saídas são definidas previamente pelo testador antes da execução do teste. Logo após o teste é analisado as saídas, se o resultado esperado for maior que 85% os resultados são satisfatórios. Se o resultado atingir 75% podemos modificar os critérios de testes ou executar mais testes. Encerramento das atividades de testes: é quando todos os testes foram feitos e são gerados relatórios e defeitos que serão documentos e que poderão ser tratados em uma nova fase de teste. Modelo de Maturidade de Teste (Test Maturity Model - TMM) O TMM foi criado com a necessidade de se criar um padrão que atendesse ao as necessidades adequadas para boas práticas de teste de software. O TMM está baseado em níveis de maturidade, assim como o CMM, dessa forma a
empresa pode evoluir no que diz respeito ao processo de teste, à medida que o nível de maturidade aumenta. Assim sendo, os 5 níveis de maturidade são: inicial, gerenciado, definido, gerenciado e medido, e por fim otimizado. Nível 1: Não há diferença entre teste e depuração. Geralmente a empresa não dá suporte ao processo de teste, o teste é considerado parte do processo de depuração. Nível 2: O teste mostra que o software funciona. E nesse nível é separado o teste e depuração. Nível 3: Nesse nível, é criado um plano de teste mestre, que constrói as características do planejamento dos testes e obedece aos requisitos do nível 2. Nível 4: Reduz a possibilidade de que falhas aconteçam, o software funciona com os valores aceitáveis. Nível 5: É uma disciplina mental de resultados do software com baixo risco e sem muito esforço de teste. Modelo em V O modelo em foi baseado no modelo em cascata, com o objetivo de solucionar os problemas que se tinham para implementar o mesmo. Neste modelo, a equipe de teste deve garantir que todos os aspectos do projeto foram implementados corretamente no código. Esse modelo está dividido em 4 níveis de teste: Teste de componente: É caracterizado pela busca de erros nos componentes de um programa, verificando cada componente do software que está sendo testado. Teste de Integração: Nesta fase, são testados componentes em grupos, enquanto que no teste de unidade, são verificados cada componente separados, no teste de integração o teste é feito em conjunto, onde todos os componentes são combinados e testados juntos. Teste de Sistema: O principal objetivo é verificar se requisitos foram contemplados de forma correta, verificar o comportamento do produto. Teste de Aceitação: É feito com o usuário, onde ele analisa se as funcionalidades estão de acordo com o que foi especificado, para então determinar se ele aceita ou não o produto. Técnica de Teste de Software