17
Teste de Software 3ª Edição revisada e atualizada Emerson Rios Trayahú Moreira Filho Rio de Janeiro, 2013

Teste de Software

Embed Size (px)

DESCRIPTION

Teste de Software

Citation preview

  • Teste de Software

    3 Edio revisada e atualizada

    Emerson RiosTrayah Moreira Filho

    Rio de Janeiro, 2013

    Book_testede Softawre.indb 1 14/06/2013 17:12:19

  • Nota dos autoresQuando decidimos focar o nosso trabalho em testes de software, a primeira dificul-dade que enfrentamos foi a falta de uma bibliografia em lngua portuguesa sobre este assunto. Isso ocorreu quando publicamos a primeira edio deste livro. Evidente-mente que, de 2002 at a data da publicao desta 3 edio, a situao mudou muito no Brasil, mas optamos por incluir esse esclarecimento, com o intuito de manter o registro de como esse trabalho iniciou. Tudo que conseguimos, na poca, foram li-vros em ingls relatando situaes muitas vezes estranhas nossa realidade.

    Um dos pontos de partida para qualquer projeto de teste de software a adoo de uma metodologia de testes consistente e adequada ao ambiente de desenvolvimento da empresa. Como no encontramos em 2002 nada em portugus sobre este assunto, resolvemos, aps um longo estudo das principais metodologias usadas na Europa e nos Estados Unidos, desenvolver uma metodologia de testes que fosse aderente nossa experincia e ao que conhecemos das organizaes onde trabalhamos, e de outras nas quais tivemos contato durante a nossa vida profissional. Essa metodologia foi o ponto de partida para este livro.

    Decidimos tambm que o livro seria direcionado queles que estivessem se inician-do no assunto de teste de software. Mais tarde, desde que o interesse se justifique, poderemos, em outros livros, expandir alguns tpicos que pela sua abrangncia dei-xaram de ser abordados neste livro de forma mais detalhada, pois, se assim fossem, descaracterizaria sua finalidade de ser um instrumento para quem inicia o assunto. Tpicos como Estimativas, Medies, Melhorias do Processo de Testes e Revises Tcnicas esto nessa situao; apesar de terem sido abordados com a consistncia suficiente para o seu uso nos projetos de testes das organizaes.

    No estgio atual do mercado brasileiro, por ocasio da primeira edio deste livro, o assunto de teste de software ainda no era tratado com a seriedade que j vinha sendo dada na Europa e nos Estados Unidos, onde vrios eventos especficos so promovidos anualmente. Esse quadro, evidentemente, mudou muito no Brasil, que atualmente pode ser listado como uma das referncias em teste de software no mun-do, principalmente em comparao com os pases do chamado BRICS (Brasil, Rs-sia, ndia, China e frica do Sul).

    Book_testede Softawre.indb 3 14/06/2013 17:12:20

  • IV - Teste de Software

    A primeira edio deste livro, lanado de forma pioneira no Brasil, certamente aju-dou muito na mudana do quadro que havia na poca. Dessa forma, esperamos com este livro pioneiro, estar dando o primeiro passo para que a qualidade dos softwares e sistemas de aplicao desenvolvidos no Brasil atinja patamares mais elevados.

    Para a terceira edio deste livro resolvemos incluir um captulo tratando a Anlise de Riscos em projetos de teste de software, pois testar sempre ser um exerccio de evitar riscos.

    Os autoresEmerson RiosEconomista formado pela UFF e ps-graduado em Engenharia de Sistemas pela COPPE/UFRJ. Possui, ainda, o ttulo de Master of Information Technologies obtido na AIIM/EUA. Trabalha com desenvolvimento de aplicaes desde 1971, tendo exercido diversos cargos de gerncia no BNH e, posteriormente, na Caixa Econmica Federal, atuando sempre na rea de TI.

    No BNH Banco Nacional de Habitao, foi Chefe Adjunto do Departamento de In-formtica e Chefe da rea de Desenvolvimento de Sistemas. Na Caixa, foi Coordena-dor do Projeto Internet, tendo exercido a Gerncia de Desenvolvimento de Aplicaes para a Internet no Rio de Janeiro. Ocupou, ainda na Caixa Econmica, os cargos de Gerente de Suporte e Gerente de Desenvolvimento de Sistemas. Foi fundador e Dire-tor do Brazilian Function Point Users Group BFPUG, e chegou a ser Diretor do Instituto Brasileiro de Simplificao de Procedimentos Mercantis SIMPRO-Brasil, junto ao qual representou o Brasil na ONU em Genebra, de 1997 a 2001, por ocasio do Frum Anual sobre Normatizao de Comrcio Eletrnico (UN-CEFACT).

    Ministrou aulas nos cursos de MBA da Fundao Getlio Vargas, onde lecionou An-lise de Pontos de Funo. Emerson tambm foi professor do curso de especializao em Gerncia Estratgica da Informao DEL/UFRJ. Trabalhou como consultor tcnico da Associao Latino-Americana de Desenvolvimento em Lima, Peru. Possui trs livros publicados na rea de informtica: Processamento de Dados e Informtica: Conceitos Bsicos (tica, 1987); Organizao da Informtica na Empresa (Campus, 1985); e Reconhecimento Inteligente de Caracteres (ICR/OCR): Imagens de Docu-mentos (CENADEM, 1997). Publicou, tambm, os seguintes livros na rea de Teste de Software: Documentao de Teste (Editora Imagem Art Studio), Carat Aplicado ao Teste de Software (Editora Imagem Art Studio), Anlise de Riscos em Projetos de Teste de Software (Editora Alta Books), Base de Conhecimento em Teste de Software (Editora Martins Fontes). Aps carreira de trinta e trs anos no BNH e na Caixa Eco-

    Book_testede Softawre.indb 4 14/06/2013 17:12:20

  • Nota dos autores - V

    nmica Federal, resolveu concentrar suas atividades na rea de Teste de Software. Tra-balhou como Gerente de Produto, na rea de Testes de Aplicaes, na SQA System Quality Assurance.

    Coordenador Regional para o Brasil da STAR Software Testing Analysis and Review e foi presidente e fundador da Associao Latino Americana de Teste de Sistemas ALATS (2002/2010). Atualmente, consultor da empresa Riosoft/Softex na rea de testes e de melhoria de processos e Diretor do Instituto de Teste de Software ITSiTEste. Ocupa tambm a presidncia do QAI Rio de Janeiro Chapter. professor do MBA sobre Qualidade de Software da UFRJ.

    Fale com o autor no e-mail: [email protected]

    Trayah Rodrigues Moreira FilhoGraduado em Estatstica pela ENCE e com especializao em Anlise de Sistemas pela PUC-RJ.

    Participou em Londres do Programa de Desenvolvimento Gerencial (PDG) para executivos seniores da BAT-Industries. Atua na rea de informtica desde 1968, ten-do exercido cargos tcnicos e gerenciais na Marinha de Guerra, Vulcan Material Plsticos, Souza Cruz, Origin C&P, SQA do Brasil Ltda, Path ITTS e iTeste. At 1993, dedicou-se Gerncia de Desenvolvimento de Sistemas, Planejamento Estratgico de Informtica, Metodologias e Ferramentas de Desenvolvimento de Sistemas, Pro-jetos de Introduo de Novas Tecnologias e Modificaes Organizacionais da rea de Informtica.

    Trayah foi professor da cadeira de Estatstica da Escola Naval. Desenvolveu e geren-ciou projetos de desenvolvimento de sistemas em diversas plataformas e para todas as reas de negcio das empresas onde trabalhou, tendo liderado o projeto que de-senvolveu e implantou o software do primeiro armazm automtico comandado por computador da Amrica Latina. Coordenou a preparao dos PDIs 90/92 e 93/95 da Souza Cruz. Criou e implantou a Metodologia de Desenvolvimento de Sistemas daquela empresa, participou da equipe que realizou o diagnstico de utilizao de informtica, cujas recomendaes alteraram os paradigmas tecnolgicos e organi-zacionais at ento praticados. Em 1994, iniciou novas atividades como Consultor, tendo se dedicado prioritariamente s atividades relacionadas com Gerncia de Pro-jetos e Programas, Escritrio de Projetos, Desenvolvimento de Sistemas e Qualidade e Teste de Software.

    Alm disso, gerenciou o Projeto de Estruturao e Implementao dos Escritrios de Projetos da Caixa Econmica Federal (Rio, So Paulo e Braslia). Coordenou a estruturao do Escritrio de Projetos da Golden Cross e elaborou a Metodo-

    Book_testede Softawre.indb 5 14/06/2013 17:12:20

  • VI - Teste de Software

    logia de Gerenciamento de Projetos da CETIP e Mitsubishi do Brasil. Participou da preparao do Planejamento Estratgico de TI do BNDES. Foi editor da colu-na de Gerncia de Projeto da revista DEVELOPERS e coautor dos livros Testes de Software (Editora Alta Books) e Base de Conhecimento de Teste de Software (Editora Martins Fontes). Participou como palestrante da COMDEX/RJ sobre o tema Planejamento Estratgico de Informtica. Ministrou diversos cursos sobre o tema Gerncia de Projetos, Escritrio de Projetos, Planejamento Estratgico de TI, Manuteno e Teste de Software . Foi Diretor da ALATS Associao Latino Americana de Teste de Software. Atualmente Diretor de Operaes da iTeste.

    Fale com o autor no e-mail: [email protected]

    Book_testede Softawre.indb 6 14/06/2013 17:12:20

  • 1: Intoduo ......................................................................................................1

    2: Viso geral do processo de testes .............................................................9

    3: Processo de testes ........................................................................................27

    4: Gesto do processo de testes ....................................................................81

    5: Estimativas ..................................................................................................91

    6: Infaesttra ............................................................................................125

    7: Melhoria do processo de teste ................................................................133

    8: Eros de Progamas ..................................................................................155

    9: Automao do processo de testes .........................................................161

    10: Revises Tcnicas ......................................................................................173

    11: Teste em Aplicaes Web na Interet ..................................................179

    12: Anlise de riscos ......................................................................................195

    13: Documentao de Teste ..........................................................................215

    Anexo 1: Pea teatal tecnolgica sobre testes ........................................267

    Anexo 2: Modelo de Avaliao de Matridade .....................................273

    Anexo 3: Relatrio de defeitos ...................................................................279

    Anexo 4: Roteiro para instalao de um Cento de Testes .................287

    Anexo 5: Agncia de Viagens ................................................................... 291

    Bibliogafia .....................................................................................................295

    Sumrio

    00.indd 7 20/06/2013 09:26:13

  • Book_testede Softawre.indb 8 14/06/2013 17:12:20

  • No mundo atual, j h algum tempo, o software desempenha um importante papel no apoio aos negcios das empresas, sendo em algumas delas parte intrnseca. As empresas que focam na internet no conseguem sobreviver sem o apoio de um software. Essa importncia tende a crescer em um mundo em que as atividades e pro-dutos tendem a depender cada vez mais do software.

    Por outro lado, desde os primeiros computadores comerciais, os softwares implanta-dos ou lanados no mercado tm se caracterizado, na sua maioria, por apresentarem um grande nmero de defeitos que afetam a usabilidade, a funcionalidade, a segu-rana e a confiabilidade dos mesmos, com impacto decisivo nos negcios, resultan-do, muitas vezes, em enormes prejuzos pela perda de participao de mercado ou por danos na imagem dos produtos lanados.

    Em um mundo globalizado, onde a internet um importante suporte aos negcios, um teste malfeito pode significar um caminho aberto para diversos problemas gra-ves, como por exemplo: fraudes, incorrees e bloqueios do site. Muitas vezes os usurios acabam abandonando o site, insatisfeitos com a sua usabilidade e/ou fun-cionalidade, causando enormes prejuzos imagem da organizao ou financeiros.

    Neste livro, empregaremos o termo Usurio para definir a pessoa (interna ou externa organizao) que utiliza o sistema e a pessoa (interna organizao) responsvel pelo apoio ao projeto de desenvolvimento e testes de um sistema.

    Esse termo foi escolhido para tais finalidades, apesar de existirem outros que tambm atendem a essas mesmas atividades.

    Informaes de mercado dizem que mais de 90% dos sistemas so liberados com graves defeitos.

    Softwares com problemas de performance e com defeitos na execuo so custo-sos. Os livros e revistas relatam dezenas de casos de softwares com falhas e os seus impactos, sendo que o relatrio The Economic Impact of Inadequate Infrastructure for Software Testing (NIST, May 2002), na poca, estimava que o custo total dos

    Nota

    1: Introduo

    Book_testede Softawre.indb 1 14/06/2013 17:12:20

  • 2 - Teste de Software

    softwares com defeitos para as organizaes nos EUA correspondia, em termos aproximados, a um valor um pouco abaixo de 1% do Produto Interno Bruto (PIB).

    Por este mesmo relatrio, o impacto na indstria produtora de software pela falta de tecnologia de testes robusta e padronizada, pode ser agrupado nas seguintes categorias:

    Aumento de falhas devido qualidade pobre.

    Aumento dos custos de desenvolvimento.

    Aumento do time to market devido ineficincia do processo de testes.

    Aumento do custo de suporte aos produtos no mercado.

    Informaes atualizadas deste estudo apontam para o mesmo resultado, mos-trando que muito pouco foi alterado na situao vigente da poca. As razes que encontramos que as aplicaes esto ficando cada vez mais complexas. Atual-mente, um software tem que se integrar com muitos ambientes e possui inmeros componentes que precisam se comunicar entre si. Desenvolver software est cada vez mais difcil e, como consequncia disso, a atividade de testar est cada vez mais complexa.

    Quando tratamos de testes, tambm nos referimos qualidade do software. No que sejam sinnimos, mas certamente o nvel de qualidade dos testes de um software um fator importante, entre outros, para definir a qualidade do produto final, que depende do processo de desenvolvimento desse software.

    Apesar do conceito de qualidade ser subjetivo e depender de cada organizao e/ou usurio, considera-se um software com qualidade quando:

    o nmero e a severidade dos defeitos residuais do processo de testes aceitvel pela organizao;

    o software entregue dentro do prazo e custo, atende aos requisitos e/ou s expectativas;

    foi construdo de tal maneira que possa ser mantido de forma eficiente aps sua implantao.

    Dentro deste contexto, em pocas passadas, as atividades do processo de testes fa-ziam parte do desenvolvimento de sistemas de informaes e influenciavam a qua-lidade dos softwares, porm, devido s presses crescentes para a liberao desses sistemas, tais atividades nem sempre eram executadas com a eficincia requerida. Alm disso, tradicionalmente, os responsveis por quase todos os estgios de testes eram os prprios desenvolvedores e os usurios, os quais, via de regra e por diver-sas razes, faziam com que sistemas mal testados fossem liberados para a operao.

    Book_testede Softawre.indb 2 14/06/2013 17:12:21

  • 1: Introduo - 3

    Por incrvel que possa parecer, grande parte das empresas ainda usam os seus de-senvolvedores para testarem os seus softwares. O que, em resumo, significa dizer que apesar de todas as mudanas ocorridas no ambiente de desenvolvimento, ainda testam as suas aplicaes de forma inadequada. No podemos afirmar que todas as empresas que desenvolvem aplicaes tm uma equipe de teste, pois isso ainda no a realidade do mercado.

    Por que essas falhas tm ocorrido com o processo de teste?

    1) A atividade de testar o software no tem sido tratada pelas organiza-es como uma verdadeira prtica formal. No dada a devida im-portncia essa atividade, que muitas vezes, ainda informal, sem metodologia e com funes/responsabilidades no definidas e sem um processo adequado.

    No existe uma gesto formal da atividade, sendo esta confundida com a prpria gesto do processo de desenvolvimento.

    2) Os testes so incompletos durante o desenvolvimento, implicando em problemas ocorridos aps sua implantao. Os custos para identificar e corrigir esses problemas podem ser de 100 a 1.000 vezes maiores do que se fossem realizados logo aps a sua introduo. A maioria das empresas no considera o teste um projeto.

    A insuficincia dos testes indicada por Capers Jones em Patterns of Software System Failure and Success como um dos principais motivos de falha nos Projetos de Desen-volvimento de Software e, segundo o Gartner Group (2001), apenas uma pequena parcela das aplicaes entregues (7%) atendem aos requisitos de tempo de resposta e performance.

    3) A abordagem de testes no foi adequada para as novas tecnologias. Na realidade, pouco esforo foi feito nas organizaes para adequar os procedimentos e reciclar o pessoal tcnico de testes para tratar as novas tecnologias.

    4) A estrutura organizacional para testes no tem se modificado. Quase todos os estgios de testes ainda so feitos pelos desenvolvedores. Nem todos eles gostam de testar o software. Outros no possuem o perfil de testador e/ou no so qualificados para executar as atividades de testes. A maioria dos desenvolvedores muito bem treinada para desenvolver sof tware , mas pouca ateno dada para a capacitao desses profissio-nais no processo e nas tcnicas de testes. Por outro lado, poucas organi-zaes adotam equipes/organizaes de testes independentes.

    Book_testede Softawre.indb 3 14/06/2013 17:12:21

  • 4 - Teste de Software

    5) Pouca utilizao de ferramentas de automao de testes. Por exemplo, certos tipos de testes em ambiente Cliente/Servidor e web no podem ser feitos de maneira eficaz sem o auxlio das ferramentas de testes.

    Reduzir os custos do desenvolvimento de sistemas e melhorar a qualidade dos pro-dutos finais so objetivos importantes das organizaes. Por outro lado, atingir esses objetivos um tremendo desafio devido ao crescente aumento da complexidade dos negcios que obriga a um correspondente aumento da complexidade dos sistemas e uma diminuio do seu ciclo de vida produtivo, ou seja, as atualizaes so muito mais frequentes. O tamanho dos softwares passou da ordem de milhares de linhas de cdigo para milhes ou at bilhes.

    Reduzir os custos de desenvolvimento e melhorar a qualidade dos produtos finais esto intimamente relacionados. Segundo Capers Jones (1986) e B. Boehm (1987), 44% do esforo de um projeto so dedicados ao retrabalho, ou seja, refazer o tra-balho j feito antes. Reduzir o retrabalho implica em realizar processos que identi-fiquem e corrijam defeitos o mais cedo possvel de forma a evitar retrabalhar esses defeitos mais adiante no projeto, quando o custo ser muito maior. Tais aes so de melhoria de qualidade.

    Da mesma forma, quando so realizados testes adequados e dentro das melhores prticas, contribui-se tambm para a melhoria da qualidade e reduo dos custos dos produtos finais, pela diminuio do retrabalho nos estgios posteriores de testes, durante a implantao e na manuteno.

    No livro, abordaremos de forma objetiva os principais aspectos da atividade de tes-tes, visando permitir que profissionais e organizaes envolvidas possam se estrutu-rar e se capacitar para a execuo dessa atividade.

    Alm disso, abordaremos, ainda que de forma superficial, o processo de Reviso Tcnica (ou Inspeo), tambm chamado de Teste de Verificao Esttico por al-guns autores, que um processo relevante e complementar ao de testes e cuja uti-lizao conjunta proporciona o melhor ndice de identificao e eliminao de defeitos, tanto nos documentos produzidos durante os testes como no cdigo pro-duzido pelos desenvolvedores.

    Com isso, esperamos que o nosso trabalho possa contribuir para melhorar a qualidade dos softwares produzidos e como consequncia reduzir os custos de desenvolvimento.

    Chamamos a ateno dos leitores para os seguintes pontos:

    Book_testede Softawre.indb 4 14/06/2013 17:12:21

  • 1: Introduo - 5

    a) A Metodologia de Testes contida no livro foi confeccionada para servir de elemento bsico para a elaborao e acompanhamento/monitorao do processo de testes, independentemente do fato da equipe de testes traba-lhar ou no com ferramentas de automao. Embora muitas vezes possa parecer que foi baseada exclusivamente no modelo de desenvolvimento de aplicaes em cascata (waterfall), pode tambm ser utilizada em outros modelos, como RUP e aplicada aos ciclos de interao nas metodologias geis. Para facilitar e tornar mais fcil o entendimento, utilizou-se o mode-lo em cascata, em vrias passagens do livro.

    b) A Metodologia de Testes deve ser aderente Metodologia de Desenvolvi-mento de Sistemas utilizada pela organizao. O processo de testes, quan-do usado, deve ter o seu incio nas primeiras fases do processo de desen-volvimento e serem realizados de forma simultnea, at a implantao dos softwares, para que os resultados esperados sejam atingidos.

    A Metodologia apresentada neste livro no deve ser autossuficiente e muitas vezes im-plicar na elaborao de normas complementares para dar suporte a sua implantao.

    c) As melhores prticas sugerem que a Metodologia de Testes, qualquer que seja a escolhida, deve ser implantada e consolidada na organizao antes da adoo da automao do processo.

    d) O Processo de Testes est inserido no contexto das atividades de Garan-tia e Controle da Qualidade de Software (Software Quality Assurance) das organizaes. As atividades do processo de testes atuam na deteco dos defeitos durante a execuo do processo de desenvolvimento de sis-temas, porm ambos devem ser definidos, alinhados e refinados siste-maticamente visando atuao preventiva dos problemas. A qualidade dos softwares s pode ser conhecida e melhorada se todos os processos forem trabalhados desta maneira.

    1.1 ROTEIRO PARA LEITURA DO LIVROO livro introduz o assunto de testes de software como um processo de vital impor-tncia para as organizaes que produzem software para uso interno ou para co-mercializao no mercado. Ele foi escrito com este objetivo e tambm dirigido aos gestores e executores das atividades de testes, sendo eles da rea de desenvolvimento de sistemas ou da rea de testes.

    Book_testede Softawre.indb 5 14/06/2013 17:12:21

  • 6 - Teste de Software

    Desta forma, procuramos dar um nvel de profundidade intermedirio aos diversos assuntos, s vezes, mais detalhado em alguns e menos em outros. Esta abordagem foi escolhida devido aos seguintes objetivos primordiais que pretendemos alcanar:

    mostrar as atividades de testes como um processo com suas prprias ca-ractersticas e integradas ao processo de desenvolvimento;

    chamar a ateno para as caractersticas intrnsecas do processo de testes e dar uma viso metodolgica e macro;

    motivar os gestores e executores a se aprofundarem mais nas tcnicas de avaliao das atividades, nas metodologias de execuo e nos mtodos de gesto;

    Recomendamos que o livro no seja lido de forma sequencial, e sim de acordo com o interesse em cada assunto.

    Desta forma, se o leitor:

    for uma pessoa leiga no assunto de testes de software, comece com os captulos: 1 INTRODUO 2 VISO GERAL DO PROCESSO DE TESTES 8 ERROS DE PROGRAMAS

    j estiver familiarizado com testes e quiser ter uma macroviso da exe-cuo atravs da metodologia de testes que apresentamos, passe direto para o captulo:

    3 PROCESSO DE TESTESDesejar tratar de topicos associados execuo, inclumos os seguintes captulos:

    5 ESTIMATIVAS, para aqueles que quiserem entender e se apro-fundarem nas tcnicas de clculo do tamanho de um projeto de testes e de estimativa das horas requeridas;

    10 REVISO TCNICA, para aqueles que tiverem interesse em melhorar o nvel de qualidade dos produtos resultantes das atividades do processo de testes, inclumos uma descrio resumida dessa tcni-ca de suma importncia como complemento aos testes;

    11 TESTES DE APLICAES WEB, para aqueles que estiverem participando de um projeto de desenvolvimento e/ou de teste de sis-tema para o ambiente Web, dedicamos este captulo para descrever as caractersticas importantes dos testes aplicados a esse ambiente.

    Book_testede Softawre.indb 6 14/06/2013 17:12:21

  • 1: Introduo - 7

    tiver interesse na gesto do processo, v direto para os captulos 4 GESTO DO PROCESSO DE TESTES 6 INFRAESTRUTURA 12 ANLISE DE RISCOS EM PROJETOS DE TESTE DE SOFTWARE

    for responsvel pela gesto do processo nas organizaes e estiver desejoso em conhecer os mtodos de avaliao e de preparao dos planos de me-lhoria do processo, visando o aumento do nvel de qualidade dos produtos resultantes das atividades do processo de testes e a eficincia do processo como um todo, recomendamos a leitura dos captulos

    7 MELHORIA DO PROCESSO DE TESTES 9 AUTOMAO DO PROCESSO DE TESTES

    Finalmente, desejamos que os leitores aproveitem este livro e nos deem esperanas de que a partir da, testar software passe a ter uma melhor apreciao contribuindo para um incremento na qualidade dos produtos. Essa ordem de leitura no impede o leitor de escolher o seu prprio caminho conforme o seu interesse no assunto. Al-guns captulos foram excludos da lista pois podem ser lidos a qualquer momento ou dentro de qualquer ordem, e o mesmo vlido para os anexos.

    Book_testede Softawre.indb 7 14/06/2013 17:12:21

  • Book_testede Softawre.indb 8 14/06/2013 17:12:21

  • 2: Viso geral do processo de testesNas dcadas de 1960 e 1970, os desenvolvedores dedicavam a maior parcela dos seus esforos nas atividades de codificao e nos testes unitrios. Estima-se que 80% destes esforos eram despendidos nestas atividades.

    Uma parcela menor era dedicada integrao dos programas e nos testes dos siste-mas. As atividades de testes eram consideradas um mal necessrio para provar aos usurios que os produtos funcionavam e no eram tratadas como um processo for-mal alinhado com as atividades do processo de desenvolvimento de sistemas (tam-bm poucas vezes tratado como processo).

    A partir dos anos 1980, durante o processo de desenvolvimento, passou a ser dada maior importncia analise dos requisitos ao desenho funcional e tcnico dos novos sistemas. Um esforo maior passou a ser dedicado integrao das diversas peas que compunham os softwares e ao teste destes para funcionarem como um sistema. As atividades de testes passaram a ser tratadas como processo formal, aparecendo as Metodologias de Testes que evoluram at os dias de hoje.

    No livro, utilizaremos o termo Requisitos para definir o conjunto de especificaes que explicitam as funcionalidades e as necessidades de carter tcnico da aplicao para apoio a uma funo de negcio da organizao.

    Nos ltimos anos, com a utilizao da internet para a realizao de negcios, houve uma mudana significativa na abrangncia e complexidade das aplicaes, onde fa-tores, tais como segurana e performance passam a ser relevantes, tornando a ativi-dade de testar cada vez mais especializada.

    Atualmente, um site fora do ar por defeitos de programa poder comprometer seriamente o negcio e/ou a imagem da organizao.

    Nota

    Nota

    Book_testede Softawre.indb 9 14/06/2013 17:12:21

  • 10 - Teste de Software

    2.1 O QUE TESTE DE SOFTWAREExistem diversas definies para teste de software:

    verificar se o software est fazendo o que deveria fazer, de acordo com os seus requisitos, e no o que no deveria fazer;

    processo de executar um programa ou sistema com a inteno de encon-trar defeitos (teste negativo) (Glen Myers 1979);

    qualquer atividade que a partir da avaliao de um atributo ou capacida-de de um programa ou sistema seja possvel determinar se ele alcana os resultados desejados (Bill Hetzel 1988).

    Muitas outras definies poderiam ser ainda citadas, porm em essncia, teste de software o processo que visa a sua execuo de forma controlada, com o objetivo de avaliar o seu comportamento baseado no que foi especificado. A execuo dos testes considerada um tipo de validao.Na prtica, no se pode testar um programa por completo e garantir que ele ficar li-vre de bugs. quase impossvel testar todas as possibilidades de formas e alternativas de entrada de dados, bem como testar as diversas possibilidades e condies criadas pela lgica do programador.

    Segundo uma estimativa de Beizer (1990), a mdia do nmero de defeitos em pro-gramas liberados para testes de 1 a 3 por 100 instrues executveis. Claro, existem diferenas entre os programadores, entretanto uma coisa certa, todos eles cometem erros seja em grau maior ou menor.

    Se no se podem descobrir todos os defeitos de um programa e em decorrncia disso nunca se pode afirmar que ele est 100% correto, por que testar? Porque o propsito dos testes descobrir e corrigir os problemas e com isto melhorar a sua qualidade. O quanto se quer melhorar depender de quanto se deseja investir.

    A qualidade do software depende do investimento feito no processo de testes.

    Um software mal testado poder custar caro (e muito) para a organizao.

    Dentro do processo de testes existem tambm as tcnicas de verificao, tais como: inspeo, reviso de produtos e walkthroughs. Estas tcnicas baseadas em reunies e check-lists servem para identificar defeitos de elaborao, descumprimento de pa-dres e das boas prticas. Devem ser realizados em documentos produzidos, planos,

    Nota

    Book_testede Softawre.indb 10 14/06/2013 17:12:21