Baixe o app para aproveitar ainda mais
Prévia do material em texto
TESTES DE SOFTWARE E GERÊNCIA DE CONFIGURAÇÃO Jeanine dos Santos Barreto Planejamento de testes Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: Elaborar o planejamento de testes. Identificar o plano de testes segundo a Norma IEEE 829. Descrever o plano de testes conforme o PMBOK. Introdução Antes de realizar os testes de software, é fundamental planejá-los. Por meio do planejamento dos testes, são conhecidos aspectos como as fun- cionalidades e partes do software que precisam ou não ser testadas, os responsáveis pelos testes, o prazo em que os testes serão realizados e os riscos para a atividade. Além disso, por meio do planejamento são elabo- rados documentos que servem para sanar problemas no projeto atual e embasar projetos de software futuros, buscando não repetir os mesmos erros. Neste capítulo, você vai estudar o planejamento de testes, bem como o plano de testes segundo a norma IEEE 829 e também conforme o PMBOK. O planejamento de testes Atualmente, vem crescendo a demanda por softwares dos mais variados tipos. Isso ocorre pois as pessoas e as empresas compreenderam que precisam deles para desempenhar as mais diversas atividades do seu dia a dia, desde as de lazer até as profi ssionais. Por isso, as empresas que fabricam softwares recebem muitas exigências relacionadas à qualidade do produto que entregam para seus clientes. Para que essas exigências sejam atendidas, é preciso acompanhar as tendências tecnológicas do mercado, mas, antes de tudo, entregar para os clientes aquilo que eles realmente desejam com os softwares, nada menos do que isso. Para que os softwares produzidos tenham qualidade, a melhoria dos processos de engenharia de software deve ser uma prática constante dos profissionais. Como C04_Planejamento_testes.indd 1 27/02/2019 10:29:21 você pode imaginar, existem modelos para indicar alguns processos fundamentais. Nem todos esses modelos dizem a mesma coisa, mas é consenso que o software precisa ser testado e que os testes devem ser realizados do início ao fim do projeto. Assim, o teste é um momento essencial no projeto de desenvolvimento de um software. Afinal, ele demonstra se os trabalhos estão seguindo o caminho correto. Contudo, poucas são as equipes de desenvolvimento ou as empresas fabricantes de software que dão a devida importância aos testes. Muitas vezes, o processo se resume a alguns poucos testes unitários durante a codificação, não estruturados nem sistematizados — isso quando algum teste é efetivamente realizado. Em uma situação ideal, deve haver um grupo de testadores disponíveis para testar os softwares que estão sendo produzidos. Além disso, desses testes, devem resultar relatórios contendo registros detalhados de como os testes foram feitos e ainda de todas as anomalias encontradas. A ideia é informar aos desenvolvedores e responsáveis pelo projeto sobre tudo o que precisa ser corrigido ou melhorado para que o produto final chegue às mãos do cliente de maneira satisfatória. Como na maioria das vezes isso não existe ou não é possível, uma alternativa é escolher algum analista que não esteja envolvido diretamente na codificação para realizar os testes de software. Para isso, é preciso que a empresa decida quais são as partes críticas do sistema, ou seja, aquelas que necessitam ser testadas. Durante os testes de um software, são executados conjuntos de atividades que servem para percorrer tudo o que foi produzido no software até o momento. É necessário buscar e identificar erros, defeitos e falhas de codificação ou interface que possam interferir no funcionamento correto do aplicativo. Via de regra, por meio dos testes se pretende encontrar a maioria dos pro- blemas, pois é praticamente impossível encontrar todos. Caso a realização dos testes não detecte nenhum problema, é mais indicado entender que os testes não foram bem feitos do que acreditar que o software foi feito com 100% da precisão e da qualidade esperadas. A realização dos testes é fundamental no projeto de produção de software. Ela tende a aumentar a confiabilidade e a segurança do produto final entregue ao usuário. Planejamento de testes2 C04_Planejamento_testes.indd 2 27/02/2019 10:29:21 Os testes são realizados por meio da entrada de dados no sistema para se verificar que tipo de resultado é recebido. Sempre que a resposta obtida for aquela prevista nos requisitos do sistema, as informações geradas pelo software são legítimas e confiáveis. Os testes precisam ser planejados para depois serem transformados em casos de teste. Em seguida, ocorre a sua realização propriamente dita e a elaboração de um relatório em que constam todos os problemas identificados. O planejamento dos testes de software precisa ser realizado antes mesmo que a codificação do software tenha início. Isso ocorre pois é preciso definir o que o software deverá fazer e como ele será construído. A partir disso, é possível ter em mente tudo o que precisará ser testado e de que maneira isso será feito. A proposta é ter certeza de que a aplicação atende aos requisitos e às necessidades especificadas. O planejamento de testes tem alguns objetivos principais (PRESSMAN, 2011), como você pode ver a seguir: identificar quais funcionalidades e componentes do software deverão ser testados em cada momento; apontar os recursos necessários para que os testes sejam executados de maneira adequada, o que envolve recursos humanos, tecnológicos e inclusive de ambiente; recomendar e descrever as técnicas e estratégias que serão utilizadas ao longo da realização das atividades de teste; descrever a maneira como os testes serão realizados, para que os tes- tadores possam seguir esse procedimento; indicar o tipo de relatório que o ciclo de testes deverá produzir e o que ele deve conter, como as atividades de teste realizadas, a data, a hora de início e fim do teste, o nome do testador responsável, os resultados obtidos e os problemas identificados. O plano de teste precisa envolver, disponibilizar e documentar tudo o que for referente ao projeto de software que está sendo desenvolvido, principalmente seus requisitos funcionais e não funcionais. Desse modo, os testadores podem entender o que deverá ser testado no software. 3Planejamento de testes C04_Planejamento_testes.indd 3 27/02/2019 10:29:22 Os requisitos de um software envolvem tudo aquilo que o usuário tem de necessidades, expectativas e desejos para serem satisfeitos por meio da utilização do sistema. Os requisitos funcionais são aqueles que podem ser atendidos com as funcionalidades do software; eles definem o que o sistema precisa fazer. Exemplos de requisitos funcionais são: consultar saldo em conta bancária, emitir relatório mensal de despesas, incluir, alterar e excluir clientes. Já os requisitos não funcionais do software definem como o sistema vai fazer as coisas. Eles não se relacionam diretamente com as funcionalidades oferecidas, e sim com aspectos de qualidade, desenvolvimento, tempo, espaço e segurança. Exemplos de requisitos não funcionais são: facilidade de uso, medida por meio do número de cliques utilizados e do tempo de treino necessário para utilizar o software, portabilidade para outro sistema e linguagem de programação a ser utilizada. Existem basicamente três documentos fundamentais para um bom pla- nejamento de testes de software. Eles se aplicam principalmente quando a empresa não adotou um padrão internacional para a documentação dos seus testes, uma vez que o importante é testar e documentar os testes, sem que seja preciso seguir uma diretriz ou princípio preestabelecido. Você pode conhecer melhor esses documentos a seguir (PRESSMAN, 2011). Plano de teste: esse documento deve ser o fundamento para o início das atividades de teste de software. Nele, devem constar todas as atividades de teste que serão realizadas, o seu escopo, a cobertura dos testes, as funcionalidadesou as partes do software que serão testadas e as que não o serão (incluindo o motivo), as restrições, os requisitos de ambiente, os critérios de validação e os responsáveis por cada uma das atividades. Caso de teste: é o documento que descreve detalhadamente o teste de uma parte específica. Ele deve apresentar os valores de entrada que serão utilizados, as restrições para a sua realização, o resultado obtido e ainda o comportamento esperado. Roteiro de teste: esse é o documento que descreve o procedimento, ou passo a passo, necessário para que sejam realizados os casos de teste ou um conjunto de casos de teste. Planejamento de testes4 C04_Planejamento_testes.indd 4 27/02/2019 10:29:22 O grande propósito dos testes de software é avaliar se o software se com- porta da maneira esperada e produz as saídas desejadas. De preferência, deve-se utilizar um ambiente controlado para as atividades de teste. Para isso, é preciso planejar de maneira antecipada como fazer esses testes. Afinal, apesar de a atividade de teste parecer algo simples, quando não é realizada da maneira correta, ela pode trazer prejuízo para a empresa, principalmente com relação a prazos e custos de manutenção de código. O plano de testes segundo a norma IEEE 829 A norma 829 do Instituto de Engenheiros Eletricistas e Eletrônicos (IEEE) é conhecida como Padrão para Documentação de Teste de Software. Ela está vinculada à realização de testes na produção de software, mas estabelece padrões e diretrizes apenas para a parte da documentação. A norma IEEE 829 não traz princípios ou diretrizes sobre quais do- cumentos devem ser elaborados, nem define que conteúdo eles devem conter. Ela apenas apresenta padrões para serem utilizados nos formatos dos documentos. O estabelecimento de formatos para os documentos dos processos de teste de software tem como propósito principal simplificar a leitura desses docu- mentos. Por meio da padronização, é possível entender sobre o que trata cada parte do documento e saber qual documento deve ser estudado previamente, uma vez que as seções dos documentos são iguais para todos os projetos (PRESSMAN, 2011). Além disso, a norma IEEE 829 pretende facilitar a comunicação entre os integrantes da equipe de projeto de software. Isso ocorre por meio da organização e da padronização da documentação, garantindo a eficácia dessa documentação para a realização dos testes. Basicamente, a norma IEEE 829 traz oito sugestões de documentos que auxiliam no planejamento e na execução dos testes de software. Não é preciso que o fabricante do software utilize todos eles, mas, sempre que utilizá-los, é interessante que siga a padronização estabelecida, que você pode ver a seguir (INSTITUTO DE ENGENHEIRO ELETRICISTAS E ELETRÔNICOS, 2008). 5Planejamento de testes C04_Planejamento_testes.indd 5 27/02/2019 10:29:22 Plano de testes O plano de testes deve apresentar o planejamento para a realização dos testes. Ele inclui vários aspectos e elementos envolvidos de maneira mais detalhada durante os testes, citando-os ligeiramente para que sejam abordados de maneira mais descritiva e detalhada nos demais documentos. O plano de testes serve como uma entrada para a construção de outros documentos relacionados ao planejamento de testes. Certamente, o documento de plano de testes é o mais importante, pois serve como um norte para os demais, além de facilitar a comunicação entre os envolvidos no projeto, devido à padronização adotada. De forma geral, é importante que o documento de plano de testes conte- nha: o escopo dos testes, os recursos humanos e tecnológicos, a abordagem utilizada (atividades, técnicas e ferramentas usadas), o tempo disponível para cada atividade de teste, os itens e funcionalidades que serão testados, os riscos envolvidos, os responsáveis pelos testes, a versão testada, os motivos de testar ou não cada um dos itens e funcionalidades, os critérios de aceitação para cada item testado, os critérios de suspensão para as atividades de teste, os artefatos produzidos quando terminados os testes (relatórios, memorandos, logs), o ambiente necessário para a realização dos testes, a data de início e fim dos testes, bem como as aprovações dos testes (nomes e cargos dos responsáveis pela aprovação do plano de testes, com assinatura e data). Especificação de testes Esse documento envolve outros três possíveis documentos. Juntos, eles identifi cam todos os casos de teste, bem como os procedimentos de execução de cada um. Além disso, indicam os critérios de aprovação para cada caso de teste, de maneira bem mais detalhada, refi nada e descritiva do que no plano de testes. Especificação do projeto de teste: traz uma identificação de todas as funcionalidades e as características do projeto que precisam ser testadas em cada momento. Especificação de casos de teste: define quais casos de teste serão realizados e, para cada um deles, quais serão os dados de entrada, quais Planejamento de testes6 C04_Planejamento_testes.indd 6 27/02/2019 10:29:22 serão as saídas ou resultados desejados, bem como as ações e todas as condições gerais necessárias para a execução dos testes. Especificação dos procedimentos de teste: envolve a especificação dos procedimentos e o passo a passo para a execução de um conjunto específico de casos de teste. Relatórios São envolvidos por quatro possíveis documentos, que têm como objetivo manter registros de detalhes importantes identifi cados durante as atividades de teste de software. Diário de teste: apresenta apontamentos e registros dos detalhes mais importantes que foram identificados durante a realização dos testes. Os registros devem ser feitos de maneira cronológica, por isso o nome “diário”. O diário é importante também pelo fato de guardar um histórico das falhas encontradas, permitindo que, após o final do projeto de de- senvolvimento do software, sejam feitos estudos e haja um aprendizado acerca dos erros cometidos. Relatório de incidentes de teste: traz uma documentação detalhada de todo e qualquer evento que aconteça durante a realização das atividades de teste, principalmente aqueles que vão precisar de uma avaliação posterior. Os erros que forem encontrados durante a realização dos testes precisam ser documentados de maneira detalhada, para que possam auxiliar os desenvol- vedores e demais integrantes da equipe na reprodução do erro, o que serve para facilitar a solução do problema encontrado. É muito importante que sejam registrados todos os incidentes ou eventos que aconteceram durante as atividades de teste em um relatório único, para que sirvam de base para quem for efetuar ajustes na codificação e no projeto como um todo. Relatório de resumo de testes: esse documento deve apresentar, de forma resumida, todos os resultados obtidos com as atividades de teste. Ainda deve indicar a qual funcionalidade ou especificação do projeto ele está vinculado, para que se possam fazer avaliações e análises de acordo com esses resultados. Relatório de encaminhamento de itens de teste: esse documento serve especificamente para o caso em que existem equipes distintas para testar as diferentes partes do software. Ele apresenta os itens que foram encaminhados para teste e indica para qual equipe foram designados. 7Planejamento de testes C04_Planejamento_testes.indd 7 27/02/2019 10:29:22 Outros documentos A norma 829 traz ainda um método de implantação para o processo de testes de software, sugerindo outros dois documentos para esse fi m, descritos a seguir (INSTITUTO DE ENGENHEIRO ELETRICISTAS E ELETRÔNICOS, 2008). Guia de elaboração de documentos de teste de software: esse docu- mento serve como um fundamento ou uma diretriz para a elaboração dos documentos de teste de software. Processos de elaboração de documentos de teste de software: esse documento traz todo o processo de preparar, executar e registrar o resultado das atividades de teste, afim de que sirva de orientação geral para os integrantes da equipe. Essa norma não pretende impor documentos a todas as empresas nem a todos os projetos de software desenvolvidos, mas ela serve como uma boa diretriz. Independentemente de quais documentos sejam escolhidos, ou ainda da forma como eles serão adaptados à realidade da empresa e de seus projetos, é importante que eles envolvam e descrevam o planejamento, o projeto, os casos de teste e ainda os procedimentos de teste. A norma IEEE 829 separa as atividades de teste de software nas etapas de preparação para o teste, execução dos testes e registro das atividades de testes. Além de apresentar esse conjunto de documentos e sugestões de elaboração para cada um, a norma traz um grupo de informações necessárias para efetuar testes de produtos de software, sejam eles simples ou complexos, grandes ou pequenos. É uma norma que, se bem utilizada e adaptada à realidade da empresa, auxilia a gestão do projeto em muitos aspectos. O plano de testes conforme o PMBOK Um bom planejamento de testes é aquele que reúne documentos em que são registradas todas as atividades realizadas e todos os resultados obtidos. De preferência, essa documentação deve seguir uma padronização ou um modelo, que não necessariamente precisa ter reconhecimento internacional, mas deve, no mínimo, ter sido elaborado e sistematizado pela empresa fabricante do software. O plano de testes é um documento importante durante a realização dos testes de software, independentemente do modelo adotado pela pessoa ou pela empresa que estiver fabricando a aplicação. O importante é que o plane- Planejamento de testes8 C04_Planejamento_testes.indd 8 27/02/2019 10:29:22 jamento de testes melhora a organização, a objetividade, a padronização e o gerenciamento dos testes. O Project Management Institute (PMI — Instituto de Gerenciamento de Projetos), por meio do PMBOK, encara os testes de software como um projeto independente, com características e atividades próprias, o que, na realidade, pode trazer muito mais credibilidade ao resultado final. Em outras palavras, o PMBOK não define uma padronização para a documentação dos testes, pois eles são vistos como um projeto independente do projeto de desenvolvimento do software, com etapas independentes da codificação e do restante das atividades. O Project Management Institute consiste em uma das maiores associações para profissionais ligados à área de gerenciamento de projetos. Sua finalidade é auxiliar os gestores de projeto e demais membros a aumentar o sucesso das empresas e evoluir em suas carreiras por meio do amadurecimento da profissão. O PMI é responsável pelo PMBOK, que é o Guia do Conhecimento em Gerenciamento de Projetos. Ele é um documento extenso, que traz as melhores práticas existentes em gerenciamento de projetos. Para saber mais sobre o PMI e o PMBOK, acesse o link ou o código a seguir. https://goo.gl/JNZiiH O PMBOK divide a gestão de projetos em 10 áreas de conhecimento. Essas áreas de conhecimento fazem referência a qualquer tipo de projeto, mas, segundo o PMI, os testes que devem ser realizados durante o desenvolvimento de projetos de software podem perfeitamente seguir essas áreas para definir a sua documentação (PROJECT MANAGEMENT INSTITUTE, 2016). Então, se o PMBOK for utilizado para a elaboração do projeto de testes, as áreas de conhecimento listadas a seguir deverão ser abrangidas (PROJECT MANAGEMENT INSTITUTE, 2016). Gerenciamento de escopo: o escopo serve para definir exatamente a extensão do projeto de testes, incluindo o ponto em que podem existir interfaces com outros softwares que estejam prontos ou sendo construí- 9Planejamento de testes C04_Planejamento_testes.indd 9 27/02/2019 10:29:22 dos. O escopo serve para definir de maneira clara e objetiva o que deverá e o que não deverá ser testado, incluindo motivos para essa escolha. Gerenciamento de custos: é fundamental dimensionar o tamanho do projeto de testes para ter uma noção clara de quanto ele vai custar e de quais serão as despesas provenientes dele. É possível incluir aqui despesas com contratação de testadores ou ainda deslocamento de testadores até o ambiente propício para os testes. Gerenciamento de tempo: da mesma forma como o dimensionamento dos custos, o dimensionamento de tempo e prazo para o projeto de testes é uma tarefa básica. É preciso estabelecer um cronograma de testes diretamente vinculado ao tamanho do projeto de desenvolvimento de software, para que seja um retrato da realidade e passível de ser atendido. Gerenciamento de qualidade: é preciso elaborar um programa de indicadores que traduzam se as atividades de testes estão sendo reali- zadas da maneira planejada e, mais ainda, se o software que está sendo construído apresenta a qualidade desejada. Gerenciamento de integração: apresenta os resultados da integra- ção com o projeto de desenvolvimento de software, bem como com outros projetos de testes que estejam em andamento e que precisem de interação com o projeto atual. Além disso, informa se o projeto de desenvolvimento de software está andando na mesma velocidade do projeto de testes do software. Gerenciamento de recursos humanos: traz informações sobre todos os recursos humanos envolvidos no projeto de testes, em quais testes, de quais funcionalidades, apresentando seus nomes, cargos, funções e responsabilidades. Gerenciamento de comunicação: a principal função dessa área é garantir que todos os integrantes do projeto de testes recebam as infor- mações que precisam, no momento adequado, para auxiliá-los a tomar as decisões corretas. É preciso definir no projeto de testes com qual frequência as informações serão disseminadas e de que maneira, bem como a periodicidade necessária para reuniões presenciais. Além disso, é preciso definir se relatórios, e-mails e outros documentos poderão servir de elemento de comunicação entre as equipes do projeto de testes e do projeto de desenvolvimento. Gerenciamento de riscos: apesar de não parecer, um projeto de testes também pode apresentar seus riscos específicos em diversos aspectos, como recursos humanos, recursos tecnológicos e financeiros. Planejamento de testes10 C04_Planejamento_testes.indd 10 27/02/2019 10:29:23 Os riscos do projeto são eventos que podem ou não ocorrer. Eles podem vir sob a forma de ameaças ou oportunidades. As ameaças são os acontecimentos que, caso ocorram, devem impactar o projeto de maneira negativa. Já as oportunidades, se existirem, podem impactar o projeto de maneira positiva. Gerenciamento de aquisições ou suprimentos: envolve o planejamento sobre como adquirir softwares e ferramentas necessárias às atividades de testes. Gerenciamento de partes interessadas: é responsável por identificar todas as partes interessadas na realização dos testes, idealizando manei- ras de engajá-las no processo para que os testes sejam realizados com sucesso. Pode considerar o trabalho conjunto entre desenvolvedores e testadores, ou ainda a utilização de usuários durante a realização dos testes. Além disso, o PMBOK divide a gestão de projetos e, consequentemente, o planejamento dos testes em cinco grandes fases, como você pode ver a seguir (PROJECT MANAGEMENT INSTITUTE, 2016). 1. Iniciação: essa fase define e também autoriza todo o projeto de testes, ou uma fase dele. 2. Planejamento: essa fase define as estratégias que serão utilizadas para alcançar os objetivos dos testes, bem como o escopo proposto para todo o projeto de testes. 3. Execução: nessa fase são recrutadas as pessoas e os demais recursos necessários para realizar as tarefas de teste. 4. Monitoramento e controle: essa fase avalia todos os processos de teste, com o propósito de identificar conflitos que tenham ocorrido com o que foi planejado. A ideia é tomar decisões antes que alguma falha atrapalhe o projeto de testes como um todo, inclusive impactando o projeto de desenvolvimentodo software. 5. Encerramento: traz uma formalização da aceitação dos resultados obtidos com as atividades de testes, seja no software como um todo ou nas suas partes que foram testadas até o momento. 11Planejamento de testes C04_Planejamento_testes.indd 11 27/02/2019 10:29:23 O projeto de testes apresenta as dimensões da realização dos testes como um todo, do planejamento à execução. Isso garante que, se a aplicação passar por algum tipo de manutenção e a realização de testes for necessária, toda essa documentação seja utilizada. Ainda é importante que o planejamento dos testes seja realizado depois que todos os requisitos do software tenham sido levantados, pois eles servem de fundamento para todas as atividades de teste. INSTITUTO DE ENGENHEIRO ELETRICISTAS E ELETRÔNICOS. IEEE 829. 2008. Disponível em: https://www.normastecnicas.com/ieee/ieee-829/. Acesso em: 19 fev. 2019. PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7. ed. Porto Alegre: AMGH, 2011. PROJECT MANAGEMENT INSTITUTE. Um guia do conhecimento em gerenciamento de projetos: guia PMBOK. Pennsylvania: PMI, 2016. Leitura recomendada PROJECT MANAGEMENT INSTITUTE. c2019. Disponível em: https://brasil.pmi.org/brazil/ home.aspx. Acesso em: 19 fev. 2019. Planejamento de testes12 C04_Planejamento_testes.indd 12 27/02/2019 10:29:23
Compartilhar