XII Workshop de Teses e Dissertações em Qualidade de Software
Um Framework para as Micro e Pequenas Empresas de
Desenvolvimento de Software Baseado no MPT. BR e na
ISO/IEC/IEEE 29119-2
Dianne Dias Silva, Edmundo Sérgio Spoto, Leandro Luís Galdino de Oliveira
Instituto de Informática – Universidade Federal do Goiás (UFG)
Caixa Postal 131 – 74001-970 – Goiânia – GO – Brasil
[email protected], [email protected], [email protected]
Abstract. This paper proposes a framework based on the Model of Software
Testing Process MPT.BR and Standard ISO/IEC/IEEE 29119-2 in order to
build a proper process for micro and small enterprises software development
and to bring improvements to Freetest Method. The article also presents a
theoretical foundation on which this framework will be supported, as well as
its methodology, the current state, the related work and the expected results of
this work.
Resumo. Esse artigo propõe um framework baseado no Modelo de Processo
de Teste de Software MPT.BR e na Norma ISO/IEC/IEEE 29119-2, visando à
construção de um processo adequado para as micro e pequenas empresas de
desenvolvimento de software e, que traga melhorias para o Método Freetest.
O artigo apresenta ainda, uma fundamentação teórica na qual esse framework
se apoiará, assim como sua metodologia, o estado atual, os trabalhos
relacionados e os resultados esperados desse trabalho.
1. Caracterização do Problema
A crescente demanda e, consequentemente, a complexidade dos produtos de software
ocorrida nas últimas décadas, exige cada vez mais que as equipes envolvidas nos
projetos de desenvolvimento sejam maiores e especializadas, provocando um anseio por
qualidade e produtividade, tanto do ponto de vista do processo de produção como do
ponto de vista dos produtos gerados. Diante disso, as micro e pequenas empresas de
desenvolvimento de software têm se preocupado e investido na Garantia da Qualidade,
que está diretamente relacionada com a qualidade do Processo de Teste ao qual foi
submetido [Staab 2003].
Ainda que haja inúmeras técnicas, políticas e metodologias na área de Teste
de Software, existem deficiências evidentes em relação à integração entre o Processo de
Teste e Ferramentas no âmbito desse tipo de organização. Considerando esse panorama,
estabeleceu-se o Método Freetest através do programa PAPPE Integração apoiado pela
FAPEG/FINEP (Fundação de Amparo à Pesquisa do Estado de Goiás/Financiadora de
Estudos e Projetos) e pelos profissionais do INF (Instituto de Informática) da UFG
(Universidade Federal de Goiás) em conjunto com grandes nomes da indústria de
software do estado de Goiás.
Entretanto, o Método Freetest requer aprimoramento principalmente no que
tange à descrição e ao detalhamento do Processo de Teste estruturado, uma vez que, os
Níveis de Maturidade, as Áreas do Processo e as Práticas Genéricas que o contemplam
13
WTDQS 2014
são expostos de maneira sintética. Logo, a implementação e a institucionalização do
referido método tornam-se onerosas e complexas para as empresas de desenvolvimento
de software.
Portanto, esse trabalho objetiva: desenvolver um framework de Processo de
Teste de Software embasado nos pontos fortes do MPT.BR (Melhoria do Processo de
Teste Brasileiro) e da ISO/IEC/IEEE (International Organization for
Standardization/International Electrotechnical Commission/Electrical and Electronic
Engineers) 29119-2 que resultará na melhoria do Método Freetest; implementar o
Método Freetest após sua respectiva reformulação nas organizações que fazem o uso
desse processo; certificar a consistência do modelo em questão depois da coleta e
apuração dos resultados obtidos com a implementação do método reformulado;
contribuir com as micros e pequenas empresas de desenvolvimento de software na
produção de produtos de baixo custo e com alta qualidade.
Esse trabalho está dividido em 5 seções. Na Seção 2 são apresentados os
principais conceitos e terminologias referentes à fundamentação teórica. Nas Seções 3 e
4 são demonstrados a metodologia e estado atual do trabalho, bem como os trabalhos
relacionados. E, na Seção 5 são tratados os resultados esperados do trabalho em
questão.
2. Fundamentação Teórica
Atualmente, a gerência da Qualidade de Software não se restringe apenas a definir
procedimentos, padrões e verificar se estes estão empregados no desenvolvimento de
software. Essa atividade determina uma cultura de qualidade na organização, na qual
todos os envolvidos no desenvolvimento do produto detêm um nível de qualidade
(individual) a ser alcançado. A Garantia da Qualidade é composta por três atividades
principais (Pilares da Qualidade de Software): Planejamento, Garantia e Controle da
Qualidade [Bartié 2002]. O Teste de Software é considerado um elemento crítico da
Garantia da Qualidade, cuja finalidade é detectar o maior número de defeitos no
software, por meio de um conjunto de atividades planejadas antecipadamente e
executadas de maneira sistemática antes da entrega final do produto. O seu principal
foco é a redução da probabilidade de ocorrência de defeitos quando o sistema já estiver
em produção, sendo esses erros, defeitos ou falhas diretamente ligados aos riscos que
podem prejudicar o negócio. Em outros termos, quanto antes os testes forem iniciados,
menos dispendiosas serão as correções dos erros e/ou falhas encontrados. [Bastos et al.
2012].
Para que isso seja possível, faz-se necessária a definição de um Processo de
Teste com um ciclo de vida estabelecido (MPT.BR, ISO/IEC/IEEE 29119-2 e Método
Freetest), em que suas respectivas atividades devem ser desenvolvidas ao longo do
próprio Processo de Desenvolvimento de Software, que em geral, concretizam-se em
quatro níveis: Unidade, Integração, Sistema e Aceitação [Pressman 2002].
Fundamentado nisso, os critérios de teste são estabelecidos a partir de três técnicas:
Funcional (Particionamento em Classes de Equivalência e Análise do Valor Limite),
Estrutural (Baseado em Fluxo de Controle e Baseado em Fluxo de Dados) e a Baseada
14
XII Workshop de Teses e Dissertações em Qualidade de Software
em Erros (Semeadura de Erros e Análise de Mutantes) [Budd 1981] [Rapps e Weyuker
1985] [DeMillo et al. 1978].
Sendo assim, o MPT.BR trata da melhoria do Processo de Teste através de
práticas que envolvem as atividades projetadas ao longo do ciclo de vida de teste do
produto de software. Sua estrutura é dada por dois componentes: o Guia de Referência
(apresenta a estrutura, as áreas de processo e as práticas do modelo) e o Guia de
Avaliação (contém o processo de avaliação e instruções para a realização da mesma em
uma organização baseada no MPT.BR). Esse modelo têm como principais objetivos:
tornar-se um modelo de referência para definição, implantação e melhoria dos Processos
de Teste; abordar a melhoria contínua nos Processos de Teste conforme os objetivos
organizacionais e o nível de maturidade almejado; fornecer uma base para avaliação e
consequente identificação do grau de maturidade presente nas organizações; e reunir as
melhores práticas e estruturá-las segundo o grau de complexidade versus o nível de
maturidade na qual as organizações estão relacionadas [Softex 2011].
Porém, a ISO/IEC/IEEE 29119 é um conjunto de padrões de Teste de Software
acordados internacionalmente que podem ser usados em qualquer ciclo de vida de
desenvolvimento de software ou organização, fornecendo aos mesmos uma abordagem
de alta qualidade para essa atividade. Essa norma especifica os Processos de Teste que
podem ser utilizados para controlar, gerenciar e implementar Teste de Software em
qualquer atividade da organização, projeto ou teste. Ela é composta de quatro normas
ISO/IEC/IEEE: 29119-1 (Conceitos e Definições), 29119-2 (Processos de Teste),
29119-3 (Documentação de Teste) e 29119-4 (Técnicas de Teste). A avaliação do
processo estabelecido na ISO/IEC/IEEE 29119-2 ocorre de acordo com a ISO/IEC
33063 (Modelo de Avaliação de Processo de Teste de Software) e ainda, substituem
uma série de padrões existentes: IEEE 829 (Documentação de Teste), IEEE 1008
(Testes Unitários), BS (British Standards) 7925-1 (Vocabulário de Termos em Teste de
Software) e BS 7925-2 (Componente Padrão de Teste de Software) [ISO/IEC/IEEE
2013].
Em contrapartida, o Método Freetest consiste em um conjunto de processos e
ferramentas para Teste de Software estruturado especificamente para as micro e
pequenas empresas de desenvolvimento de software, cuja metodologia estabelece
soluções de fácil aplicação juntamente com as ferramentas de desenvolvimento. Sua
organização se dá através três componentes: o Manual de Instalação (detalha o processo
de integração entre as ferramentas de teste Testlink e Mantis), o Manual de Utilização
(expõe o uso da integração entre as ferramentas de teste Testlink e Mantis) e o Manual
do Modelo (mostra a estrutura, as áreas de processo e as práticas do modelo). Esse
modelo tem como propósito a realização de testes de forma sistemática por meio da
instanciação de um Processo de Teste com suporte automatizado. São contemplados
ainda, nesse método a integração de quatro ferramentas de teste: Bug Wizard Report
(integração do Testlink ao Mantis), JinFeng (integração de diferentes plataformas de
teste baseada em ferramentas de código aberto e escrito em Python/Jython), JMeter
(Teste de Performance, Carga e Stress), Selenium (automação de Teste Funcional para
15
WTDQS 2014
interfaces Web) e Sikuli (automação e Teste de Interfaces Gráficas utilizando imagens)
[INF/UFG, 2013].
3. Metodologia e Estado Atual do Trabalho
Inicialmente, tanto o Guia de Referência do MPT.BR quanto a ISO/IEC/IEEE 29119-2
assim como o Manual do Modelo do Método Freetest, serão estudados a fim de
identificar e explorar os Níveis de Maturidade, as Áreas de Processo, as Práticas
Genéricas, as Multicamadas do Processo e também, as Atividades e Tarefas que os
compõem respectivamente. Isto é, cada um dos Modelos de Processo de Teste e da
Norma citados anteriormente, terão a Visão Geral, o Propósito, os Produtos Típicos e
Resultados além, das Vantagens e Desvantagens mapeados. Possibilitando assim, a
detecção das potenciais melhorias a serem incorporadas no Método Freetest.
Em seguida, a partir da seleção das Áreas de Processo e das Práticas Genéricas
compreendidas nos Níveis de Maturidade do MPT.BR e, das Atividades e Tarefas
delimitadas nas Multicamadas do Processo referentes à ISO/IEC/IEEE 29119-2
consideradas viáveis (baixo custo e fácil implementação) de acordo com o contexto das
organizações, um framework será desenvolvido e agregado ao Método Freetest. Após a
remodelagem desse método, as micro e pequenas empresas de desenvolvimento de
software que o utilizam serão visitadas, com o intuito de verificar a aderência ou não do
processo implantado previamente. Onde, essa verificação consistirá na análise dos seus
devidos ambientes de teste por meio de brainstorming, entrevistas e reuniões com as
equipes de teste envolvidas nos Projetos de Teste. Que por consequência, apoia a
calibragem do referido Processo de Teste.
Posteriormente à reformulação do Método Freetest, ocorrerá a sua reimplantação
em cada uma dessas organizações, que serão monitoradas e controladas de maneira
presencial. Visto que, o ciclo de vida definido para os Projetos de Teste destas, são
comprovados através dos produtos de trabalho gerados, ou seja, dos artefatos. Contudo,
os resultados obtidos com a execução desse Processo de Teste serão coletados segundo
o sumário dos registros de teste presentes nos artefatos estipulados no método em
questão e logo após, comparados com os resultados esperados pela Gerência de Projeto
de Teste e de Desenvolvimento de Software. Por fim, os Projetos de Teste passarão por
uma inspeção de software envolvendo as equipes de teste das micro e pequenas
empresas de desenvolvimento de software objetivando a certificação da conformidade
com o Método Freetest.
Nesse momento, o framework baseado no MPT.BR (Níveis de Maturidade,
Áreas de Processo e Práticas Genéricas) e na ISO/IEC/IEEE 29119-2 (Multicamadas do
Processo, Atividades e Tarefas) que incorporará o Método Freetest está sendo
construído e também, observados os pontos a serem aperfeiçoados nesse modelo.
4. Trabalhos Relacionados
A metodologia de Crespo et al. (2004), está fundamentada na adoção de um Processo de
Teste e nos artefatos sugeridos pelo padrão IEEE 829-1998, que descreve os
documentos originados durante o seu ciclo de vida. Essa metodologia de teste foi
16
XII Workshop de Teses e Dissertações em Qualidade de Software
projetada e desenvolvida de forma a possibilitar que as empresas instanciem o Processo
de Teste de acordo com as suas necessidades e disponibilidade de recursos, podendo
ainda ser aplicada a qualquer tipo de software, seja ele sistema de informações ou
software científico. Em Sartori (2005), foi definido um Modelo de Melhoria de
Processo de Teste para pequenas empresas tendo como base o TMM (Test Maturity
Model), levando-se em consideração suas diretrizes essenciais. O modelo proposto
conta com um mecanismo de avaliação que permite identificar o nível de maturidade
em que a dada empresa desenvolvedora se encontra, fornecendo dessa forma, subsídios
para auxiliar a implantação de melhorias na área de Teste.
Silva (2011), também estruturou uma metodologia de teste viável para as micro
e pequenas empresas baseado nos modelos de documentos disponibilizados pelo padrão
IEEE 829-1998. A metodologia contou com o apoio de especialistas em teste e de
profissionais que atuam em pequenas empresas para que sua estruturação fosse
viabilizada, por meio da abordagem do multicritério de apoio à decisão. O objetivo é
diminuir a quantidade de documentos, bem como o escopo desses documentos, gerados
no decorrer do Processo de Teste, de forma a conter apenas os itens mais relevantes para
a realidade das micro e pequenas empresas.
O arcabouço estabelecido por Araújo (2013), avalia o nível de maturidade do
Processo de Teste com base nas práticas do TMMI (Test Maturity Model Integration)
que possibilite as micro e pequenas empresas realizarem a autoavaliação da maturidade
do seu respectivo processo sem possuir um conhecimento avançado do modelo. Por fim,
o trabalho em questão determina a construção de um framework cujo público alvo são
as micro e pequenas empresas de desenvolvimento de software baseado no Modelo de
Processo de Teste de Software MPT.BR e na Norma ISO/IEC/IEEE 29119-2 que
possibilite a melhoria do Método Freetest.
5. Resultados Esperados
O Teste de Software não é uma atividade trivial devido à flexibilidade para mudanças,
complexidade e intangibilidade, ou seja, às próprias características do software. E para
que essa atividade obtenha êxito, é imprescindível o conhecimento, planejamento,
projeto, acompanhamento, recursos e também a interação com as equipes envolvidas na
construção do produto de software [Crespo et al. 2004].
Dessa forma, os resultados esperados com esse trabalho são: a construção de um
framework de Processo de Teste baseado nos pontos fortes do MPT.BR e da
ISO/IEC/IEEE 29119-2 que contribua com a melhoria do Método Freetest e, a aplicação
desse método após sua respectiva reformulação nas organizações que fazem o seu uso.
Verificando assim, os benefícios e ganhos proporcionados desde o início até a
conclusão do Processo de Desenvolvimento de Software juntamente com um Processo
de Teste efetivo, estruturado especificamente para micro e pequenas empresas de
desenvolvimento de software.
17
WTDQS 2014
Referências
Araújo, A. F. (2013) “Um Arcabouço para Avaliação do Nível de Maturidade em Teste
de
Software
para
Micro
e
Pequenas
Empresas”,
http://www.inf.ufg.br/mestrado/sites/www.inf.ufg.br.mestrado/files/uploads/Dissert
acoes/adailton_ferreira_de_araujo.pdf.
Bartié, A. (2002), Garantia de Qualidade de Software, Campus.
Bastos, A., Cristalli, R., Moreira, T. e Rios, E. (2012), Base de Conhecimento em Teste
de Software, Martins, 3ª edição.
Budd, T. A. (1981) “Mutation Analysis: Ideas, Example, Problems and Prospects”,
Computer Program Testing: Proceedings of the Summer School on Computer
Program Testing held at SOGESTA, Urbino, Italy, North-Holand Publishing
Company, p. 129 – 148.
Crespo, A. N., Silva, O. J., Borges, C. A., Salviano, C. F., Teive, M., Junior, A. e Jino,
M. (2004) “Uma Metodologia para Teste de Software no Contexto da Melhoria de
Processo”, http://www.lbd.dcc.ufmg.br/colecoes/sbqs/2004/024.pdf.
DeMillo, R. A., Lipton, R. J. and Sayward, F. G. (1978) “Hints on Test Data Selection:
Help
for
the
Practicing
Programmer”,
https://www.st.cs.unisaarland.de/edu/recommendation-systems/papers/Hints_on_Test_Data_Selection1.pdf.
INF/UFG, (2013) “Manual do Processo de Teste de Sofware para Micro e Pequena
Empresas”, versão 2.0, Manual Técnico, http://www.freetest.net.br/ferramentas.
ISO/IEC/IEEE (2013), ISO/IEC/IEEE 29119-2, Software and Systems Engineering –
Software Testing – Part 2: Test Process.
Pressman, R. S. (2002), Engenharia de Software, McGraw-Hill, 5 edição.
Sartori, L. E. S. (2005) “Melhoria do Processo de Teste para Pequenas Empresas”,
http://aberto.univem.edu.br/bitstream/handle/11077/335/Melhoria%20do%20Proce
sso%20de%20Teste%20para%20Pequenas%20Empresas.pdf?sequence=1.
Silva, A. R. (2011) “Uma Metodologia de Testes em Software para Micro e Pequenas
Empresas
Estruturada
em
Multicritério”,
http://uol11.unifor.br/oul/conteudosite/F1066341385/Dissertacao.pdf.
Softex (2011), MPT.BR – Melhoria de Processo de Teste Brasileiro: Guia de
Referência.
Staab, T. C. (2003) “Improving the Test Process – Looking at The Test Process –
Getting Started”, The Journal of the Software Testing Professionals.
Rapps, S. e Weyuker, E. J. (1985) “Selecting Software Test Data Using Data Flow
Information”, IEEE Transactions on Software Engineering, p. 367–375.
18
Download

Um Framework para as Micro e Pequenas Empresas de