next up previous contents
Next: Curso de Ensino a Up: Situações teste sob a Previous: Curso Read in Web   Sumário


Curso de Teste de Software

Este curso tem como objetivo promover o domínio e a disseminação de conhecimentos técnico-científicos em Teste de Software. De modo geral, o domínio do conhecimento na área pode ser caracterizado por meio de aspectos teóricos e empíricos, associados à existência de ferramentas de apoio. Em outras palavras, o conhecimento pode ser dividido em: conhecimento teórico, conhecimento empírico (prática) e desenvolvimento/utilização de ferramentas.

O curso proposto está baseado no material elaborado para o minicurso Introdução ao Teste de Software (Barbosa et al., 2000b), ministrado no XIV Simpósio Brasileiro de Engenharia de Software, realizado em João Pessoa em outubro de 2000. Pretende explorar os aspectos teóricos e práticos relacionados à atividade de teste de software, em particular, à técnica baseada em mutação, com o apoio das ferramentas de teste PROTEUM (Program Testing Using Mutants) (Delamaro & Maldonado, 1996) e PROTEUM/IM (Delamaro & Maldonado, 1999), desenvolvidas no contexto do grupo de Engenharia de Software do ICMC/USP, que apóiam a aplicação do teste de mutação para programas em C, em nível de unidade e de integração, respectivamente.

O curso apresenta a seguinte estrutura:

Introdução:
São abordados os conceitos básicos relacionados à atividade de teste de software. São introduzidos, entre outros, os conceitos de: erro, falha, defeito, teste de unidade, teste de integração, teste de partição.

Técnicas e Critérios de Teste:
É apresentada uma síntese das técnicas de teste funcional, estrutural e baseada em erros, bem como de critérios de teste pertencentes a cada uma delas. Fatores utilizados na comparação e avaliação de critérios de teste de software (custo, eficácia e strength) também são abordados, tanto do ponto de vista teórico como empírico.

Automatização da Atividade de Teste:
É destacada a importância da automatização da atividade de teste por meio da utilização de ferramentas de teste, caracterizando-se os esforços da comunidade científica nessa direção.

Teste de Mutação:
Os conceitos básicos do teste de mutação são apresentados. É feita uma revisão histórica do surgimento e desenvolvimento dessa abordagem de teste. Aspectos teóricos e práticos de sua utilização são abordados e ilustrados através de exemplos. Critérios que procuram minimizar o custo de aplicação do teste de mutação são descritos e analisados.

A Ferramenta PROTEUM:
A ferramenta PROTEUM é vista com detalhes. São apresentadas a sua funcionalidade e arquitetura. Os modos de utilização da ferramenta -- interface gráfica e script -- são demonstrados através de um exemplo completo.

Estudos Empíricos:
É apresentada uma síntese dos principais estudos empíricos envolvendo o teste de mutação.

Mutação de Interface:
É apresentado o critério Mutação de Interface (Delamaro, 1997), que estende o teste de mutação visando à atividade de teste em nível de integração. É destacada a necessidade da realização do teste de integração, bem como da definição de critérios de adequação para esta fase do teste. Os conceitos relacionados ao critério Mutação de Interface são apresentados. Resultados obtidos através de estudos empíricos com a utilização da ferramenta PROTEUM/IM são mostrados.

Conclusão:
Perspectivas e trabalhos de pesquisa sendo realizados nessa área são discutidos.

O curso proposto deverá ser desenvolvido para diferentes ambientes educacionais, entre eles o CALM (Seção 2.2.1). Com isso, espera-se avaliar os recursos existentes nesses ambientes e, a partir dessa avaliação, caracterizar os requisitos necessários ao ferramental de autoria, apresentação e avaliação, do ponto de vista da atividade de teste. Além disso, os requisitos identificados no processo de avaliação deverão ser incorporados ao CALM, servindo assim para a evolução do ambiente.

É importante observar que o curso aborda, em uma primeira etapa, aspectos e conceitos introdutórios na área de Teste de Software. Posteriormente, outros conceitos e mecanismos mais abrangentes devem ser incorporados ao material desenvolvido. Por exemplo, a aplicação do paradigma de orientação a objetos no desenvolvimento de software e, em particular, de linguagens orientadas a objetos, tem introduzido novos desafios no teste de produtos. O teste de especificações e a geração de dados de teste são outras linhas de pesquisa que também têm merecido destaque dentro da área. Nessa perspectiva, tanto o material didático elaborado quanto o curso desenvolvido devem ser continuamente aprimorados e evoluídos, incorporando aos tópicos existentes temas relevantes e novas linhas de pesquisa em Teste de Software, acompanhando a própria evolução da área.

Outro aspecto importante a ser considerado no contexto de um curso de teste diz respeito à utilização de ferramentas que apóiem a aplicação dos critérios de teste estudados, conforme abordado na Seção 2.2.4. A disponibilidade de ferramentas de teste, além de possibilitar que os testes possam ser conduzidos de maneira satisfatória e de minimizar os erros decorrentes da intervenção humana, auxilia pesquisadores e alunos a adquirirem os conceitos básicos relacionados ao teste e experiência na comparação, seleção e estabelecimento de estratégias de teste.


next up previous contents
Next: Curso de Ensino a Up: Situações teste sob a Previous: Curso Read in Web   Sumário
Ivan Luiz Marques Ricarte 2001-03-16