Anda di halaman 1dari 18

Ncleo de Excelncia em Testes de Sistemas

Fundamentos de Teste de Software


Mdulo 1- Viso Geral de Testes de Software
Aula 1 Teste como Suporte para o Software

SUMRIO

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

INTRODUO ................................................................................................................ 3 Exemplos de casos de insucesso devido ausncia de teste ............................................. 3 Benefcios .......................................................................................................................... 5 Custo de teste no ciclo de vida do desenvolvimento de software ..................................... 6 O Papel do Testador .......................................................................................................... 7 Definio do conceito de teste (Erro, Defeito e Falha) ..................................................... 8 Padres conceituais que so referncias mundiais .......................................................... 10 Processo de teste ............................................................................................................. 13 Abrangncia na forma de conduo ................................................................................ 14 Atividade do processo de teste ........................................................................................ 14 Impacto na qualidade do produto .................................................................................... 15 Teste como processo de suporte...................................................................................... 16 Fases da garantia da qualidade ........................................................................................ 17 Validao e Verificao .................................................................................................. 18

ii

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

1.

INTRODUO
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/usurios mais exigentes, menos tolerncia a falhas, menos tolerncia aos atrasos das entregas. Para tanto:

Precisamos criar softwares MELHORES, dentro do PRAZO, com CUSTO BARATO e de forma mais RPIDA.

2. Exemplos de casos de insucesso devido ausncia de teste


Atualmente podemos perceber mais claramente qual o significado do custo quando no priorizamos os testes no ciclo de vida de nossos produtos. Abaixo descrevemos alguns casos de insucesso devido ausncia de teste. Em Junho de 1996, o primeiro lanamento do foguete Ariane 5 ( Ver Figura 1) da agncia espacial europia falhou 37,5 segundos aps sair do solo. Um erro de software levou o foguete a desviar da ascendente vertical e suas capacidades de auto-destruio foram ativadas.

Figura 1- Exemplos de casos de insucesso 3

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

Symantec compensa 50 mil vtimas de atualizao com falha na China. Cingapura Companhia oferece extenso de licena do Norton sem custos aos afetados pelo update que tirava arquivos de sistema de uso. Mais de um ms aps atualizar 50 mil PCs chineses com um update defeituoso, a Symantec decidiu compensar as vtimas. Em 18 de maio a empresa comeou a distribuir o update problemtico para o antivrus Norton, que classificou equivocadamente arquivos do sistema dos usurios como malwares e os colocou em quarentena, afetando o funcionamento do computador das vtimas e gerando uma onda de protestos na web.

Quando uma famosa livraria abriu os negcios online, a compra de um nmero negativo de livros significava que o total da transao envolvida deveria retornar para o comprador. A equipe de desenvolvimento no tinha antecipado que algum poderia solicitar a compra de um nmero negativo de livros e o cdigo foi desenvolvido para permitir o reembolso pela equipe administrativa.

No ms de abril de 2005 o site da rede americana de hotis Holliday Inn deveria ter entrado no ar com uma promoo para quem se hospedasse na sua rede no estado da Flrida nos EUA de 98 dlares o casal. Por um erro de programao o valor que entrou no site foi de 0,98 dlares. 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 deciso judicial, o hotel foi obrigado a honrar os seus compromissos. Isso custou ao Holliday Inn cerca de 500 mil dlares porque o analista de sistemas, achando que as alteraes eram pequenas, preferiu correr o risco de colocar o site no ar sem um teste de aceitao, que custaria em torno de 50 dlares. Se ele tivesse feito uma anlise de riscos, certamente no teria deixado de testar a aplicao.

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 questes de: Qualidade, Segurana, Economia, Negcio e Confiabilidade.

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

3. Benefcios
Quais os reais benefcios do investimento em testes? Conforme afirmado em vrios relatos de experincia e j percebido no mercado, os reais benefcios so a reduo em 70% do ndice de re-trabalho na correo de falhas em produo, reduo em 50% do tempo de homologao de uma nova verso. Alm disso, aumenta em aproximadamente 90% o ndice de falhas detectadas antes da produo onde o custo bem mais baixo, e aumenta a abrangncia dos testes. Portanto, de uma forma geral, os maiores benefcios so (Ver Figura 2):

Melhoria da qualidade do produto e do servio; Identificao de defeitos para reduzir as falhas; Reduo do custo de manuteno do software; Medio da qualidade atravs (Ex: nmero de defeitos encontrados, nmero de testes executados e percentual de cobertura do cdigo pelos testes); Adequao s regras contratuais, requisitos legais e padres industriais.

Figura 2 Benefcios da prtica de teste de software

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

4. Custo de teste no ciclo de vida do desenvolvimento de software


Para analisar os impactos das falhas encontradas no software necessrio 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 correo de um defeito tende a aumentar quanto mais tarde ele for encontrado. Os defeitos encontrados nas fases iniciais do projeto de desenvolvimento do software so mais baratos do que aqueles encontrados na produo. Um estudo realizado observou que, quanto mais tempo levarmos para corrigir uma falha, mais custosa ela ser. O grfico apresentado tem como objetivo mostrar a proporo do aumento, onde, ainda na fase de levantamento de requisitos, o custo para correo 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 unitrio e teste de integrao, 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 aceitao custar 10 mil e quando o software est em produo, estima-se que o custo para correo 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

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

5. O Papel do Testador
Diante dessas consideraes, o testador atua para prevenir que as falhas sejam observadas no software quando ele j est em produo, como tambm para provocar, o quanto antes, a maior quantidade de falhas possvel 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 so as possveis ameaas que o mesmo apresenta. Alm disso, a checagem dos processos de

desenvolvimento tambm precisa ser realizada como forma de minimizar, atravs da garantia da qualidade, as falhas observadas no produto final.

Figura 4 Papel do testador

O papel do testador executar as atividades centrais do esforo de teste, que envolve conduzir os testes necessrios, alm de registrar os resultados desses testes. Para desempenhar essa atividade necessrio:

Identificar a abordagem de implementao mais apropriada para um dado teste; Implementar testes individuais; Configurar e executar os testes; Registrar os resultados e verificar a execuo dos testes; Analisar erros de execuo e recuperar-se deles; Avaliar um entregvel com a inteno de encontrar defeitos. 7

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

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 tcnicas de teste; Capacidade para diagnosticar e resolver problemas; Conhecimento do sistema ou do aplicativo em teste (desejvel).

Diante deste contexto, podemos afirmar que o testador atravs da execuo dos testes visa adquirir confiana na qualidade atravs das informaes que o teste prov, ou prevenir a ocorrncia de falhas no ambiente de produo, pela deteco antecipada dos defeitos.

6. Definio do conceito de teste (Erro, Defeito e Falha)


No que se refere s definies da disciplina de teste, vale ressaltar que no existe um conjunto universal de definies relativas ao teste de software. Alguns conceitos so importantes para o entendimento e possveis adaptaes dos processos, fazendo parte da base para a disciplina de teste. Nesse contexto, imprescindvel entender o conceito de erro, defeito e falha. Embora esses termos e definies (vide figura 5) estejam diretamente ligados ao processo de desenvolvimento de software, vrios profissionais da rea de TI desconhecem o seu significado e suas respectivas diferenas. a. Erro: Erro humano que produz um resultado incorreto b. Defeito: Manifestao 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.

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

Figura 5- Erro, Defeito e Falha

Falha um evento; defeito um estado do software, causado por um erro.


Os defeitos podem ser originados de vrios fatores, tais como: Especificao de requisitos ambgua; Falha na gesto de mudanas dos requisitos; Profissionais que no possuem formao apropriada para construir os artefatos de software; Falha em declarar uma varivel de entrada de dados; Projeto no delimitava tempo suficiente para que pudesse ser construda uma especificao detalhada.

Os defeitos ocorrem no software porque os mesmos so escritos por pessoas, e por sua vez sabemos que as pessoas (profissionais) no conhecem e no dominam tudo. Entretanto, elas tm habilidades para tal responsabilidade, mas tambm no so perfeitas, o que nos leva a admitir que so suscetveis de cometer erros. E por ltimo, softwares so desenvolvidos sobre crescente presso para entreg-los em prazos rigorosos, sem tempo para checar as atividades realizadas. 9

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

7. Padres conceituais que so referncias mundiais


Aspectos Gerais das Normas/Padres Padres e Normas so criadas por grupos de profissionais e refletem um conhecimento coletivo. As duas maiores fontes de normas internacionais so: IEEE e ISO. Normas nacionais e de domnio especfico so tambm importantes e disponveis. Testadores devem estar atentos a normas que se aplicam ao seu ambiente ou contexto, sejam elas normas formais (internacionais, nacionais, ou de domnio especfico) ou normas internas e prticas recomendadas. Como normas evoluem e mudam necessrio especificar a verso (data de publicao) da norma para garantir que a conformidade seja obtida. Quando uma referncia a uma norma especificada sem data ou verso, ento a ltima verso considerada como sendo referenciada. Utilidade de Normas/Padres Normas/Padres podem ser usadas como um instrumento para promover uma garantia de qualidade construtiva, tal que mantm foco em minimizar os defeitos introduzidos ao invs de encontr-los atravs de teste. Coerncia & Conflitos Algumas normas podem ser deficientes em coerncia com outras normas, ou at fornecer definies conflitantes. deixado a cargo dos usurios 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 pas, o corpo nacional representativo da padronizao. Esse corpo internacional fomenta diversas normas teis para testadores de software, tais como:

10

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

ISO 9126:1998, que atualmente separada na seguinte norma e relatrios tcnicos (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: Mtricas externas. ISO/IEC TR 9126-3:2003 Engenharia de software Qualidade de Produto Parte 3: Mtricas internas. ISO/IEC TR 9126-4:2004 Engenharia de software Qualidade de produto Parte 4: Qualidade no uso de mtricas. 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 informao Avaliao de processo Parte 2: Realizando uma avaliao. Essa lista no exaustiva; outras normas ISO podem ser aplicveis ao contexto e ambiente de um testador. IEEE IEEE [www.ieee.org] o Institute of Electrical and Electronics Engineer, uma organizao profissional com sede nos EUA. Existem representantes nacionais disponveis em mais de uma centena de pases. Essa organizao fomenta diversas normas teis para testadores de software, tais como: IEEE 610:1991 Norma IEEE de dicionrio de computao. Uma compilao da norma IEEE de glossrio de computao. IEEE 829:1998 Norma IEEE de documentao de teste de software. IEEE 1028:1997 Norma IEEE de reviso de software. IEEE 1044:1995 Guia IEEE para classificao de anomalias de software. Essa lista no exaustiva; outras normas IEEE podem ser aplicveis ao contexto e ambiente de um testador.

11

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

Normas Nacionais Muitos pases tm suas normas especficas. Algumas dessas normas so aplicveis e/ou teis para o teste de software. Um exemplo seria a norma britnica BS-7925-1 e BS-79252:1998 Teste de software. A BS 7925-1 um glossrio de termos de teste de software, juntamente com o seu parceiro BS 7925-2 componentes de teste de software. Alm de tambm fornecerem uma descrio do processo de Teste de Componente. Portanto conclui-se que diversos padres so considerados referencias na disciplina de testes.

Porm, o mercado evidencia algumas normas mais que as outras (Ver figura 6). A referncia que aborda a terminologia da engenharia de software, a IEEE 610, define que teste o processo de operar um sistema ou componente atravs da observao dos resultados e avaliao de alguns aspectos de um determinado software. J a IEEE 829, que trata de documentao, diz que teste o processo de analisar o software para identificar as diferenas entre as condies existentes e as condies requeridas pelo cliente. No mbito do padro 7925-1, que apresenta um vocabulrio da disciplina, teste o processo de exercitar o software para verificar se o mesmo satisfaz os requisitos e para detectar os erros no cdigo.

Figura 6 - Padres

12

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

Diante dessas definies, vale ressaltar que todas as normas abordam o teste como um processo, atravs de uma atividade dinmica, onde o software executado para encontrar erros, e tambm uma atividade esttica, atravs da verificao das condies do sistema.

8. Processo de teste
O processo de teste pode ser entendido como uma sequncia de atividades executada para alcanar um objetivo especfico (Ver Figura 7).

Figura 7 Processo de teste

O Processo de Testes de Software representa uma estruturao de fases, atividades, artefatos, papis e responsabilidades que tem o objetivo de padronizar os trabalhos, alm de maximizar a organizao e monitoramento dos projetos de testes. Portanto, o objetivo do processo de teste fornecer informao para garantir a qualidade do produto, decises e processos para uma atividade de teste. Alm disso, o processo de teste busca garantir que nenhum passo crtico do processo seja esquecido, ou seja, que todas as atividades sejam realizadas na ordem correta. O ISTQB define que Teste um processo ao invs de uma atividade isolada, composta de um conjunto de atividades.

13

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

9. Abrangncia na forma de conduo


O objetivo desta abrangncia assegurar que o software cumpra rigorosamente as suas especificaes e atenda principalmente as necessidades do cliente. Diante desse contexto, o processo de teste pode ser tanto dinmico como esttico (Ver Figura 8): a. Dinmico: Acontece quando o cdigo executado para demonstrar os resultados dos testes rodados. b. Esttico: quando o teste realizado antes da execuo do cdigo, atravs de tcnicas de reviso, dentre as quais podemos citar a reviso informal, reviso tcnica e a inspeo.

Figura 8 Testes estticos e dinmicos

10. Atividade do processo de teste


O propsito do processo de teste fornecer informaes para garantir a qualidade do produto, as decises e os processos para uma misso de teste. As atividades so (Ver figura 9): Planejar e controlar o teste; Analisar e projetar o teste; Implementar e executar o teste; Avaliar o critrio de sada e reportar; Atividades de fechamento do teste. 14

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

Figura 9 Atividades do processo de teste

11. Impacto na qualidade do produto


Atualmente, podemos perceber que as organizaes tm de produzir produtos e/ou servios de qualidade no mais como uma estratgia de diferenciao de mercado, mas como uma condio de sobrevivncia. O conceito de Qualidade foi inicialmente associado definio de conformidade aos requisitos ou especificaes do produto. Posteriormente, essa definio evoluiu para a busca da satisfao do cliente. Entretanto, a satisfao do cliente no resultado apenas do grau de conformidade com os requisitos ou especificaes, mas tambm de outros fatores associados, tais como: prazo, condies de pagamento, atendimento, ps-venda, flexibilidade, dentre outros fatores. Focando essa realidade foi possvel perceber que a qualidade era fundamental no posicionamento estratgico da empresa perante o mercado. Alm disso, logo em seguida surgiu o termo Qualidade Total que representa a busca da satisfao, no somente do cliente, mas de toda a organizao que a compe , buscando a excelncia organizacional da empresa. A qualidade, conforme Crosby, est associada idia 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 especificaes, e estas especificaes variam para cada organizao, conforme estas percebem as necessidades de seus clientes. No seu mtodo no existe um padro de tolerncia a meta real exatamente zero defeito. J o autor Juran diz que Qualidade adequao ao uso, onde a adequao definida pelo consumidor mesmo quando ele deseja fazer algo fora do que o fabricante imaginou. 15

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

E no menos importante, referindo-se ao contexto da definio de qualidade, Deming frequentemente se referia ao efeito, e no ao conceito da qualidade. Para ele, os custos caem e a produtividade sobe, conforme a melhoria da qualidade alcanada por meio de melhor gesto. A busca da qualidade um dos principais objetivos da Engenharia de Software e muitos mtodos, tcnicas e ferramentas so desenvolvidos para apoiar a produo com qualidade. Atualmente tem-se dado grande importncia 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, atravs da avaliao das especificaes e conformidade com o software entregue. Alm disso, a adequao ao uso para atender s necessidades dos usurios e, consequentemente, atendimento s expectativas do cliente. As especificaes devem refletir as necessidades levantadas , que so importantes critrios para definir a qualidade do produto em questo.

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. Alm de estar relacionado com a elaborao da documentao tcnica, quando tudo que produzido factvel de ser analisado pela garantia da qualidade, atravs de teste esttico e suas atividades de reviso. Teste tambm faz interface com a atividade de manuteno, onde o software entregue e possivelmente ir gerar correes e novas funcionalidades. Alm disso, o teste importante para garantir o correto funcionamento do sistema em produo. 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 Gerncia de projetos Gerncia de configurao

16

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

Figura 10 Teste como processo de suporte

13. Fases da garantia da qualidade


A garantia da qualidade composta por 4 atividades. Primeiramente, os critrios de qualidade precisam ser definidos, que so declaraes sobre o nvel de qualidade a ser alcanado no software. Eles dependem da necessidade do negcio e tipo de produto em questo. A partir da definio dos critrios, existem duas atividades para averiguar se os critrios de qualidade foram alcanados no projeto, que a validade e a verificao do software. E, finalmente, a consolidao dos resultados obtidos atravs de relatrios e indicadores de qualidade. Vale ressaltar que o teste uma atividade que faz parte da garantia da qualidade, atravs de (Ver Figura 11):

a. Definio do critrio de qualidade b. Validao c. Verificao d. Relatrio de qualidade

Figura 11 Fases da garantia da qualidade 17

Fundamentos de Teste de Software Mdulo 01 Viso Geral de Testes de Software


Aula 01 Teste como Suporte para o Software

14. Validao e Verificao


A Validao e a Verificao so conceitos de grande importncia para a disciplina de teste, onde Validao a avaliao 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 especificao definida. A Verificao, por sua vez, a avaliao se o objeto foi desenvolvido da maneira prevista, onde devemos nos questionar se estamos desenvolvendo o produto corretamente. Para isso existe diversas tcnicas como, por exemplo, a inspeo e reviso(Ver figura 12).

Figura 12 Validao e Verificao

A Validao e Verificao asseguram que o software cumpra com suas especificaes e atenda s necessidades dos usurios. O processo de teste dividido em duas grandes reas: A estrutura do modelo V uma aproximao 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 deteco adiantada dos erros.

18

Anda mungkin juga menyukai