Baixe o app para aproveitar ainda mais
Prévia do material em texto
To´picos Especiais em Engenharia de Software Esta´gios de teste de Software Instituto de Computac¸a˜o 6 de Junho de 2014 Roteiro 1 Esta´gios de Teste de Software 2 Tipos de Testes 3 Suma´rio Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 2 / 27 Esta´gios de Teste de Software Os testes sa˜o agrupados de acordo com o momento em que eles sa˜o executados ou pelo n´ıvel de especificidade do teste. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 3 / 27 Testes de Unidade Tambe´m conhecido na industria como “Teste Unita´rio”; Visam exercitar detalhadamente uma unidade do sistema; Unidades de software sa˜o testadas para assegurar que elas funcionam corretamente; As unidades de software podem ser: I Componentes; desde que sejam bem conhecidos e na˜o muito complexos; I Classes: com um ou mais me´todos; I Me´todos: ou func¸o˜es e procedimentos dependendo do contexto. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 4 / 27 Modelos de falhas Os Testes de Unidade visam revelar a presenc¸a de falhas em: I interface: paraˆmetros de entrada e sa´ıda; I estruturas de dados: integridade dos dados armazenados; I condic¸o˜es de limite: a unidade opera adequadamente nos limites estabelecidos? I tratamento de erros. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 5 / 27 JUnit Framework de co´digo aberto para teste de unidade em co´digos Java; Utilizado por um grande nu´mero de usua´rios e com vasta documentac¸a˜o; Va´rios ambientes de desenvolvimento (Ex. Eclipse e Netbeans) possuem integrac¸a˜o com o JUnit. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 6 / 27 Compoentes de um teste JUnit Classe a ser testada I Calculadora.java Classe contendo os casos de teste I CalculadoraTest.java Chamador (driver) dos testes I Chama as classes contendo os testes; I Normalmente e´ utilizado automaticamente atrave´s das IDE’s Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 7 / 27 JUnit Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 8 / 27 Teste de Integrac¸a˜o Integra e testa os componentes de um sistema com o objetivo de encontrar problemas durante suas interac¸o˜es. Integrac¸a˜o descendente (“Top-Down”): I Desenvolve o esqueleto do sistema e o preenche com os componentes do sistema. Integrac¸a˜o ascendente (“Bottom-Up”): I Integra os componentes de infraestrutura e depois adiciona componentes funcionais. Para facilitar a localizac¸a˜o de erros, sistemas devem ser integrados gradualmente. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 9 / 27 Integrac¸a˜o Descendente (“Top Down”) Comec¸a com a unidade principal e vai aos poucos integrando as unidades subordinadas. Em OO: classes de controle primeiro Utiliza stubs em lugar das unidades subordinadas Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 10 / 27 Integrac¸a˜o ascendente (“Bottom-Up”) Comec¸a a integrac¸a˜o pelas unidades subordinadas Em OO: comec¸a pelas classes independentes ou que usam poucas servidoras. Utiliza drivers em lugar das unidades de controle Os algoritmos de mais baixo n´ıvel sa˜o testados antes de serem integrados ao resto do sistema. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 11 / 27 Integrac¸a˜o gradual Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 12 / 27 Teste de Aceitac¸a˜o (Validac¸a˜o) Ao final dos testes de integrac¸a˜o, o software esta´ consolidade e iniciam-se os testes de aceitac¸a˜o; A finalidade e´ demonstrar a conformidade com os requisitos de software; O ambiente utilizado deve ser o mais pro´ximo poss´ıvel do ambiente real; Os mais comuns sa˜o Testes Alfa ou Beta. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 13 / 27 Teste Alfa E´ virtualmente imposs´ıvel para o desenvolvedor prever como o software sera´ utilizado pelo usua´rio; Sa˜o necessa´rios testes conduzidos pelo cliente nas instalac¸o˜es do desenvolvedor; O desenvolvedor anota os erros e problemas que possam ocorrer; Acontece em ambiente controlado. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 14 / 27 Teste Beta Deve ser conduzido em um ou mais locais em que o software e´ utilizado; Normalmente o desenvolvedor na˜o esta´ presente; O usua´rio anota todos os problemas que possa encontrar e os envia para o desenvolvedor frequentemente; Acontece em ambiente real. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 15 / 27 Teste de Sistema Software e´ apenas um elemento de todo um sistema computacional maior. E´ necessa´rio testa´-lo no ambiente operacional, onde sa˜o considerados: I Hardware e pessoas; I Processos e informac¸o˜es; I Outros sistemas, etc. Sa˜o conduzidos em um ambiente completo e integrado, por va´rias pessoas (na˜o so´ os desenvolvedores) Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 16 / 27 Teste de Regressa˜o Cada vez que um mo´dulo e´ adicionado ao sistema, o software muda: I Novas entradas e sa´ıdas surgem; I Lo´gica interna do co´digo muda; I Fluxo de execuc¸a˜o e´ alterado; I Novos bugs sa˜o introduzidos; Teste de regressa˜o visa a executar um subconjunto de testes que ja´ foram executados com o intuito de garantir que as mudanc¸as na˜o propagaram efeitos indesejados. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 17 / 27 Teste de Fumac¸a O termo e´ usado em va´rias a´reas e refere-se ao primeiro teste realizado depois de integrar os componentes Em Software, e´ aplicado apo´s cada montagem (build) do produto para verificar sua funcionalidade ba´sica O intuito deve ser o de encontrar erros que teˆm a maior probabilidade de atrasar o projeto. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 18 / 27 Teste de Recuperac¸a˜o Muitos sistemas devem se recuperar de falhas e voltar ao processamento dentro de um tempo pre´-estabelecido. Teste de recuperac¸a˜o forc¸a o software a falhar de va´rias formas e verifica que a recuperac¸a˜o foi feita de forma adequada. A recuperac¸a˜o pode ser automa´tica ou manual. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 19 / 27 Teste de Seguranc¸a Tem o objetivo de verificar que mecanismos de protec¸a˜o implementados no sistema ira˜o protegeˆ-lo de ataques. O testador tenta penetrar no sistema. Dado tempo suficiente, um teste de seguranc¸a ira´ penetrar o sistema I E´ papel do desenvolvedor do sistema assegurar que isto custe mais caro que os ganhos obtidos. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 20 / 27 Teste de Carga Inicialmente, testes caixa branca e caixa preta tem o intuito de testar o sistema sob condic¸o˜es normais. Testes de carga visam a confrontar programas com situac¸o˜es anormais. I Teˆm cara´ter destrutivo I Ate´ onde o sistema aguenta? Pode ser estressados: I Rede (enviando va´rios pacotes); I Memo´ria (instanciando va´rios objetos); I Disco (busca por dados), etc.; Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 21 / 27 Teste de Desempenho Pode ocorrer durante todos os esta´gios de testes; Visa a garantir que o sistema atende aos n´ıveis de desempenho e tempo de resposta acordados com o usua´rio e definidos nos requisitos. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 22 / 27 Teste de Usabilidade Avaliar o sistema do ponto de vista do usua´rio final; Enfatiza o seguinte: I Fatores humanos; I Este´tica; I Consisteˆncia na interface do usua´rio; I Ajuda online e contextual; I Assistente e agentes (wizards); I Documentac¸a˜o do usua´rio; I Material deTreinamento Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 23 / 27 Debugging E´ o processo que resulta na remoc¸a˜o de um erro encontrado; Ocorre como uma consequeˆncia de um teste de sucesso (um teste que encontrou erros); Envolve formular uma hipo´tese sobre o comportamento do sistema e testar essa hipo´tese para achar os erros. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 24 / 27 O processo de debugar Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 25 / 27 Abordagens de debugging Forc¸a Bruta I Popula-se o sistema com escritas ao console para tentar encontrar algum trac¸o de erro durante a execuc¸a˜o. I E´ o me´todo menos eficiente de todos. Backtracking I Comec¸ando a partir de onde o erro ocorreu, deve-se rastrear o co´digo manualmente ate´ a fonte do erro. Eliminac¸a˜o de causa I Uma “hipo´tese de causa” e´ elaborada e os dados relacionados ao erro utilizados para prova´-la. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 26 / 27 Suma´rio Testes de integrac¸a˜o sa˜o u´teis mesmo que as unidades tenham sido testadas; Abordagens de integrac¸a˜o incremental sa˜o “mais baratas” do que abordagem na˜o-incremental; Testes de desempenho, estresse e toleraˆncia a falhas devem ser realizados cedo na fase de testes, pois podem implicar em grandes alterac¸o˜es (talvez de projeto); Modificac¸o˜es no sw sa˜o inevita´veis e introduzem falhas I Testes aplicados precisam ser armazenados para uso em testes de regressa˜o. Instituto de Computac¸a˜o () Testes de Software 6 de Junho de 2014 27 / 27 Estágios de Teste de Software Tipos de Testes Sumário
Compartilhar