Teste de Software Ensino e Pesquisa
Teste de Software Questões: • Qual o perfil de um Eng. de Testes? • Quais os conhecimentos necessários? • O que se deveria ensinar? • O que se ensina na FACIN/PUCRS hoje? • O que é o CPTS? • Quais os rumos da pesquisa do CPTS?
Perfil técnico • Conhecimentos de engenharia de software. – Ciclo de vida • Especificação • Projeto • Teste propriamente dito
– Gerência da qualidade.
• Conhecimentos básicos de programação • Conhecimentos básicos de banco de dados – operação e configuração de SGBDs.
• Conhecimentos médios de redes e sisop – configuração, operação e administração.
Perfil pessoal • Paciência / Perseverança / Organização • Firmeza de opinião • Espírito investigador • Capacidade de trabalhar em equipe • Diplomacia
Como ensinar? Áreas de formação segundo SeSu/Mec: • Formação básica: – – – – – – –
•
Formação tecnológica – – – – – – – –
•
Sistemas operacionais, redes e sistemas distribuídos Compiladores Banco de dados Engenharia de software Sistemas multimídia, interfaces, realidade virtual Inteligência artificial Computação gráfica e processamento de imagem Pratica do ensino de computação
Formação complementar –
•
Ciência da computação Programação Computação e algoritmos Arquitetura de computadores Matemática Física e eletricidade Pedagogia
Organização empresarial
Formação humanística
Como ensinar? • De uma forma geral: – Teste/Controle de qualidade agregam valor.
• Disciplinas de programação: – Explorar técnicas de teste unitário desde cedo
• Disciplinas de eng. de software: – Enfatizar a importância em todas as etapas do ciclo de vida. – Análise / projeto: projetar visando testabilidade – Desenvolvimento de plano de testes – Execução de testes – Ciclo de vida de bugs/Gerência de configuração
Ensino de teste na FACIN • Bacharelado em Ciência da Computação: – Tópicos especiais em engenharia de Software I: Teste de software (opcional)
• Bacharelado em Sistemas de Informação: – Tópicos em Sistemas de Informação (obrigatória)
• A partir de 2004/1: – Teste unitário nas disciplinas de programação – Maior ênfase nas disciplinas de Eng. Software (hoje superficial)
O CPTS • Centro de Pesquisa em Teste de Software • Parte do convênio de pesquisa HP / PUCRS • Objetivos: – Estreitar relação Universidade x Empresa – Formação de recursos humanos na área de teste de software – Pesquisa na área de teste de software
O CPTS • Estrutura: – Laboratório de pesquisa: • dedicado ao desenvolvimento de novos processos, metodologias e ferramentas;
– Laboratório de teste: • resultados das pesquisas são aplicados em projetos de software reais da HP de maneira a verificar sua aplicabilidade; • formação de RH.
O CPTS • Professores: – Bernardo Copstein – Flavio Oliveira – Eduardo Bezerra
• Equipe de pesquisa – 2 mestrandos (PPGCC/FACIN/PUCRS) – 4 alunos de graduação
• Equipe de teste – 8 alunos de graduação
Pesquisa no CPTS • Objetivo atual: – Desenvolvimento de tecnologia de teste robusta o suficiente para testar aplicações complexas em ambientes dinâmicos de uma forma consistente.
• Temas relacionados sendo desenvolvidos: • Confiabilidade de software; • Teste estatístico; • Relações entre teste e tolerância a falhas.
– Outros temas: • Análise de código fonte; • Teste de integração.
Ambiente STAGE • STAGE (STAte-based test GEnerator) é um ambiente integrado para geração automática de casos de teste e scripts de teste usando técnicas baseadas em estados. • Composto por 3 pacotes: – STAGE-Model – STAGE-Test – STAGE-Script
Ambiente STAGE • STAGE-Model: – – – –
FSM VFSM Cadeias de Markov Redes de Automatos Estocásticos
• STAGE-Test: – Técnicas baseadas em critérios de cobertura – Técnicas baseadas em teste estatístico
• STAGE-Scritp – Scritps compativeis com Rational Robot e JRobot
Teste Estatístico • Permite a estimativa de parâmetros. – Confiabilidade.
• Seleciona casos de teste randômicamente baseado na distribuição estatística dos caminhos. • Baseado em modelos de uso: – Modelo que caracteriza o uso operacional de um sistema de software.
• Modelos normalmente são construídos usando Cadeias de Markov: – Problema: explosão do espaço de estados
Explosão do espaço de estados
Uso de SAN
Próximos passos ... • Melhorar estimativas de confiabilidade – Modelos estatísticos – Critérios de parada
• Alternativas de modelagem – Maior expressividade – Problema do crescimento do espaço de estados
• Relação entre teste e tolerância a falhas