Baixe o app para aproveitar ainda mais
Prévia do material em texto
TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 1 CCT0077 – PDS Testes de SW - Uma visão geral - Autor: José Geraldo Silva TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 2 1 - INTRODUÇÃO 1.1 - Motivação para testes SOFTWARE: Provedor necessário para desenvolvimento e operacionalização de um produto (programa/sistema) num ambiente computacional. CVSW = { CDSW + CPSW } CVSW : Ciclo de Vida do Software ; CDSW : Ciclo de Desenvolvimento do Software CPSW : Ciclo de Produção do Software Software = [ Básico / Aplicativo ] Software Básico = [ Sistema Operacional / Linguagem de Programação / SGBD / Sw de Rede / etc ] Software Aplicativo = [Software Produto/Software Aplicação] Software Produto = [ Editor/Planilha/Apresentação/etc] Software Aplicação = [ Sistema Comercial qualquer] Normalmente , se o CVSW = 10 T , o CDSW = 2T e o CPSW = 8T. As fases do CDSW são : Definição / Análise / Projeto / Construção / Testes do CPSW é : Manutenção % Dedicação D A P C T Mnt (CVSW-Ciclo de Vida do SW) D = 5%, A = 10%, P = 15%, C = 20%, T = 2% Mnt = 48% TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 3 USUÁRIO/CLIENTE TESTE DE INSTALAÇÃO TESTE DE ACEITAÇÃO TESTE DE SISTEMA (*) TESTE FUNCIONAL TESTE DE INTEGRAÇÃO TESTE DE MÓDULO IMPLANTAÇÃO ESTRUTURA DOS TESTES P.C. P.C. P.C. P.C. P.C. I M P L E M E N T A Ç Ã O - VISÃO GERAL REQUISITOS/ OBJETIVOS ESPECIFICAÇÃO LÓGICA / CONCEITUAL ESPECIFICAÇÃO FÍSICA PROJETO DE PROGRAMA ESPECIFICAÇÕES DOS INTERFACES DE MÓDULOS CÓDIGO GERADO P.C. F1 F2 F3 F4 F5 (PRODUÇÃO/SUPORTE) (USUÁRIO/CLIENTE) (ANALISTA/USUÁRIO) (ANALISTA) (ANALISTA/PROJETISTA) (PROGRAMADOR) P.C. = Ponto de Controle (tstswjg.ppt) TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 4 PROPÓSITOS DOS TESTES A) TESTE DE MÓDULO E DE INTEGRAÇÃO Encontrar discrepâncias entre os módulos / programas e suas especificações de interface. B) TESTE FUNCIONAL Verificar se o sistema (software) atende às especificações de suas funções. C) TESTE DE SISTEMA Mostrar que o produto final é (ou não) consistente com os seus OBJETIVOS iniciais. Compreende verificar se há discrepâncias entre os conjuntos integrados dos TESTES das funções, à luz das especificações Lógica/Conceitual versus os OBJETIVOS estabelecidos. D) TESTE DE ACEITAÇÃO Comparar o sistema aos seus REQUISITOS iniciais e às necessidades atuais de seus usuários finais. E) TESTE DE INSTALAÇÃO Mostrar que o sistema (sw) é (ou não) adequado ao ambiente operacional. Seu objetivo não é o de encontrar erros de software, e sim de instalação, ou seja, onde o sw será instalado. Exemplos de problemas de instalação: - Todos os arquivos de biblioteca estão carregados? - Todas as tabelas foram criadas? - Configuração de hardware é válida e adequada? - Todos os programas estão devidamente interconectados? - etc. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 5 2 - TESTES E SEU SIGNIFICADO Perguntas chaves : - “O que é” TESTAR? - “Por quê” TESTAR? - “Quando” (começar a) TESTAR? - “Quem” deve realizar os TESTES? - “Quais”os tipos de TESTES? - “O que é”um bom TESTE de Sw? - “Como”determinar objetivos e critérios de teste”? - “Como”desenvolver e validar um Plano de TESTES? - “Como” selecionar e preparar Casos de TESTES? - “Onde”os TESTES são excessivos ou insuficientes? - “Como”e “Quando” usar métodos e téscnicas de TESTES? - “O que” TESTAR depois de alterações / manutenções / aperfeiçoamentos? - “Como”avaliar o suceso de um TESTE? TESTAR: “É submeter o produto (SW) a todas as exigências do seu projeto, sob condições críticas de operação e desempenho”. FINALIDADES DOS TESTES Adquirir confiança no fato que um sistema pode ser usado com uma margem de risco aceitável Fornecer informações que impeçam o surgimento de erros Fornecer informações que auxiliem a deteção de erros antes dos mesmos se manifestarem Descobrir erros e deficiências de um SW Determinar quais as limitações / recursos de um SW Fornecer informações sobre a qualidade do SW TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 6 FATORES DE QUALIDADE DO SW A B C A - Fatores Intrínsecos (Revisão) São aqueles que tem a ver com a parte de engenharia de construção do SW. “Coisas”embutidas no próprio Sw. B - Fatores extrínsecos ( Operação) São aqueles que tem a ver com os aspectos de funcionamento do SW. As exigências vem externamente. C - Fatores de Adaptabilidade (Transição) São aqueles relativos aos aspectos de condicionamento do SW às exigências tecnológicas. A - FATORES INTRÍNSECOS Testabilidade, Manutenibilidade, Flexibilidade. B - FATORES EXTRÍNSECOS Correção, Confiabilidade, Eficiência, Integridade, Usabilidade. C - FATORES DE ADAPTABILIDADE Portabilidade, Reusabilidade, Interoperabilidade. A - FATORES INTRÍNSECOS . TESTABILIDADE É o esforço exigido para testar o produto. . MANUTENIBILIDADE É o esforço exigido para localizar e corrigir um erro. . FLEXIBILIDADE É o esforço exigido para executar as modificações do Sw. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 7 B - FATORES EXTRÍNSECOS . CORREÇÃO É o grau de atendimento às especificações e aos objetivos do projeto do Sw, até o ponto onde ele esteja isento de erros, ou seja, quando o Sw atende às necessidades do usuário. . CONFIABILIDADE É a precisão com que o software executa suas funções. . EFICIÊNCIA É o grau de suficiência de recursos computacionais necessários para que o software execute a função. . INTEGRIDADE É o grau de segurança que o sw deve possuir. . USABILIDADE É o esforço que é requerido para operar e usar o sw. C - FATORES DE ADAPTABILIDADE Quando um Software é considerado adaptável? - Quando ele é capaz de ajustar-se às alterações do ambiente. . PORTABILIDADE É o esforço exigido para transferir um software de uma plataforma para outra. Exemplo: CASO HW BASE DE DADOS LINGUAGEM PORTABILIDADE 1 IBM VSAM (Seq.Ind.) COBOL Pequena VAX RDB (random) COBOL 2 IBM ADABAS NATURAL Grande VAX ADABAS NATURAL . INTEROPERABILIDADE É o esforço exigido para interligar um sistema (ou Sw) a outro. ** Para melhorcompreensão, veja o ANEXO no final da apostila ** . REUSABILIDADE” É a capacidade do software (programa, instrução, conjunto de instruções, rotinas, etc) ser utilizado por outro Sw. Exemplo: Teste do CPF em vários cadastros Teste de valor por extenso TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 8 FATORES DE QUALIDADE SUPLEMENTARES A) ESTABILIDADE Esforço exigido para tornar o Sw tolerante a variações do ambiente, sem alterar a sua funcionalidade, no sentido de seu funcionamento/ operação. Exemplos: 1. Troca de versões do Sistema Operacional; 2. Rotinas articuladoras independentes que irào fazer acoplamento entre sistemas distintos, ou partes de sistemas; 3. Sistemas parametrizados com extensivo uso de tabelas, que suportem alterações de modo transparente. +++ Analogia com outras atividades: 1 - Construção Civil 1.1. Um edificio de 50 andares que possui tolerância a abalos sísmicos; 1.2. Ponte Rio-Niterói (Balança, e como!) 2 - Indústria Aeronáutica : Asa de avião! B) ACESSIBILIDADE É a característica de clareza de ser acessível, isto é, de se “investigar”sua estrutura interna. OBS. : As famosas caixas-pretas estimulam a insegurança e as dúvidas quanto à qualidade; Produtos de Sw herméticos (fechados) provocam baixa confiabilidade e exigem exaustivos testes adicionais. Exemplo de uma Planilha de Avaliação de Software no Apêndice - anexo 1 : TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 9 GARANTIA DE QUALIDADE DE SOFTWARE (GQS) Compreende uma variedade de tarefas relacionadas com 7 (sete) atividades principais: 1 - Utilização de métodos e ferramentas; 2 - Realização de revisões formais; 3 - Testes do Software; 4 - Fixação de padrões; 5 - Controle de mudanças; 6 - Medição/ Aferição; 7 - Coleta e disseminação de dados sobre qualidade. CUSTO DE QUALIDADE DE SOFTWARE Alguns conceitos: a) DEFEITO : É um desvio entre o resultado esperado ou desejado (RE ou RD) e o resultado obtido (RO). O DEFEITO é obtido pela fórmula: D = RD - RO Se D = 0 ; então a qualidade é total (100% de qualidade) D > 0 ; então a qualidade (acima/abaixo) do esperado D < 0 ; então a qualidade (acima/abaixo) do esperado. B) DESPERDÍCIO Esforço dedicado ao diagnóstico e remoção de erros (defeitos). QUALIDADE DO SOFTWARE ESTÁ NA AUSÊNCIA DO DESPERDÍCIO”. **** Quando ocorre a remoção de Defeitos? a) Em projetos sem GQS ? (Manutenção) b) Em projetos com GQS ? (Desenvolvimento) TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 10 VISÃO DOS TESTES **** Como os profissionais veem o TESTE de SW !? Comparar os programas com as especificações Encontrar “bugs” nos programas Determinar o nível de aceitação pelo usuário Garantir que o sistema esteja pronto para ser usado Adquirir confiança no seu desempenho Mostrar que o SW (programa ou sistema) funciona corretamente Demonstrar que não há erros / defeitos Saber o que o Sw não tem condições de fazer Avaliar os recursos de software Verificar a documentação Conhecer os limites da performance/ desempenho do Sw. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 11 OBJETIVA O ALCANCE DO EMPREENDIMENTO. ATINGIR A QUEM, O QUE, ATÉ QUE PONTO. SERVE DE BASE PARA ORIENTAR AS NECESSIDADES A NÍVEL OPERACIONAL CARACTERÍSTICAS DE “ESPECIFICAÇÕES” NIVEL DE NECESSIDADE “CONCEITUAL” ANALISTA USUÁRIO DE LIMITES DEVE FAZER PARTE DOS OBJETIVOS DO SW, E QUE SERVIRÃO DE BASE PARA ORIENTAR AS NECESSIDADES A NÍVEL LÓGICO DE FORMA DEVE FAZER PARTE DOS REQUISITOS DO SW, E QUE SERVIRÃO DE BASE PARA ORIENTAR AS NECESSIDADES A NÍVEL FÍSICO DE DIMENSÃO INPUT RESPONSÁVEIS TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 12 CARACTERÍSTICAS DE “FUNÇÕES + DADOS ” NIVEL DE NECESSIDADE “LÓGICA” ANALISTA PROJETISTA RESPONSÁVEL INPUT “ESPECIFICAÇÕES” * Representações e interligações, com base na declaração dos OBJETIVOS e das Necessidades de Infor’mação * Identificação dos dados e principais funções (Pode ser usada a abordagem por processos ou por eventos) * Relacionamento entre estes elementos * Descrição dos dados e funções TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 13 CARACTERÍSTICAS “QUALITATIVA” NIVEL DE NECESSIDADE “FÍSICA/IMPLEMENTAÇÃO” PROGRAMADOR PROJETISTA RESPONSÁVEL INPUT FUNÇÕES + DADOS” * Interface dos dados / funções com o ambiente operacional * Estruturação dos componentes * Produtos a oferecer * Bases de Dados constituidas * Linguagens a utilizar * Alternativas de implementação (batch, on-line,etc) TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 14 CARACTERÍSTICAS “QUANTITATIVA” NIVEL DE NECESSIDADE “OPERACIONAL” RESPONSÁVEL INPUT QUALITATIVA” * Eficiência * Desempenho * Volume * Frequência de uso * Pressão / stress * Capacidade de execução USUÁRIO, ANALISTA, PROJETISTA, PROGRAMADOR TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 15 “ESTUDO DE CASO” Seja resolver o problema de construir um software (programa ou sistema) que atenda às exigências de uma empresa aérea para “Controle de Passagens”. Suponhamos, por hipótese, que as seguintes condições fossem estabelecidas: I - Características de “Especificações” a) Quanto aos LIMITES (Objetivos): - O sw visa atender passagens domésticas no eixo da região sul do país; - Atendimento a ser dado a passageiros de variadas classes econômicas; - Controlar percursos de tráfego aéreo; - Atender agências de viagem e turismo; - Facilitar aquisição e reserva de passagens b) Quanto à FORMA (Requisitos): - Disponibilizar acesso diário às informações pelas agências de viagem e turismo, localizadas nas principais cidades da região sul, que possuam mais de 50.000 habitantes; - Atendimento à consulta e reservas, em tempo real, com no máximo 10 segundos de tempo de resposta; - Estatística diária do tráfego aéreo; - Posicionamento horário da situação do tráfego e das reservas de passagens. c) Quanto à DIMENSÃO : - A quem atingir : CLIENTES, AGENTES DE VIAGEM, GERENTES DA EMPRESA AÉREA; - O que atingir: Os diversos processos de “Controle de Passagens”; - Até que ponto atingir: No mínimo 100 Clientes/dia. II - Características de “Funções e Dados” a) Dados: - CLIENTE (Nome, Endereço, Telefone, CPF, etc) - AERONAVE : (Prefixo, Empresa, Numero-vôo,etc) b) Funções: - Reservar lugares - Emitir passagens - Verificar disponibilidade de vôoTESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 16 Se num sistema de “Pagamento de pessoal” : FUNÇÕES :. Calcular descontos / Emitir contra-cheque DADOS : Empregado (Matricula, Nome, Salário,...) III - Características “Qualitativa” a) Funções >>> “Reservar lugares” - Alternativa de implementação : On-Line - Produtos gerados : Tela de verificação de reserva de passagem >>>“Verificar disponibilidade de vôo” - Alternativa de implementação : Batch - Produtos gerados: Estatística do tráfego, com impressão de gráficos >>>“Emitir passagem” - Alternativa de implementação : Batch e/ou on-line - Produtos gerados: Bilhete de passagem b) Recursos a utilizar HW : PC em rede, conectado ao Servidor SW : SGBD Oracle, DB2 ou ADABAS; Sistema Operacional DOS e UNIX Linguagem de Programação : SQL, C++l, COBOL c) Bases de Dados: CLIENTES, TABELA DE VÔOS, etc. d) Comunicação com o ambiente: Dados sobre os VÔOS gerados no Oracle; Dados do CLIENTE gravados no ADABAS. IV - Características “Quantitativa” . Software é capaz de suportar 20 acessos simultâneos (pressão) . Executa dentro das restrições impostas : < 10 segundos (desempenho) . Processa até 400 bilhetes/dia (volume) TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 17 TESTE SISTEMÁTICO Requer: a) Instrumentação de teste; b) Projeto de casos de testes baseados em critérios de seleção suficientemente eficazes; c) Análise rigorosa dos resultados; d) Identificação e eliminação cuidadosa das falhas do SW (programa ou sistema) Algumas definições importantes: F A L H A É um defeito ou incorreção latente no Sw, ou em seu ambiente, sobre os quais temos controle. Incluem-se nesta categoria os erros de uso ( coleta; preparação, transcrição e transmissão de dados; interpretação dos resultados). A C I D E N T E É uma inadequação do ambiente do sistema de computação, que pode impedir, temporária ou definitivamente, o correto funcionamento do Software. Exemplos: Falta de energia; incêndio; arquivos com data check, etc. E R R O É uma consequência do exercício de uma falha do SW ou da ocorrência de um acidente, ou seja, um erro é um sintoma de que algo foi mal, enquanto que falhas e acidentes são as causas deste mal funcionamento. PROVENIÊNCIA DOS ERROS: 1 - EXTERNA Defeitos de HW, erros de operação, dados errados, etc. 2 - INTERNA Erro na lógica, etc. D A N O É o prejuizo provocado pelo erro. Exemplo: Deturpação do Banco de Dados; destruição de arquivos ou programas por vírus. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 18 OBSERVAÇÕES: A) É objetivo da segurança prevenir FALHAS e ACIDENTES; B) É objetivo do controle (auditoria) monitorar o funcionamento e uso do Sw. C) Problemas com o SW podem ser da seguinte natureza: 1 - De especificação : . Não faz o que é esperado; 2 - De implementação : . Não atende ao especificado; 3 - De utilização: 3.1 - Voluntários: Fraude, sabotagem, indisciplina de uso, etc. 3.2 - Involuntários: Acidentes, erros de operação, etc. 4 - De sincronização : . Atualização simultânea em Banco de Dados , causando “Deadlocks”, que são várias transações on-line por múltiplos usuários. D) Algumas recomendações para evitar/minimizar problemas com o SW: O Software deve conter redundâncias do tipo: testes de domínio de índices; testes de domínios de referências (acessar objetos existentes e semânticamente corretos ; controles estatísticos; registros de ocorrências (log’s); comparação de resultados entre algorítmos diferentes que computam a mesma função. E) Aborto de programas: Em que situações evitar? - Em controle de processos (Robôs,...); - Na supervisão e controle (radar, ...); - Em sistemas operacionais; - Na atualização de arquivos particionados, diretos ou randômicos, etc. Motivo: Perda de referência do ponto de aborto. - Como se deve proceder? - Emitir mensagem clara sobre o que provocou o erro e o ponto do erro! - Reiniciar a recuperação do erro (restart) TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 19 I N S T R U M E N T A Ç Ã O Os instrumentos (técnicas) mais comuns no auxílio e deteção de erros e falhas são através do estabelecimento de: a) controles: totais de controle, validação de parâmetros inter-módulos,etc. b) Exibição : displays, ready trace, dumps de memória, etc. Obs. A instrumentação pode ou não ser apoiada por ferramentas automatizadas. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 20 TIPOS DE TESTES . CAIXA-PRETA A lógica interna do sw é desconhecida e os testes só serão efetuados por exaustão. Se baseiam somente nas especificações existentes e nos dados de entrada. . CAIXA-BRANCA A estrutura lógica é conhecida, podendo ser valida por testes não exaustivos. >>> Premissa falsa (anos 60) : “A única maneira de testar um programa é pela sua sua execução na máquina”. - São os famosos testes no computador - Comentários: - Na época, as soluções eram estritamente operacionais; - Perfil do profissional era o Programador..... >>>Início dos anos 70... (G.M. Weimberg) (The psychology of Computer Programming) “Se programas são lidos (ou podem ser lidos) por pessoas, este seria um processo efetivo de deteção de erros” - São os famosos testes humanos - MÉTODOS DE TESTES: 1 - Teste entre o tempo que o programa é codificado e o tempo que inicia os testes de máquina; 2 - Aplicar os testes ao final de cada estágio do projeto. 4 - PRINCÍPIOS BÁSICOS DOS TESTES: P1 : “Testar tudo é (quase) impossível; Por limitações práticas : Imagine testar todos os contribuintes do IR !!! Deve-se testar o necessário, para que o mínimo suficiente seja atendido. Por impossibilidades teóricas: Prova matemática de correção de programas. P2 : “Testar é uma atividade trabalhosa, difícil e que exige criatividade” P3 : “Testar é uma forma de prevenção quanto a erros” P4 : “Os testes têm que ser planejados” P5 : “Testar exige independência (mental ou física)” Testes contribuem para aumento da produtividade e confiança Custos de correção de erros são mais baratos se encontrados mais cedo TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 21 PLANEJAMENTO DE TESTES Uma execução eficaz de testes exige: a) Plano de Testes b) Descrição dos testes c) Procedimentos de testes a) Plano de testes É um documento organizado que descreve alguma atividade de teste. a.1) Conteudo do plano - Objetivo dos testes - Ambiente dos testes (incluindo local de realização) - Cronograma de execução dos testes - Responsáveis pelos testes b) Descrição dos testes Informar quais os elementos de entrada que serão introduzidos e que saidas são esperadas.c) Procedimentos dos testes - Como os dados devem ser preparados e submetidos; - Como os resultados devem ser colhidos e analisados. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 22 5 - WALKTHROUGH, REVISÃO e INSPEÇÃO WALKTHROUGH: “É a revisão de qualquer produto (em elaboração), visando a identificação ( e não a solução) de problemas (erros, omissões, imprevisões, inconsistências,etc.) ou a confirmação da ausência deles.” DIFERENÇA BÁSICA ENTRE WALKTHROUGH e REVISÃO WALKTHROUGH REVISÃO Dinâmico Estático Exige total iteração Exige pouca ou nenhuma iteração OBJETIVOS DO WALKTHROUGH Identificação de erros visando assegurar que o produto esteja correto à primeira vista; Aumento da produtividade no desenvolvimento do software (programa ou sistema); Garantia de que os padrões estão sendo obedecidos; Auxilio no desenvolvimento de novos padrões; Aumentar o nivel de segurança do que está sendo feito; Ampliar o conhecimento - QUANDO APLICAR O “WALKTHROUGH”? Em cada ponto de revisão técnica exigida na metodologia de desenvolvimento de Sw. Exemplos: Validação do modelo conceitual / lógico do sistema; dos projetos de arquivos, telas, relatórios propostos; das soluções alternativas para construção do SW; Aprovação de fases do projeto do Sw, etc. - QUEM DEVE PARTICIPAR DO WALKTHROUGH? Equipe responsável pelo desenvolvimento, mais o usuário (conceitual), mais equipes que possuam interface de seu SW. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 23 I N S P E Ç Ã O “Conjunto de procedimentos e técnicas de deteção de erros, por grupo de leitores de código ou através de modelos de representação”. Um retrospecto: Teste de Mesa “O mais antigo processo de verificação de programas” Lembram-se ??? . Improdutivo? . Indisciplinado? . Inefetivo? Do teste de um só? “Há mais sinergia ao se fazer um Walkthrough ou mesmo uma Inspeção”!!! QUEM DEVE REALIZAR A INSPEÇÃO? O próprio desenvolvedor do software, juntamente com um programador mais experiente, mediado por um coordenador-moderador. Normalmente, o grupo de inspeção é organizado da seguinte forma: a) Moderador : Programador mais experiente b) Autor : Programador que construiu o programa c) Pelo menos 2 outros programadores: - Um especialista em testes; - Um de outra equipe A postura dos integrantes deve ser não defensiva; o espírito deve ser altruista! Funções/atividades dos membros da inspeção a) Moderador: - Conduzir imparcialmente a inspeção - Controlar a qualidade - Distribuir o material a ser inspecionado - Registrar a inspeção: apontar erros, propor correções. b) Autor: - Esclarecer dúvidas relativas ao trabalho por ele realizado. c) Dois (2) outros programadores: - Realizar a inspeção! QUAL A SIMILARIDADE COM O WALKTHROUGH? TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 24 Ambos fazem exame da situação do software. QUAL A DIFERENÇA COM RELAÇÃO AO WALKTHROUGH? WALKTHROUGH : . Os resultados são obtidos por consenso. INSPEÇÃO : Os resultados são obtidos pelo exame físico do software. PRINCIPAIS OBJETIVOS DA INSPEÇÃO Detetar erros , antes de implementar o software. Analisar o software através de um “Checklist de Inspeção”. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 25 T E S T E S Testes variam : de pessoa para pessoa de projeto para projeto de empresa para empresa Natureza dos testes Formal Informal Testes formais: Exigem plano organizado de testes (ver Planejamento de testes) Testes informais: Não possuem nenhum plano! É uma extensão natural do processo de codificação! Prática muito comum: “Bolar” os testes no terminal . **** Programadores de ambiente “on-line” tendem a fundir as atividades de desenvolvimento da lógica (codificação), depuração (eliminação de erros), e teste (medição de qualidade e correção). Nestes casos, se é determinado um erro e corrigido, o caso de teste terá que ser re-inventado. Ao ser re-inventado, teremos: - Mais trabalho - Falta de registro do teste anterior - Re-teste menos rigoroso que o anterior Um retrospecto: Teste de Mesa “O mais antigo processo de verificação de programas” Lembram-se ??? . Improdutivo? . Indisciplinado? . Inefetivo? Do teste de um só? TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 26 TESTES EM ESCALA TESTES EM PEQUENA ESCALA (TPE) TESTES EM GRANDE ESCALA (TGE) TESTES EM PEQUENA ESCALA (TPE) Compreende os testes de instruções, conjunto ou segmento de instruções, rotina; módulo; até o nível máximo de PROGRAMA. Programa Módulo 1 ......... Módulo N Segmento A ....... Segmento N Instrução 1 ........ Instrução N TESTES EM GRANDE ESCALA (TGE) Compreende os testes de grupos de módulos, programas, conjunto de programas, subsistema, até o nível máximo de SISTEMA. Sistema Subsistema 1 ..... Subsistema N Programa 1 ......... Programa N TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 27 8 - TESTES EM GRANDE ESCALA TESTES DE SISTEMA Categorias de testes de sistemas: 1 - FACILIDADE 2 - VOLUME 3 - PRESSÃO (STRESS) 4 - USABILIDADE 5 - SEGURANÇA 6 - DESEMPENHO 7 - ARMAZENAGEM 8 - CONFIGURAÇÃO 9 - CONVERSÃO/COMPATIBILIDADE 10 - INSTALABILIDADE 11 - GARANTIA 12 - RECUPERAÇÃO 13 - UTILIDADE 14 - DOCUMENTAÇÃO 15 - PROCEDIMENTOS TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 28 1. TESTES DE FACILIDADE Determina se cada facilidade (ou função) mencionada nos objetivos foi implementada. Exemplo: Se um dos objetivos é “Calcular o IR do empregado”, verificar se o software (programa ou sistema) satisfaz este objetivo). 2. TESTE DE VOLUME Submeter o software a enormes volumes de dados. Exemplos: Um compilador (que é um programa) seria alimentado por um programa fonte extremamente grande; Um programa “Linkage Editor” poderia ser alimentado por um programa aplicativo contendo milhares de módulos; Uma fila de serviço (job queue) seria preenchida totalmente para testar a capacidade do Sistema Operacional; Se um programa manipula arquivos envolvendo múltiplos volumes, ele seria checado para ver se ele muda de um arquivo para o outro; O propósito do Teste de Volume é mostrar que o programa (não) consegue manipular o volume de dados especificado em seus objetivos. 3. TESTE DE PRESSÃO (STRESS) Envolve submeter o software a pesadas cargas ou pressões.(Não confundir com teste de volume, pois o teste de stress envolve o elemento TEMPO!) Uma analogia com o datilógrafo: Capacidade de copiar um relatório contendo 500 folhas, de 300 palavras por folha (VOLUME) Capacidade de datilografar 180 palavras por minuto (PRESSÃO) Aplicabilidade: Em software de - controle de processo - iterativo - tempo real Exemplos: TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 29 Sistema de controle de tráfego aéreo controla até 200 aviões por setor qual a sua reação para mais de 200 ? Um Sistema Operacional que suporta 15 JOBs multiprogramados qual a sua reação para executar os 15 JOBs simultâneamente? Um sistema de tempo compartilhado (time-sharing) que suporta até 64 terminais o que ocorreria se 64 usuários de terminal tentassem dar “sign on” ao mesmo tempo? (normalmente há um colapso, e a saida é colocar o sistema no ar novamente) Simulador de vôo para treinamento de piloto (manipular vários instrumentos ao mesmo tempo) Sistema de controle de processos de geração de sinais (lembram-se do filme SINDROME DA CHINA?) Um sistema telefônico roteando chamadas simultâneas 4. TESTE DE USABILIDADE Leva em consideração os problemas relacionados a fatores humanos , tais como: a) as saidas dos programas são desprovidas de jargão “computês” b) as mensagens de erros são significativas ou necessita um PhD para decifrá-las? “IEK022A OPEN ERROR ON FILE YSYIN ABEND CODE = 102 “ ?!?!?! c) onde o cuidado e precisão são fatores vitais (ex.: sistemas bancários on-line) é a redundância suficiente na entrada? Exemplo: NÚMERO CONTA (e SENHA) e NOME CLIENTE d) o sistema contem um número excessivo de opções , ou as opções existentes são improváveis de serem usadas? e) os comandos “on-line”permitem facilidade de uso? ou requerem inúmeras navegações e repetidas “teclagens”? 5. TESTE DE SEGURANÇA É o processo que objetiva tentar projetar casos de testes que subvertam os checks de segurança do software. Exemplos: formular casos que subvertam o mecanismo de proteção de memória do sistema operacional. formular casos que subvertam o mecanismo de segurança de dados de um SGBD 6. TESTE DE DESEMPENHO O objetivo é demonstrar que o sistema (pode, não pode; consegue, não consegue) manipular o volume de dados e transações recebidas especificadas no modelo de TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 30 implementação do usuário, bem como se ele (apresenta, não apresenta) o tempo de resposta necessário. 7. TESTE DE ARMAZENAGEM O objetivo é mostrar que as quantidades de armazenagem requeridas de memória , principal e secundária , usadas pelo programa e os tamanhos dos arquivos temporários são insuficientes , ou estouram. 8. TESTE DE CONFIGURAÇÃO Consiste em submeter o programa a um determinado tipo de dispositivo de hardware e com a configuração mínima e máxima deste hardware. Incluem-se nestes casos para testes, os programas de: - sistemas operacionais - DBMS (ou SGBD) - Message-Switching (troca de mensagens) 9. TESTE DE COMPATIBILIDADE/CONVERSÃO O objetivo é testar a capacidade do software em atender aos procedimentos de conversão, seja de origem de um sistema deficiente proveniente de um sistema manual ou de processamento de dados. 10. TESTE DE INSTALABILIDADE Alguns tipos de SW têm procedimentos complicados para instalação. Exemplo: - O SYSGEN (System Generator) do OS/IBM 11. TESTE DE GARANTIA O objetivo é verificar a fidedignidade do programa em atender as características de garantia do mesmo. Exemplos: Um programa de transmissão de arquivo: é permitido um erro a cada 30 minutos de transmissão (MTTF = Mean-time-to-failure) O sistema TSPS (comutação telefônica) da Bell System pode sofrer uma interrupção de até 2 horas em 40 anos de operação. 12. TESTE DE RECUPERAÇÃO O objetivo é verificar se o software (pode, não pode) recuperar-se adequadamente de vários tipos de falhas (checkpoint restart). TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 31 Falhas: erro de programação falhas de hardware (erros de paridade de memória; de I/O;...) erros de dados (ruídos numa linha de comunicação; um ponteiro inválido num SGBD) 13. TESTE DE UTILIDADE O objetivo é verificar o nível de atendimento dos serviços auxiliares (*) prestados pelo software; o tempo médio para depuração de um problema; os procedimentos de manutenção; e a qualidade da documentação da lógica interna. Este tipo de teste é muito utilizado em BENCHMARK !!! (*) Serviços Auxiliares: - programas de DUMPs de memória; - programas de diagnóstico de erros (Ready Trace) 14. TESTE DE DOCUMENTAÇÃO O objetivo é verificar quanto à clareza e precisão de documentação. 15. TESTE DE PROCEDIMENTOS O objetivo é verificar se os procedimentos automatizados estão adequados aos não- automatizados e vice-versa. Exemplos: Procedimentos do controlador da produção; do operador do Sistema; do AD e ABD; usuário do terminal. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 32 (ANEXO : Ilustração de “Interoperabilidade”) Extraido de um artigo da DEC – Digital Equipment Corporation OBS. Nas figuras abaixo: RDB – significa Relational Data Base TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 33 21 Primeiro, resolvi apresentar uma planilha com os índices atuais de produtividade da empresa. Os dados estavam no RDB corporativo. Bastava passá-los para o VAX e, através do SW EXCEL, portá-los p/ o meu micro. Essa até que foi fácil! R D B PLANILHA INTEROPERABILIDADE Você sabe o que é INTEROPERABILIDADE? Pois é, eu também não sabia. Até que o chefe me encomendou um estudo sobre a produtividade de nossa empresa, para ser entregue em 24 horas. E eu quase entrei em pânico. Mas aí comecei a raciocinar .... TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 34 4 5 6 Agora, o problema. O meu estudo exigia um gráfico imenso, com o faturamento de todas as nossas filiais ao redor do mundo. E esse gráfico estava em mainframe parisiense...Mas, eu achei o caminho: via rede, trouxe o gráfico do mainframe para o VAX. Deste, levei para um Mac com Sw DECQuery, que também roda em PC. Assim,passei tudo para o meu micro. “Touché”. GRÁFICO 2 R D B OK ! Depois, pensei em acrescentar ao estudo um gráfico com os lucros dos últimos 5 anos. Este gráfico estava à minha disposição... em um Macintosh na filial de Londres! Sem problema: instalei no meu PC o Sw WPS-Plus, e trouxe o gráfico via Rede. Mais fácil, impossível !!! 3 GRÁFICO 1 TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor:José Geraldo Silva (TSTSWJG.doc/) Página: 35 8 Foi aí que eu lembrei de uma ilustração belíssima, feita por um técnico da filial de Tóquio, que valorizaria muito meu trabalho. A ilustração tinha sido criada em uma VAXstation e digitalizada no SW Express. Entrei na rede, acessei o Sw Excursion no PC, e trouxe o arquivo para o meu PC. “Arigatô”! ILUSTRAÇÃO 7 DESENHO TÉCNICO Por fim, faltava um desenho técnico do produto vendido por nossa empresa, para que eu pudesse apontar os componentes OEM mais caros. Este arquivo tinha sido feito no UNIX Cad do VAX da matriz, em Massachussets. Muito simples: importei-o para uma DecStation e, com o DecWrite, tirei uma prova a laser. Conferi se estava tudo bem e levei o arquivo para o meu PC. TESTES de SOFTWARE – uma visão _____________________________________________________________________ Autor: José Geraldo Silva (TSTSWJG.doc/) Página: 36 Pois bem: dados do RDB local, um gráfico de Londres, outro de Paris, uma ilustração japonesa e um diagrama técnico de Massachussets. Dei a volta ao mundo, mas consegui terminar tudo a tempo... E o trabalho ainda ficou com um certo ar internacional! 9 10 Parece milagre? Concordo. Mas o nome é outro: INTEROPERABILIDADE. Ou seja, todos os dados que v. precisa à sua disposição, não importando onde estejam ou em que plataforma. Para o mundo informatizado, isso é quase uma utopia. Mas para mim, foi um pouquinho mais: muitos elogios, uma promoção e alguns dias de licença, que ninguém é de ferro ... FIM
Compartilhar