teste de software com ênfase em conhecimento: uma proposta de estratégia douglas magalhães de...
TRANSCRIPT
Teste de Software com ênfase em conhecimento: uma proposta de estratégiaDouglas Magalhães de Abreu
Orientador: Dr. André Luiz ZambaldeCo-orientador: M. Eng. Paulo H.de Souza Bermejo
Apresentação: Roteiro Motivação e Objetivos Referencial Teórico Metodologia Resultados e Discussão Conclusão
Motivação e Objetivos Complexidade desenvolvimento de software tem
aumentado Tamanho de código Uso de recursos computacionais Tamanho das equipes de desenvolvimento Volume de documentações
Aumento das chances de ocorrência de falhas Manutenção tem alto custo Afeta credibilidade do produto e da empresa
Motivação e Objetivos (continuação) Identificação de falhas com teste de software (Taipale, 2007):
atividade intelectualmente complexa requer interação entre equipes pra troca de informação e conhecimento demanda conhecimento prévio de domínio do problema, de ferramentas, do
produto e de clientes Gestão do conhecimento tem se tornado uma resposta a essas demandas por
conhecimentos Gestão do Conhecimento
Captar, organizar, disponibilizar e criar conhecimento na organização Já utilizada em vários setores da indústria organizações produtoras de software têm utilizado no apoio à tomada de
decisão por meio de aprendizado com projetos passados pesquisas recentes apontam benefícios da colaboração da Gestão do
Conhecimento ao teste de software (Taipale, 2007)
Motivação e Objetivos (continuação) Objetivos:
Geral: propor um processo de teste de software com ênfase em
conhecimento em uma empresa produtora de software Específicos:
levantar os fundamentos teóricos da Gestão do Conhecimento e teste de software
identificar e descrever os processos de teste de software da empresa
propor atividades complementares aos processos já existentes na empresa que tornem viável a Gestão de Conhecimento na atividade de teste
Referencial Teórico Conhecimento (DAVENPORT & PRUZAK,1998):
Está associado à prática e à experiência Está presente:
Mentes dos conhecedores Atividades rotineiras Documentos Políticas e normas das organizações
Classificação Tácito x Explícito
Referencial Teórico (continuação) Teste de software (PFLEEGER, 2001):
Atividade intelectualmente complexa Conceitos
Defeito (fault) Erro (error) Falha (failure) Caso de teste
3 fases básicas Teste de unidade Teste de integração Teste de sistema
Fases de teste de software (Pfleeger, 2001)
Referencial Teórico (continuação) Teste de software (PEZZAND e YOUNG, 2008):
Classificação de falhas (Root Cause Analisys: RCA) dinâmica e generalizada Objetivo: encontrar as causas Classificação:
Crítica Severa Moderada Suave
Perfis Operacionais Modelos estatísticos de uso com base em casos anteriores ou
similares
Metodologia Pesquisa qualitativa
Enfoque exploratório descritivo Perspectiva do pesquisador
Pesquisa ação Participação ativa do pesquisador junto ao objeto de
pesquisa Pesquisador não apenas observa, interfere nas decisões do
grupo Tende a resolver ou elucidar o problema Gera conhecimento sobre o problema
Metodologia (continuação) Levantamento de material bibliográfico Levantamento de documentos da empresa Análise dos processo de teste de software da
empresa Inferência sobre as informações Geração da proposta de uso da GC nas
atividades de teste de software
Resultados e Discussão Empresa
10 anos 150 funcionários Atua na área de mineração 2 sedes Atua no exterior Projeto estratégico de expansão e melhoria de
processos internos (em adaptação)
Resultados e Discussão (continuação) Processos da empresa Fluxos de processo
Desenvolvimento de projeto de software (com ou sem implantação)
Geração de releases(branches)
inicio
P1.2 - gerar proposta técnica
P1.3 - gerar: requisitos, casos de uso e
testes por requisito e por caso de uso
P1.5 - planejar homologação
P1.6 – desenvolver software
P1.7 - executar homologação
fim
Fluxos de processos de desenvolvimento e homologação de software
reunir para definir escopo e
necessidades (recursos)
realizar pedido formal de recursos
estabelecer data de homologação
junto com o gerente do projeto
formalizar plano de homologação
com todos os gerentes de desenvolvimento e
de produto
inicio
fim
reunir para nivelar conhecimento do
projeto entre Desenvolvedores
e gerentes
desenvolver requisitos
realizar teste de unidade
(teste por requisito)
realizar teste de integração
(teste por caso de uso)
inicio
fim
documentar todo o desenvolvimento
reunir para dividir tarefas entre
recursos humanos
executar planos de testes
gerenciar reportagem, documentação e correção de falhas
reunir para balanço, tomada de decisão (aceite ou rejeição)
inicio
fim
oficializar finalização da homologação
divulgando resultado
Equipe de Homologação de Produto
Gerente de Projeto
Talento
Resultados e Discussão (continuação) Proposta de processo de teste de software com
ênfase em conhecimento Documentação adequada mas não usada pra aprendizado
com projetos passados Equipe de homologação separada da equipe de
desenvolvimento torna o teste menos eficiente Não há especialistas em teste de software na empresa Muitos funcionários novos (menos de 1 ano de
contratação) Captura, filtragem, organização e difusão do
conhecimento trarão agilidade aos processos
Resultados e Discussão (continuação) Ferramentas de GC: exemplos de uso
Criação de conhecimento: BI (Business Intelligence)
Reuniões diárias: Blog Captura de conhecimento:wiki
Conclusões Os processos que envolvem teste de software da empresa foram
observados e descritos conforme planejado Aplicação ainda que preliminar se mostra promissora e de grande
aceitação pelos envolvidos A equipe já demonstra mais segurança nos planejamentos e execuções de
homologações Espera-se que toda a proposta seja aplicada e melhorada na empresa A Gestão do Conhecimento mostrou-se bem adaptada aos processos já
existentes na empresa Espera-se a adoção da proposta pela equipe de desenvolvimento Espera-se contribuir na literatura com a concepção de um conjunto de
processos de teste de software que tenham ênfase em conhecimento
Referências Bibliográficas DAVENPORT, Thomas H.; PRUZAK, Laurence: Working Knowledge –
How Organizations Manage What They Know. Harvard Business School Press. 1998. 199 pgs.
DELAMARO, Marcio Eduardo; JINO, Mario; MALDONADO, José Carlos: Introdução ao Teste de Software. São Paulo. Campus, 2007. 408pgs.
DINGSØYR, Torgeir. (2002). Knowledge Management in Medium-Sized Software Consulting Companies: an investigation of intranetbased knowledge management tools for knowledge cartography and knowledge repositories for learning software organisations. Norwegian University of Science and Technology. Editora Perspektiv.
LYU, M.: Software reliability engineering: A roadmap. Future of Software Engineering. 2007. IEEE-CS Press, 2007.
Referências Bibliográficas MYERS, Glenford J.; BADGETT, Tom; THOMAS, Todd M.;
SANDLER, Corey: The Art of Software Testing. John Wiley and Sons, 2004.234 pgs.
NEVES, J. L. Pesquisa qualitativa: características, usos e possibilidades. Caderno de pesquisa em administração. São Paulo, v. 1, n. 3, 1996.
NONAKA, Ikujiro; TAKEUCHI, Hirotaka. Criação de conhecimento na empresa. 9ª ed. Rio de Janeiro: Campus, 1997.
PEZZAND, Mauro; YOUNG Michael: Software Testing and Analysis: Process, Principles and Techniques. John Wiley & Sons 2008. 510 pgs.
Referências Bibliográficas PFLEEGER, Shari L.: Software Engineering: Theory and. Prentice Hall;
2 edition (February 7, 2001). 659 pgs.
SBC: Grandes Desafios da Pesquisa em Computação no Brasil 2006 – 2016. Relatório sobre o Seminário realizado em 8 e 9 de maio de 2006. http://www.sbc.org.br/ Acessado em setembro 2008.
THIOLLENT, Michel: Metodologia da pesquisa-ação. 4. ed. São Paulo : Cortez, 1988 108 pgs.
ZAMBALDE, A. L.; ALVES, R. M.: Gestão do conhecimento, tecnologia e inovação. Lavras. Faepe.2008.