Fundamentos de Teste de Software



Documentos relacionados
GARANTIA DA QUALIDADE DE SOFTWARE

Projeto de Sistemas I

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Fundamentos de Teste de Software

Fundamentos de Teste de Software

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade.

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

3 Qualidade de Software

Introdução à ISO 9001:2015

Governança de TI. ITIL v.2&3. parte 1

Introdução a Computação

QUALIDADE Noções iniciais

CHECK - LIST - ISO 9001:2000

Gestão da Qualidade Políticas. Elementos chaves da Qualidade 19/04/2009

OS 14 PONTOS DA FILOSOFIA DE DEMING

Profissionalização em GP GPA010 - Gerenciamento do Escopo. Introdução: Proposta do Treinamento: Atividades: Temos nesse Módulo 4 Unidades de Ensino:

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

Conceitos. Conceitos. Histórico. Histórico. Disciplina: Gestão de Qualidade ISSO FATEC - IPATINGA

ISO 9001:2008. Alterações e Adições da nova versão

Atividade da gerência da qualidade

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

LISTA DE VERIFICAÇAO DO SISTEMA DE GESTAO DA QUALIDADE

Resumo das Interpretações Oficiais do TC 176 / ISO

ACOMPANHAMENTO GERENCIAL SANKHYA

Distribuidor de Mobilidade GUIA OUTSOURCING

IDÉIAS SOBRE IMPLANTAÇÃO DE SISTEMAS EMPRESARIAIS INTEGRADOS. Prof. Eduardo H. S. Oliveira

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Processos de Desenvolvimento de Software

Verificação é um processo para se determinar se os produtos, (executáveis ou

Qualidade na gestão de projeto de desenvolvimento de software

Fundamentos em Teste de Software. Vinicius V. Pessoni

Gerenciamento de Serviços de TI ITIL v2 Módulo 1 Conceitos básicos

Padrões de Qualidade de Software e Métricas de Software

Exame de Fundamentos da ITIL

MASTER IN PROJECT MANAGEMENT

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

MÓDULO 14 Sistema de Gestão da Qualidade (ISO 9000)

Fábrica de Software 29/04/2015

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Qual a diferença entre certificação e acreditação? O que precisamos fazer para obter e manter a certificação ou acreditação?

Gerenciamento de Incidentes

SISTEMAS DE GESTÃO São Paulo, Janeiro de 2005

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

Gerenciamento de Projeto: Planejando os Recursos. Prof. Msc Ricardo Britto DIE-UFPI

ISO/IEC 12207: Gerência de Configuração

ENGENHARIA DE SOFTWARE I

Implantação. Prof. Eduardo H. S. Oliveira

Sistema de Gestão da Qualidade

Introdução à Qualidade de Software. Profº Aldo Rocha

Gerenciamento de Projetos Modulo IX Qualidade

Universidade Paulista

O que significa a ABNT NBR ISO 9001 para quem compra?

COMO FAZER A TRANSIÇÃO

QUALIDADE DE SOFTWARE

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Tipos de teste de software

SISTEMAS INTEGRADOS DE GESTÃO PAS 99:2006. Especificação de requisitos comuns de sistemas de gestão como estrutura para a integração

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

Empresa como Sistema e seus Subsistemas. Professora Cintia Caetano

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

ITIL v3 - Operação de Serviço - Parte 1

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

TI em Números Como identificar e mostrar o real valor da TI

Abordagem de Processo: conceitos e diretrizes para sua implementação

Metodologia de Gerenciamento de Projetos da Justiça Federal

Gerenciamento de Problemas

ENQUALAB 2013 QUALIDADE & CONFIABILIDADE NA METROLOGIA AUTOMOTIVA. Elaboração em planos de Calibração Interna na Indústria Automotiva

ISO Aécio Costa

Padrões de Qualidade de Software

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

Sistemas de Gestão da Qualidade. Introdução. Engenharia de Produção Gestão Estratégica da Qualidade. Tema Sistemas de Gestão da Qualidade

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

c. Técnica de Estrutura de Controle Teste do Caminho Básico

CBG Centro Brasileiro de Gestão

Sistemas de Gestão Ambiental O QUE MUDOU COM A NOVA ISO 14001:2004

Auditando processos de feedback de clientes

CONFIRA UMA BREVE DESCRIÇÃO DAS VANTAGENS COMPETITIVAS OBTIDAS A PARTIR DE CADA META COMPETITIVA VANTAGEM DA QUALIDADE

Teste de Software. Profa. Cátia dos Reis Machado

Gerenciamento de Projetos Modulo III Grupo de Processos

Introdução à Computação

17/02/2009. Curso Superior de Tecnologia: Redes de Computadores. Disciplina: Gestão de Projetos de TI Prof.: Fernando Hadad Zaidan. Unidade 2.

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

Engenharia de Requisitos

Transcrição:

Núcleo de Excelência em Testes de Sistemas Fundamentos de Teste de Software Módulo 1- Visão Geral de Testes de Software Aula 1 Teste como Suporte para o Software

SUMÁRIO 1. INTRODUÇÃO... 3 2. Exemplos de casos de insucesso devido à ausência de teste... 3 3. Benefícios... 5 4. Custo de teste no ciclo de vida do desenvolvimento de software... 6 5. O Papel do Testador... 7 6. Definição do conceito de teste (Erro, Defeito e Falha)... 8 7. Padrões conceituais que são referências mundiais... 10 8. Processo de teste... 13 9. Abrangência na forma de condução... 14 10. Atividade do processo de teste... 14 11. Impacto na qualidade do produto... 15 12. Teste como processo de suporte... 16 13. Fases da garantia da qualidade... 17 14. Validação e Verificação... 18 ii

1. INTRODUÇÃO No mercado global, com a complexidade dos softwares, podemos ter a certeza que enfrentaremos a complexidade das equipes, o cronograma apertado para desenvolvimento, mercado/cliente/usuários mais exigentes, menos tolerância a falhas, menos tolerância aos atrasos das entregas. Para tanto: Precisamos criar softwares MELHORES, dentro do PRAZO, com CUSTO BARATO e de forma mais RÁPIDA. 2. Exemplos de casos de insucesso devido à ausência de teste Atualmente podemos perceber mais claramente qual o significado do custo quando não priorizamos os testes no ciclo de vida de nossos produtos. Abaixo descrevemos alguns casos de insucesso devido à ausência de teste. Em Junho de 1996, o primeiro lançamento do foguete Ariane 5 ( Ver Figura 1) da agência espacial européia falhou 37,5 segundos após sair do solo. Um erro de software levou o foguete a desviar da ascendente vertical e suas capacidades de auto-destruição foram ativadas. Figura 1- Exemplos de casos de insucesso 3

Symantec compensa 50 mil vítimas de atualização com falha na China. Cingapura - Companhia oferece extensão de licença do Norton sem custos aos afetados pelo update que tirava arquivos de sistema de uso. Mais de um mês após atualizar 50 mil PCs chineses com um update defeituoso, a Symantec decidiu compensar as vítimas. Em 18 de maio a empresa começou a distribuir o update problemático para o antivírus Norton, que classificou equivocadamente arquivos do sistema dos usuários como malwares e os colocou em quarentena, afetando o funcionamento do computador das vítimas e gerando uma onda de protestos na web. Quando uma famosa livraria abriu os negócios online, a compra de um número negativo de livros significava que o total da transação envolvida deveria retornar para o comprador. A equipe de desenvolvimento não tinha antecipado que alguém poderia solicitar a compra de um número negativo de livros e o código foi desenvolvido para permitir o reembolso pela equipe administrativa. No mês de abril de 2005 o site da rede americana de hotéis Holliday Inn deveria ter entrado no ar com uma promoção para quem se hospedasse na sua rede no estado da Flórida nos EUA de 98 dólares o casal. Por um erro de programação o valor que entrou no site foi de 0,98 dólares. Este erro ficou no ar por 24 horas, tempo suficiente para que 1.000 pessoas fizessem as suas reservas. O hotel alegando que havia sido um erro, posteriormente cancelou todas essas reservas. Por decisão judicial, o hotel foi obrigado a honrar os seus compromissos. Isso custou ao Holliday Inn cerca de 500 mil dólares porque o analista de sistemas, achando que as alterações eram pequenas, preferiu correr o risco de colocar o site no ar sem um teste de aceitação, que custaria em torno de 50 dólares. Se ele tivesse feito uma análise de riscos, certamente não teria deixado de testar a aplicação. Diante desse contexto, podemos afirmar que o motivo pelo qual devemos testar um software é pelo simples motivo que o mesmo visa atender a uma demanda por questões de: Qualidade, Segurança, Economia, Negócio e Confiabilidade. 4

3. Benefícios Quais os reais benefícios do investimento em testes? Conforme afirmado em vários relatos de experiência e já percebido no mercado, os reais benefícios são a redução em 70% do índice de re-trabalho na correção de falhas em produção, redução em 50% do tempo de homologação de uma nova versão. Além disso, aumenta em aproximadamente 90% o índice de falhas detectadas antes da produção onde o custo é bem mais baixo, e aumenta a abrangência dos testes. Portanto, de uma forma geral, os maiores benefícios são (Ver Figura 2): Melhoria da qualidade do produto e do serviço; Identificação de defeitos para reduzir as falhas; Redução do custo de manutenção do software; Medição da qualidade através (Ex: número de defeitos encontrados, número de testes executados e percentual de cobertura do código pelos testes); Adequação às regras contratuais, requisitos legais e padrões industriais. Figura 2 Benefícios da prática de teste de software 5

4. Custo de teste no ciclo de vida do desenvolvimento de software Para analisar os impactos das falhas encontradas no software é necessário avaliar o impacto de quando os erros foram encontrados. Portanto, o impacto de se encontrar e consertar os defeitos aumenta consideravelmente ao longo do tempo. A regra 10 de Myers apresenta que o custo da correção de um defeito tende a aumentar quanto mais tarde ele for encontrado. Os defeitos encontrados nas fases iniciais do projeto de desenvolvimento do software são mais baratos do que aqueles encontrados na produção. Um estudo realizado observou que, quanto mais tempo levarmos para corrigir uma falha, mais custosa ela será. O gráfico apresentado tem como objetivo mostrar a proporção do aumento, onde, ainda na fase de levantamento de requisitos, o custo para correção é considerado muito baixo, praticamente zero. Na fase de desenvolvimento do sistema, o custo aumenta em 10 vezes comparado com a fase anterior. Já na fase de teste unitário e teste de integração, o custo é de 100 vezes o custo inicial. Enquanto que na fase do teste de sistema, o custo será de mil (1000) vezes. O teste de aceitação custará 10 mil e quando o software está em produção, estima-se que o custo para correção de uma falha é de 100 mil vezes o custo, se a mesma fosse ajustada na fase de levantamento de requisitos (ver figura 3). Figura 3 Custo do Teste 6

5. O Papel do Testador Diante dessas considerações, o testador atua para prevenir que as falhas sejam observadas no software quando ele já está em produção, como também para provocar, o quanto antes, a maior quantidade de falhas possível no software, para que as mesmas possam ser corrigidas e entregues ao cliente final. Portanto, o testador investigará se o produto está pronto para uso e quais são as possíveis ameaças que o mesmo apresenta. Além disso, a checagem dos processos de desenvolvimento também precisa ser realizada como forma de minimizar, através da garantia da qualidade, as falhas observadas no produto final. Figura 4 Papel do testador O papel do testador é executar as atividades centrais do esforço de teste, que envolve conduzir os testes necessários, além de registrar os resultados desses testes. Para desempenhar essa atividade é necessário: Identificar a abordagem de implementação mais apropriada para um dado teste; Implementar testes individuais; Configurar e executar os testes; Registrar os resultados e verificar a execução dos testes; Analisar erros de execução e recuperar-se deles; Avaliar um entregável com a intenção de encontrar defeitos. 7

O conhecimento e as habilidades do testador podem variar de acordo com os tipos de testes a serem executados, entretanto, geralmente o testador deve ter as seguintes habilidades: Conhecimento das abordagens e das técnicas de teste; Capacidade para diagnosticar e resolver problemas; Conhecimento do sistema ou do aplicativo em teste (desejável). Diante deste contexto, podemos afirmar que o testador através da execução dos testes visa adquirir confiança na qualidade através das informações que o teste provê, ou prevenir a ocorrência de falhas no ambiente de produção, pela detecção antecipada dos defeitos. 6. Definição do conceito de teste (Erro, Defeito e Falha) No que se refere às definições da disciplina de teste, vale ressaltar que não existe um conjunto universal de definições relativas ao teste de software. Alguns conceitos são importantes para o entendimento e possíveis adaptações dos processos, fazendo parte da base para a disciplina de teste. Nesse contexto, é imprescindível entender o conceito de erro, defeito e falha. Embora esses termos e definições (vide figura 5) estejam diretamente ligados ao processo de desenvolvimento de software, vários profissionais da área de TI desconhecem o seu significado e suas respectivas diferenças. a. Erro: Erro humano que produz um resultado incorreto b. Defeito: Manifestação de um erro no software c. Falha: pode ser considerada como um desvio apresentado pelo software, aquilo que é observado quando o mesmo está sendo executado. 8

Figura 5- Erro, Defeito e Falha Falha é um evento; defeito é um estado do software, causado por um erro. Os defeitos podem ser originados de vários fatores, tais como: Especificação de requisitos ambígua; Falha na gestão de mudanças dos requisitos; Profissionais que não possuem formação apropriada para construir os artefatos de software; Falha em declarar uma variável de entrada de dados; Projeto não delimitava tempo suficiente para que pudesse ser construída uma especificação detalhada. Os defeitos ocorrem no software porque os mesmos são escritos por pessoas, e por sua vez sabemos que as pessoas (profissionais) não conhecem e não dominam tudo. Entretanto, elas têm habilidades para tal responsabilidade, mas também não são perfeitas, o que nos leva a admitir que são suscetíveis de cometer erros. E por último, softwares são desenvolvidos sobre crescente pressão para entregá-los em prazos rigorosos, sem tempo para checar as atividades realizadas. 9

7. Padrões conceituais que são referências mundiais Aspectos Gerais das Normas/Padrões Padrões e Normas são criadas por grupos de profissionais e refletem um conhecimento coletivo. As duas maiores fontes de normas internacionais são: IEEE e ISO. Normas nacionais e de domínio específico são também importantes e disponíveis. Testadores devem estar atentos a normas que se aplicam ao seu ambiente ou contexto, sejam elas normas formais (internacionais, nacionais, ou de domínio específico) ou normas internas e práticas recomendadas. Como normas evoluem e mudam é necessário especificar a versão (data de publicação) da norma para garantir que a conformidade seja obtida. Quando uma referência a uma norma é especificada sem data ou versão, então a última versão é considerada como sendo referenciada. Utilidade de Normas/Padrões Normas/Padrões podem ser usadas como um instrumento para promover uma garantia de qualidade construtiva, tal que mantém foco em minimizar os defeitos introduzidos ao invés de encontrá-los através de teste. Coerência & Conflitos Algumas normas podem ser deficientes em coerência com outras normas, ou até fornecer definições conflitantes. É deixado a cargo dos usuários das normas determinarem a utilidade das diferentes normas em seu ambiente e contexto. Normas Internacionais ISO ISO [www.iso.org] significa International Standards Organization (alterado para International Organization for Standardization) e é formado por membros representando, para seu país, o corpo nacional representativo da padronização. Esse corpo internacional fomenta diversas normas úteis para testadores de software, tais como: 10

ISO 9126:1998, que atualmente é separada na seguinte norma e relatórios técnicos (technical reports - TR): ISO/IEC 9126-1:2001 Engenharia de software Qualidade de produto Parte 1: Modelo de qualidade ISO/IEC TR 9126-2:2003 Engenharia de software Qualidade de produto Parte 2: Métricas externas. ISO/IEC TR 9126-3:2003 Engenharia de software Qualidade de Produto Parte 3: Métricas internas. ISO/IEC TR 9126-4:2004 Engenharia de software Qualidade de produto Parte 4: Qualidade no uso de métricas. ISSO/IEC 12207:1995/Amd 2:2004 Sistemas e Engenharia de software Processos de Ciclo de Vida de Software. ISO/IEC 155041-2:2003 Tecnologia da informação Avaliação de processo Parte 2: Realizando uma avaliação. Essa lista não é exaustiva; outras normas ISO podem ser aplicáveis ao contexto e ambiente de um testador. IEEE IEEE [www.ieee.org] é o Institute of Electrical and Electronics Engineer, uma organização profissional com sede nos EUA. Existem representantes nacionais disponíveis em mais de uma centena de países. Essa organização fomenta diversas normas úteis para testadores de software, tais como: IEEE 610:1991 Norma IEEE de dicionário de computação. Uma compilação da norma IEEE de glossário de computação. IEEE 829:1998 Norma IEEE de documentação de teste de software. IEEE 1028:1997 Norma IEEE de revisão de software. IEEE 1044:1995 Guia IEEE para classificação de anomalias de software. Essa lista não é exaustiva; outras normas IEEE podem ser aplicáveis ao contexto e ambiente de um testador. 11

Normas Nacionais Muitos países têm suas normas específicas. Algumas dessas normas são aplicáveis e/ou úteis para o teste de software. Um exemplo seria a norma britânica BS-7925-1 e BS-7925-2:1998 Teste de software. A BS 7925-1 é um glossário de termos de teste de software, juntamente com o seu parceiro BS 7925-2 componentes de teste de software. Além de também fornecerem uma descrição do processo de Teste de Componente. Portanto conclui-se que diversos padrões são considerados referencias na disciplina de testes. Porém, o mercado evidencia algumas normas mais que as outras (Ver figura 6). A referência que aborda a terminologia da engenharia de software, a IEEE 610, define que teste é o processo de operar um sistema ou componente através da observação dos resultados e avaliação de alguns aspectos de um determinado software. Já a IEEE 829, que trata de documentação, diz que teste é o processo de analisar o software para identificar as diferenças entre as condições existentes e as condições requeridas pelo cliente. No âmbito do padrão 7925-1, que apresenta um vocabulário da disciplina, teste é o processo de exercitar o software para verificar se o mesmo satisfaz os requisitos e para detectar os erros no código. Figura 6 - Padrões 12

Diante dessas definições, vale ressaltar que todas as normas abordam o teste como um processo, através de uma atividade dinâmica, onde o software é executado para encontrar erros, e também é uma atividade estática, através da verificação das condições do sistema. 8. Processo de teste O processo de teste pode ser entendido como uma sequência de atividades executada para alcançar um objetivo específico (Ver Figura 7). Figura 7 Processo de teste O Processo de Testes de Software representa uma estruturação de fases, atividades, artefatos, papéis e responsabilidades que tem o objetivo de padronizar os trabalhos, além de maximizar a organização e monitoramento dos projetos de testes. Portanto, o objetivo do processo de teste é fornecer informação para garantir a qualidade do produto, decisões e processos para uma atividade de teste. Além disso, o processo de teste busca garantir que nenhum passo crítico do processo seja esquecido, ou seja, que todas as atividades sejam realizadas na ordem correta. O ISTQB define que Teste é um processo ao invés de uma atividade isolada, composta de um conjunto de atividades. 13

9. Abrangência na forma de condução O objetivo desta abrangência é assegurar que o software cumpra rigorosamente as suas especificações e atenda principalmente as necessidades do cliente. Diante desse contexto, o processo de teste pode ser tanto dinâmico como estático (Ver Figura 8): a. Dinâmico: Acontece quando o código é executado para demonstrar os resultados dos testes rodados. b. Estático: quando o teste é realizado antes da execução do código, através de técnicas de revisão, dentre as quais podemos citar a revisão informal, revisão técnica e a inspeção. Figura 8 Testes estáticos e dinâmicos 10. Atividade do processo de teste O propósito do processo de teste é fornecer informações para garantir a qualidade do produto, as decisões e os processos para uma missão de teste. As atividades são (Ver figura 9): Planejar e controlar o teste; Analisar e projetar o teste; Implementar e executar o teste; Avaliar o critério de saída e reportar; Atividades de fechamento do teste. 14

Figura 9 Atividades do processo de teste 11. Impacto na qualidade do produto Atualmente, podemos perceber que as organizações têm de produzir produtos e/ou serviços de qualidade não mais como uma estratégia de diferenciação de mercado, mas como uma condição de sobrevivência. O conceito de Qualidade foi inicialmente associado à definição de conformidade aos requisitos ou especificações do produto. Posteriormente, essa definição evoluiu para a busca da satisfação do cliente. Entretanto, a satisfação do cliente não é resultado apenas do grau de conformidade com os requisitos ou especificações, mas também de outros fatores associados, tais como: prazo, condições de pagamento, atendimento, pós-venda, flexibilidade, dentre outros fatores. Focando essa realidade foi possível perceber que a qualidade era fundamental no posicionamento estratégico da empresa perante o mercado. Além disso, logo em seguida surgiu o termo Qualidade Total que representa a busca da satisfação, não somente do cliente, mas de toda a organização que a compõe, buscando a excelência organizacional da empresa. A qualidade, conforme Crosby, está associada à idéia de zero defeito e de fazer certo da primeira vez. Já vimos (em O que é qualidade ) que para ele a qualidade significa conformidade com as especificações, e estas especificações variam para cada organização, conforme estas percebem as necessidades de seus clientes. No seu método não existe um padrão de tolerância a meta real é exatamente zero defeito. Já o autor Juran diz que Qualidade é adequação ao uso, onde a adequação é definida pelo consumidor mesmo quando ele deseja fazer algo fora do que o fabricante imaginou. 15

E não menos importante, referindo-se ao contexto da definição de qualidade, Deming frequentemente se referia ao efeito, e não ao conceito da qualidade. Para ele, os custos caem e a produtividade sobe, conforme a melhoria da qualidade é alcançada por meio de melhor gestão. A busca da qualidade é um dos principais objetivos da Engenharia de Software e muitos métodos, técnicas e ferramentas são desenvolvidos para apoiar a produção com qualidade. Atualmente tem-se dado grande importância ao processo de teste como forma de se garantir um software de melhor qualidade. As atividades de teste impactam diretamente na qualidade do produto final, através da avaliação das especificações e conformidade com o software entregue. Além disso, a adequação ao uso para atender às necessidades dos usuários e, consequentemente, atendimento às expectativas do cliente. As especificações devem refletir as necessidades levantadas, que são importantes critérios para definir a qualidade do produto em questão. 12. Teste como processo de suporte Teste é uma atividade de garantia da qualidade comparado a um processo de suporte. Teste é uma atividade que consideramos como recursiva, haja vista que os seus produtos gerados podem ser testados e analisados quanto a sua qualidade. Além de estar relacionado com a elaboração da documentação técnica, quando tudo que é produzido é factível de ser analisado pela garantia da qualidade, através de teste estático e suas atividades de revisão. Teste também faz interface com a atividade de manutenção, onde o software é entregue e possivelmente irá gerar correções e novas funcionalidades. Além disso, o teste é importante para garantir o correto funcionamento do sistema em produção. Alguns exemplos de processos de suporte executados durante todo o processo de desenvolvimento que fazem interface com o processo de teste (Ver Figura 10): Garantia da qualidade Gerência de projetos Gerência de configuração 16

Figura 10 Teste como processo de suporte 13. Fases da garantia da qualidade A garantia da qualidade é composta por 4 atividades. Primeiramente, os critérios de qualidade precisam ser definidos, que são declarações sobre o nível de qualidade a ser alcançado no software. Eles dependem da necessidade do negócio e tipo de produto em questão. A partir da definição dos critérios, existem duas atividades para averiguar se os critérios de qualidade foram alcançados no projeto, que é a validade e a verificação do software. E, finalmente, a consolidação dos resultados obtidos através de relatórios e indicadores de qualidade. Vale ressaltar que o teste é uma atividade que faz parte da garantia da qualidade, através de (Ver Figura 11): a. Definição do critério de qualidade b. Validação c. Verificação d. Relatório de qualidade Figura 11 Fases da garantia da qualidade 17

14. Validação e Verificação A Validação e a Verificação são conceitos de grande importância para a disciplina de teste, onde Validação é a avaliação da veracidade do produto baseado nas necessidades e requisitos definidos pelo cliente. Devemos, no decorrer do processo, questionar se estamos desenvolvendo o produto correto e se o sistema está de acordo com a especificação definida. A Verificação, por sua vez, é a avaliação se o objeto foi desenvolvido da maneira prevista, onde devemos nos questionar se estamos desenvolvendo o produto corretamente. Para isso existe diversas técnicas como, por exemplo, a inspeção e revisão(ver figura 12). Figura 12 Validação e Verificação A Validação e Verificação asseguram que o software cumpra com suas especificações e atenda às necessidades dos usuários. O processo de teste é dividido em duas grandes áreas: A estrutura do modelo V é uma aproximação do processo de testes que pode ser integrada com todo a processo de desenvolvimento. O modelo V representa o desenvolvimento versus o teste. O modelo V focaliza-se em testar durante todo o ciclo de desenvolvimento para conseguir uma detecção adiantada dos erros. 18