Вы находитесь на странице: 1из 6

Teste de software 1.

Viso Geral

Cada vez mais os softwares esto presentes na vida das pessoas, seja em celulares, bancos, avies, cirurgias, entre outros. Conseqentemente os mesmos esto se tornando cada vez mais complexos, devido ao surgimento de novas tecnologias. A maioria das pessoas passam por alguma experincia com um software que no funciona como o esperado, softwares que no funcionam corretamente podem levar a muitos problemas [1] e no inspiram confiana aos usurios. Existem vrios exemplos de softwares que geraram problemas na fase de produo, trazendo custos altos, m reputao nos negcios e at mesmo colocou em risco a vida de seres humanos como foi o caso de pacientes de um centro mdico para veteranos em Washington que receberam doses incorretas de medicamentos devido as informaes incorretas exibidas pelo sistema eletrnico de registros [2]. Um outro exemplo foi a pane no sistema do site ticketsforfun.com.br, na venda de ingressos do show da Madonna no Brasil, devido ao grande nmero de acessos simultneos causando atraso nas respostas e gerando informaes mltiplas que o sistema no conseguiu interpretar[3]. Para evitar problemas como os citados acima necessrio investir em testes, pois, testes em sistemas e em documentaes reduzem os riscos da ocorrncia de defeitos do software no ambiente de produo onde so encontrados pelo cliente, contribuindo assim para a qualidade dos sistemas, pois, quanto mais cedo os defeitos forem encontrados antes da implantao do sistema o custo de correo menor em relao ao encontrado da fase de produo afirma a regra 10 de Myers.[4] O grande desafio das empresas produzir softwares com qualidade, em um curto espao de tempo, com baixo custo e atender as expectativas do cliente com o produto desenvolvido, ou seja, atender aos requisitos impostos pelo mesmo. Realizar testes dentro de um processo com metodologia prpria o grande X da questo. Os testes tm por finalidade agregar qualidade ao produto podendo tambm fazer uma medio desta qualidade em relao aos defeitos encontrados, pois, caso sejam encontrados poucos defeitos, o software ser mais confivel, com os testes possvel tambm antecipar a descoberta de falhas e incompatibilidades, reduzindo assim o custo do projeto. Devido ao projeto de testes est definido e delimitado a partir do cronograma do projeto de desenvolvimento para se obter um nvel de cobertura aceitvel (Nmero de Requisitos Mapeados X Nmero de Requisitos Totais) dos testes importante que seja dado foco aos pontos crticos do sistema, os quais so de grande importncia para o negcio e que caso no sejam tratados adequadamente, podem gerar prejuzos inestimveis quando o software estiver na fase de produo. A falta de controle ou excesso de preciosismo por parte da equipe de teste pode tornar os testes custosos para o projeto, num momento em que o "custo x benefcio" dos testes no compensa mais para a empresa podendo considerar o momento ideal para interrupo dos testes. [4] Testar software no somente execut-lo com a inteno de encontrar erros, existem vrias atividades como: planejamento e controle, escolha das condies de teste, modelagem dos casos de teste, checagem dos resultados, avaliao de concluso dos testes, gerao de relatrios como tambm a reviso dos documentos. Algumas pessoas confundem a atividade de depurao (debbuging) com a atividade de teste, mas elas diferem. Pois, a atividade de teste pode demonstrar falhas que so causadas por defeitos enquanto a depurao uma atividade de desenvolvimento que repara o cdigo e checa se os defeitos foram corrigidos corretamente para ento ser feito um teste de confirmao por um testador com a inteno de certificar se o mesmo foi eliminado.

Outros conceitos chaves utilizados em testes so listados a seguir: [4] Defeito: o resultado de um erro encontrado num cdigo ou num documento. Erro: um engano cometido por seres humanos. Falha: o resultado ou manisfestao de um ou mais defeitos. Bug: um erro de lgica na programao de um determinado software.[6] Testware: Define toda a documentao de teste. Caso de Teste: uma descrio de um teste a ser executado. Um ou mais casos de teste costumam estar relacionados a um caso de uso. Sute de Testes: Pacote de casos de teste relacionados. Por exemplo: Sute de cadastro, sute de consulta. Plano de Teste: o documento de planejamento do projeto de teste equivalente ao Plano de Projeto definido pelo PMI (Project Management Institute). Script de Teste: uma automao da execuo de um caso de teste. 1.1 Ambiente de Testes O ambiente de testes deve ser definido pelo nvel de testes a ser executado, ou seja, quanto maior o nvel, mas, o ambiente de teste dever ser capaz de reproduzir as caractersticas do ambiente de produo. O ambiente de testes deve ser isolado, com processamento independente e caractersticas similares ao ambiente de desenvolvimento e produo e deve ser restrito equipe de testes para garantir a integridade dos testes realizados. [4] Logo adiante no item 5 feita uma abordagem sobre o funcionamento e o ambiente de uma fbrica de testes. 1.2 Dimenses do Teste Tcnica de Teste (Como Testar?): Tcnica o processo que assegura o funcionamento correto de alguns aspectos do software ou de uma unidade do software. Existem dois tipos de tcnicas de teste de software: A Estrutural que tende a revelar erros que ocorrem durante a codificao do programa, conhecida tambm como tcnica de Caixa Branca essa tcnica no determina o funcionamento correto da aplicao e sim da estrutura. E a Tcnica de Teste Funcional que garante o cumprimento dos requisitos pelo sistema essa tcnica conhecida tambm como tcnica de Caixa Preta. [4] Cada tcnica possui tipos de testes especficos que sero listados abaixo. Tipos de Testes (O Que Testar?): [4] 1. Tcnica de Teste Funcional Teste de Requisitos: Verifica se o sistema executado conforme o que foi especificado. So realizados atravs da criao de condies de testes e cheklists de funcionalidades. Teste de Regresso: Testa se algo mudou em relao ao que j estava funcionando corretamente, ou seja, voltar a testar segmentos j testados aps uma mudana em outra parte do software. Os testes de regresso devem ser feitos tanto no software quanto na documentao. Teste de Tratamento de Erros: Determina a capacidade do

software de tratar transaes incorretas. Esse tipo de teste requer que o testador pense negativamente e conduza testes como: entrar com dados cadastrais imprprios, tais como preos, salrios, etc., para determinar o comportamento do software na gesto desses erros. Produzir um conjunto de transaes contendo erros e introduzi-los no sistema para determinar se este administra os problemas. Teste de Suporte Manual: Verifica se os procedimentos de suporte manual esto documentados e completos, determina se as responsabilidades pelo suporte manual foram estabelecidas. Teste de Interconexo: Garante que a interconexo entre os softwares de aplicao funcione corretamente. Pois, softwares de aplicao costumam estar conectados com outros softwares de mesmo tipo. Teste de Controle: Assegura que o processamento seja realizado conforme sua inteno. Entre os controles esto a validao de dados, a integridade dos arquivos, as trilhas de auditoria, o backup e a recuperao, a documentao, entre outros. Teste Paralelo: Comparar os resultados do sistema atual com a verso anterior determinando se os resultados do novo sistema so consistentes com o processamento do antigo sistema ou da antiga verso. O teste paralelo exige que os mesmos dados de entrada rodem em duas verses da mesma aplicao. Por exemplo: caso a verso mude e os requisitos no, os dados de sada das duas verses devem ser iguais.

2.

Tcnicas de Teste Estrutural [4]

Teste de Execuo: Verifica os tempos de resposta, de processamento e o desempenho (performance), avaliando o comportamento do software no ambiente de produo e verificando se as premissas de desempenho so atendidas. Em um sistema que possui dez mdulos diferentes e que foi desenvolvido por equipes diferentes, o teste de execuo avalia o sistema como um todo, como se o teste de execuo fosse um play no sistema. Teste de Estresse: Avalia o comportamento do software sob condies crticas, tais como restries significativas de memria, espao em disco, etc., ou seja, coloca o software sob condies mnimas de operao. Teste de Recuperao: A recuperao a capacidade de reiniciar operaes aps a perda da integridade de uma aplicao como, por exemplo: Ao desligar o computador, queda de energia eltrica, entre outros. O teste de recuperao garante a continuidade das operaes aps um desastre. Teste de Operao: Avalia o processo e sua execuo, so desenhados para estabelecer se o sistema executvel durante a operao normal, um tipo de teste muito especfico, depende do software a ser testado um exemplo o software de Call Center. Teste de Conformidade: Verifica se o software foi desenvolvido de acordo com padres, normas, procedimentos e guias de TI.

Teste de Segurana: Avalia a adequao dos procedimentos de proteo e as contramedidas projetadas, para garantir a confidencialidade das informaes e a proteo dos dados contra o acesso no autorizado de terceiros. Estgios ou Nveis de Teste (Quando Testar?): a dimenso do teste que determina a fase do desenvolvimento se aplica um determinado teste. Esses testes so listados a seguir: Teste de Unidade: aplicado aos menores componentes de cdigo, feito pelos programadores e testa as unidades individuais: funes, objetos e componentes. Teste de Integrao ou Iterao: feito ao trmino de cada iterao para validar a execuo das funes referentes aos casos de uso, feito normalmente pelo analista de sistemas. Teste de Sistema: Executa o sistema como um todo para validar a execuo das funes acompanhando cenrios elaborados (casos de teste) por um analista de testes em um ambiente de testes. Teste de Aceitao: feito antes da implantao do software, o cliente quem executa este tipo de teste no ambiente de homologao, tem como objetivo verificar se o software est pronto para ser utilizado pelos usurios finais. 2. Ciclo de Vida de Testes O ciclo de vida de testes composto pelas seguintes etapas: Planejamento que a etapa onde se estabelece o que vai ser testado, em quanto tempo e em que momento os testes sero interrompidos. Preparao onde o objetivo preparar toda a estrutura do ambiente de testes como: equipamentos, configurao de hardware e softwares usados (sistemas operacionais, browsers, etc.), criao da massa de dados de teste, pessoal, ferramentas de automao, entre outros. Na etapa de Especificao a atividade principal elaborar e revisar os cenrios e roteiros de testes. Na Execuo executa-se os testes planejados e registrar os resultados obtidos e por fim na Entrega onde arquiva-se toda a documentao e descreve-se todas as ocorrncias do projeto relevantes para a melhoria do processo. [4] Para se obter resultados positivos nos projetos de testes necessrio que o mesmo inicie desde a especificao dos requisitos do sistema a ser implementado, ou seja, to logo comece o projeto de desenvolvimento do software inicia-se tambm em conjunto o projeto de testes de software. 3. Papis e Responsabilidades Os principais participantes no processo de testes so: Gerente de Teste: Tem como papel defender a qualidade dos testes, planejar e gerenciar os recursos e resolver os problemas que representam obstculos ao esforo de teste. [7] Lder de Teste: Pessoa responsvel pela liderana de um projeto de teste especfico, normalmente relacionado a um projeto de desenvolvimento, seja um projeto novo ou uma manuteno. [8] Analista de Teste: Elabora e modela os casos e roteiros de testes. Deve focar seu trabalho nas tcnicas de teste adequadas fase de teste trabalhada. Arquiteto de Teste: responsvel por montar a infra-estrutura de testes como:

ambiente, ferramentas, capacitao da equipe, entre outros. Testador: Executa os testes, o mesmo deve observar as condies de teste e respectivos passos de teste documentados pelo analista de teste e evidenciar os resultados de execuo. [7] Automatizador: Tem como papel automatizar as situaes de teste em ferramentas observando as condies de teste documentadas pelo analista de teste e automatizar a execuo desses testes na ferramenta utilizada. Normalmente so gerados scripts de teste que permitam a execuo de ciclos de teste sempre que se julgar necessrio.[8] Uma pessoa pode assumir mais de um dos papis citados acima como, por exemplo, um testador pode exercer o papel de um automatizador de testes tambm. 4. O Processo de Teste

O Processo de Testes de Software representa uma estrutura das etapas, atividades, artefatos, papis e responsabilidades buscando padronizar os trabalhos para um melhor controle dos projetos de testes. [5] O objetivo de um processo de teste (com metodologia prpria, ciclo de vida, etc.) minimizar os riscos causados por defeitos provenientes do processo de desenvolvimento como tambm a reduo de custos de correo de defeitos, pois, o custo do software (desenvolvimento + manuteno) tendem a ser memor quando o software bem testado. [4] A figura abaixo ilustra o processo de teste de software: Fonte: imasters 5. Fbrica de Testes

A fbrica de teste - FT um aprimoramento do modelo de fbrica de software, a criao das fbricas de software incrementou a velocidade de desenvolvimento e manuteno de aplicaes, mas no resolveu questes relacionadas qualidade dos produtos entregues. [10] A FT uma estrutura independente de profissionais com alta especializao e capacitao em processos e ferramentas de testes de software, tem como objetivo medir e avaliar a qualidade dos sistemas que esto sendo modificados, adaptados e construdos. O papel de um fbrica de testes aplicar o maior volume de testes simulando os principais cenrios de negcios avaliando antecipadamente a conformidade do produto com as especificaes do cliente. [9] Nas figuras abaixo possvel visualizar a reduo no prazo quando se utiliza a fbrica de testes com o processo de desenvolvimento de um software em paralelo com o de testes. No modelo de testes tradicionais a equipe de desenvolvimento consome 35 dias implementando novas funcionalidades solicitadas, aps este perodo liberada uma verso que ser submetida aos testes para avaliar o comportamento do sistema em relao aos requisitos. Como existe uma forte presso para cumprir os prazos, a equipe de desenvolvimento ir liberar uma verso mesmo que no esteja em condies de ser homologada, ou seja, com erros e com funcionalidades no implementadas. [11] Fonte: imasters [11]. No modelo da figura abaixo a FT concentra-se em reduzir o ciclo de desenvolvimento, atuando em paralelo equipe de desenvolvimento, participando ativamente do projeto, planejando antecipadamente as atividades gerando resultados

positivos. Uma das vantagens deste modelo a possibilidade de validao do andamento do projeto atravs de releases intermedirios, obtendo um real posicionamento sobre a situao do projeto, apontando exatamente quais funcionalidades esto com mais dificuldades de serem implementadas, possibilitando aes gerenciais antecipadas. [11]

Оценить