• Nenhum resultado encontrado

ANÁLISE DA ADERÊNCIA DE UM PROCESSO DE TESTE AO TMM

N/A
N/A
Protected

Academic year: 2021

Share "ANÁLISE DA ADERÊNCIA DE UM PROCESSO DE TESTE AO TMM"

Copied!
16
0
0

Texto

(1)

ANÁLISE DA ADERÊNCIA DE UM PROCESSO DE

TESTE AO TMM

ALLAN REFFSON

1

, CARLA ILANE MOREIRA BEZERRA

2

, EMANUEL

FERREIRA COUTINHO

1

,

FRANDBERTO FAÇANHA

1

1

Serviço Federal de Processamento de Dados (SERPRO)

Av. Pontes Vieira, 832, São João do Tauape

CEP - 60130-240 – Fortaleza – CE

Brasil

2

Universidade Estadual do Ceará (UECE)

carlailane@yahoo.com.br

{allan.lima, frandberto.facanha, emanuel.coutinho}@serpro.gov.br

RESUMO

Quando um produto é lançado no mercado com alto grau de defeitos, afetando a usabilidade, funcionalidade, performance e segurança do mesmo, o impacto pode ser muito grande para a imagem da organização, trazendo possíveis prejuízos. Por esse motivo, as empresas de desenvolvimento de software estão cada vez mais preocupadas com a qualidade de seu produto, sendo necessário realizar uma melhoria de seu processo de desenvolvimento de software, através da garantia de adequação dos requisitos impostos pelo cliente. Uma forma de conseguir verificar e validar esses requisitos é através dos testes de software realizados ao longo do ciclo de desenvolvimento do produto. Para que isto seja possível, as empresas elaboram um Processo de Teste de software onde estão documentados os procedimentos que cada membro da equipe deve executar para seguir o processo. Para adequar o processo às boas práticas do teste é necessário adotar um modelo de melhoria que atenda a área de teste de software. Neste contexto, este trabalho propõe apresentar uma análise de aderência de um Processo de Testes de uma empresa de grande porte aos níveis 2 e 3 do modelo de melhoria de testes TMM (Test Maturity Model).

PALAVRAS-CHAVE

Qualidade de Software, Processo de Teste, TMM.

1. INTRODUÇÃO

Atualmente, percebe-se a necessidade de dispor de processos que auxiliem uma organização no desenvolvimento de software. Um processo consiste de uma série de passos a serem seguidos para resolver um problema. Esses passos devem ser definidos de tal forma, que não sejam ambíguos e possam ser seguidos por qualquer pessoa utilizando-se do processo. Dessa forma, a organização diminuirá o retrabalho e aumentará a qualidade de seus produtos desenvolvidos, assim como de seus processos de desenvolvimento. Logo, deve-se focar no processo e ter como apoio treinamentos, recursos, pessoas capacitadas, ferramentas apropriadas e gerência comprometida [Paula, 2005].

Para conseguir o nível de qualidade adequado para seus produtos, o mercado de software vem investindo em pesquisas de processos de desenvolvimento de software e vários modelos de melhoria. O TMM é um bom exemplo de modelo de melhoria de testes de software que auxilia as empresas a alcançar o nível de qualidade adequado para aplicar em seus processos de teste.

O modelo de maturidade TMM é utilizado apenas para melhoria de processos de testes. A existência de um Processo de Testes é muito importante para a empresa, pois através de procedimentos eficientes de testes de software durante todo o desenvolvimento do produto, é garantida a redução do número de defeitos, atendimento aos requisitos, diminuição de prazo de entrega e custo do software e maior eficiência do produto.

Neste contexto, o trabalho apresenta um Processo de Testes de uma grande empresa e o analisa sob a perspectiva das boas práticas de testes do modelo TMM. É realizado um mapeamento do Processo de Testes com o modelo para observar o cumprimento dos objetivos, e em seguida é proposta uma melhoria do processo baseando-se no mapeamento.

(2)

• Fornecimento de uma descrição detalhada sobre o modelo TMM, um modelo de melhoria do Processo de Testes que ainda é pouco conhecido e aplicado pelas organizações e universidades do Brasil;

• Disseminação de conhecimento sobre o TMM, a fim de estimular maiores estudos na área; • Análise de Aderência do Processo de Testes aos níveis 2 e 3 do modelo TMM, destacando os

pontos fortes e fracos das atividades de teste na organização;

• Propostas de melhorias aos pontos fracos do Processo de Teste da organização baseado nas boas práticas do TMM.

O trabalho está organizado da seguinte forma: a seção 2 que define os conceitos de Qualidade e Testes de Software; a seção 3 que apresenta o modelo TMM, seus princípios e as fases detalhadas do modelo; a seção 4 que apresenta um mapeamento de um Processo de Testes com os níveis 2 e 3 do TMM fornecendo uma visão unificada de ambos e finalmente a seção 5 que expõe a conclusão e trabalhos futuros almejados.

2. QUALIDADE E TESTES DE SOFTWARE

Qualidade de software pode ser vista como um conjunto de características que devem ser alcançadas em um determinado grau para que o produto atenda às necessidades de seus usuários [Rocha, 2001].

Para alcançar a qualidade necessária do produto, é necessário que o processo de desenvolvimento do software seja sistemático e econômico, resultando em um produto confiável e eficiente. Para que isso ocorra, é importante que o processo agregue três elementos fundamentais:

• Métodos, conjunto de atividades que fornecem uma base técnica para a construção do software;

• Ferramentas, que oferecem suporte automatizado ou semi-automatizado aos métodos; • Procedimentos, que estabelecem as ligações entre os métodos e as ferramentas.

Para obter um processo de desenvolvimento de software com qualidade é necessário que ele siga as boas práticas das normas e modelos de qualidade. Segundo Sommerville [Sommerville, 2003], a melhoria dos processos de software podem ser implementados de diferentes maneiras. Ela pode ocorrer por meio de padronização de processos, quando a diversidade dos processos de software em uma organização é reduzida. Isso leva à melhoria da comunicação e a redução do tempo de treinamento e faz com que o apoio ao processo automatizado seja mais econômico. A padronização é também uma primeira etapa essencial na introdução de novos métodos, técnicas e boas práticas de engenharia de software.

Diversos modelos são utilizados para melhoria do processo de software, dentre eles temos o SW-CMM, ISO/IEC 12207, ISO/IEC 15504 e CMMI. Estes modelos identificam processos fundamentais para engenharia de software. Todos abrangem todas as fases do desenvolvimento de software, e identificam direta ou indiretamente, o teste de software como um destes processos.

Existem modelos específicos para melhoria do Processo de Testes, eles foram criados com a finalidade de cobrir a deficiência nas atividades de teste dos outros modelos genéricos. Dentre eles podemos citar: TPI (Test Improvement Model), TMM (Test Maturity Model), TCMM (Testing Capability

Maturity Model), TOM (Test Organization Maturity) e TIM (Test Improvement Model).

O modelo TPI oferece um framework para determinar as áreas fracas e fortes de um processo de teste em uma organização. Além disso, a maturidade do processo pode ser avaliada. O TPI pode dar suporte para determinar a melhoria das atividades [Ron, 2000].

O TCMM é projetado para fornecer uma metodologia de avaliação para ajudar a determinar a maturidade dos testes de uma organização [Ron, 2000].

A finalidade de TOM é suportar, identificar e dar prioridade aos erros organizacionais e gerar soluções para estes problemas [Ron, 2000].

O TIM pretende guiar funções dos testes para melhoria do trabalho. De acordo com os desenvolvedores, o TIM pode ser usado para identificar o estado atual da prática nas áreas chaves e para sugerir como construir os pontos fortes do teste e remover os pontos fracos [Ron, 2000].

Já o TMM é o modelo pioneiro, mais conhecido e mais utilizado nas empresas de software, os outros modelos de melhoria do Processo de Testes foram criados baseando-se no TMM.

O atendimento aos requisitos e especificações, bem como, a adequação da usabilidade, devem ser garantidos através da combinação das técnicas de verificação e pela realização de testes [Rios, 2003]. Através do Processo de Testes durante todo desenvolvimento de software é que a empresa garante ao cliente a produção de um software eficiente e confiável. A confiabilidade depende da competência na realização dos testes, que visam a identificação e correção dos erros nos programas que compõem o sistema [Rios, 2003].

A causa dos problemas de teste como novos desenvolvedores, teste primitivo, sem uso de técnicas, pode ser seguido a um Processo de Teste descontrolado ou deficiente. Há uma necessidade para a melhoria do Processo de Teste. De acordo com Koomen e Pol [KoP, 1999], o objetivo de um Processo de

(3)

Teste melhorado deve ser detectar o quanto antes possível os defeitos para minimizar os custos, e dar a informação sobre a qualidade do sistema assim que possível. Todos os níveis da avaliação e do teste devem com cuidado ser ajustados conseguindo uma estratégia total otimizada detectando os defeitos mais importantes o mais cedo possível.

3. TMM

O TMM foi desenvolvido pelo IIT (Illinois Institute of Technology) em 1996. Uma das principais razões da sua criação foi a ausência de modelos de maturidade que atendessem adequadamente as práticas do teste de software. O modelo foi desenvolvido para complementar as práticas de Engenharia de Software do CMM.

Após a criação do TMM, foram desenvolvidos outros modelos de melhoria do Processo de Teste como o TCMM, TIM, TPI, TOM, etc. Segundo Koomem e Pol [Kop 1999], geralmente são usados os seguintes passos para melhoria do Processo de Teste:

• Determinar o objetivo e a área de consideração: As características da qualidade do teste são determinadas: é objetivo fazer testes mais rapidamente, com menor custo ou com cobertura mais elevada? Que processos de teste são mais necessários para melhoria, quanto tempo se gasta na melhoria do processo, e qual o esforço?;

• Determinar a situação atual: os pontos fortes e fracos da situação atual são determinados?; • Determinar a situação requerida: baseado na análise da situação atual, os alvos da melhoria,

situação requerida e ações necessitadas são determinadas?;

• Executar mudanças: as ações sugeridas de melhoria são executadas de acordo com um plano e as verificações da situação são realizadas para verificar que os alvos foram encontrados? O objetivo do TMM é dar suporte às organizações na melhoria do Processo de Testes e tomou como base os seguintes paradigmas:

• É um modelo complementar ao CMM com o qual mantém compatibilidade;

• É baseado na avaliação da situação atual do Processo de Testes através de regras claras e objetivas;

• É uma linha para a melhoria contínua do Processo de Testes;

• É um modelo baseado nas melhores práticas de teste existentes no mercado [Rios, 2000]. O modelo TMM possui um modelo de maturidade e a exemplo do CMM, também tem um modelo de validação, baseado num questionário, onde é verificado o nível de maturidade da área de TI em relação ao teste. Definido o nível, a equipe de testes deverá se submeter a um processo de migração para um nível superior de maturidade, o que vai significar uma melhoria no Processo de Testes. Para isso algumas práticas devem ser adotadas baseadas nos objetivos estabelecidas para o nível a ser alcançado [Rios, 2000].

Nas próximas seções será abordada a organização do TMM, destacando estrutura, níveis e o modelo de avaliação utilizado.

3.1 Estrutura do TMM

A estrutura do TMM é baseada no modelo CMM que adota a divisão por níveis. O TMM consiste em cinco níveis de maturidade que reflete um aumento da maturidade do Processo de Teste. Para cada nível de maturidade, um número de áreas de processo é definido. Uma área de processo é um grupo de atividades relacionadas com o Processo de Teste. Quando estas atividades são executadas adequadamente, elas contribuirão para melhoria do Processo de Teste. Os cinco níveis do TMM poderão dar suporte a uma organização para determinar a maturidade do seu Processo de Teste e identificar os próximos passos de melhoria que são necessários para atingir um alto nível de maturidade do teste. Os cinco níveis do TMM são ilustrados na tabela abaixo.

Tabela 1 . Níveis do TMM.

Níveis Descrição dos Níveis

1 Inicial

2 Fase de Definição 3 Integração 4 Gestão e Medições

5 Otimização, prevenção de defeitos e controle de qualidade

Para cada nível de maturidade podemos identificar objetivos da melhoria do teste, estes são equivalentes às práticas chaves do CMM. Objetivos são identificados em todos os níveis, menos no nível 1. Para cada objetivo de maturidade, subobjetivos são definidos Um subobjetivo pode relacionar o

(4)

estabelecimento de um grupo de teste, a distribuição de um programa de treinamento, ou a especificação de itens para revisão.

Cada subobjetivo possui um conjunto de atividades, tarefas e responsabilidades que precisam ser cumpridas. As atividades e as tarefas são definidas em termos das ações que devem ser executadas para melhorar a maturidade do teste. A responsabilidade para estas atividades e tarefas é atribuída aos três participantes chaves no Processo de Teste (visão crítica): gerentes, desenvolvedores/testadores, e usuários/clientes.

A estrutura do TMM é ilustrada na figura a seguir.

Níveis Objetivos da Maturidade Maturidade do Teste Subobjetivos da Maturidade Atividades/Tarefas/ Responsabilidades Implementação e

Adaptação Organizacional Visão Crítica

Gerente Desenvolvedor/ Testador Usuário/ Cliente Indicando Contém Suportado por Cumprido por Organizado por Endereçado Figura 2 . Estrutura do TMM.

3.2 Níveis do TMM

Os cinco níveis de maturidade mostram uma evolução de um nível caótico e indefinido do Processo de Testes para um nível controlado e otimizado. O nível 1 do TMM é relatado como um período orientado a eliminação de erros, o nível 2 é a fase de estruturação onde o teste é um processo definido e é separado claramente da eliminação de erros, o nível 3 é a fase orientada a avaliação e os níveis 4 e 5 são períodos de avaliação e orientado à prevenção. Os cinco níveis da maturidade são relacionados também fortemente aos níveis CMM. Em muitos casos, um dado nível do TMM necessita de suporte específico das áreas chaves de processo do nível correspondente do CMM e no nível do CMM abaixo dele.

O framework operacional do TMM fornece uma seqüência hierárquica dos níveis que possui objetivos da maturidade, subobjetivos, e ATRs (Atividades, Tarefas e Responsabilidades) que definem o estado de maturidade de uma organização de um nível particular, e identifica as áreas que uma organização mais foca na melhoria de seu Processo de Teste.

3.2.1 Nível 1: Inicial

O nível 1 é onde a maioria de organizações começam. Testar é um processo caótico. É mal definido e não distinguido de eliminar erros. Os testes são executados ad hoc depois que o código está completo. O objetivo de teste neste nível é mostrar que o sistema e o software trabalham. Falta geralmente uma equipe de profissionais de teste treinada e ferramentas de teste.

A maioria das organizações reconhecerá rapidamente a necessidade de desenvolver um Processo de Teste mais organizado e mais profissional. Muitos desconhecem a existência de um processo estruturado, como o SW-TMM, disponível para fazer estas melhorias. Em vez de usar um processo estruturado, tentam executar medidas aleatórias da melhoria sem um plano documentado de aproximação [Staab, 2002].

(5)

3.2.2 Nível 2: Fase de Definição

No nível 2, teste é um processo definido e é separado claramente da eliminação de erros. No contexto de estruturação do Processo de Teste, planos de teste são estabelecidos e contém uma estratégia de teste. Para derivar e selecionar casos de teste para especificações de requisitos, técnicas de projeto de teste formal são aplicadas. Entretanto, testes ainda iniciam relativamente tarde no ciclo de vida do desenvolvimento, por exemplo, durante a fase de projeto ou durante a fase de codificação. O objetivo principal de teste é verificar que o software satisfaça aos requisitos especificados [VenRon, 2002].

Os objetivos de maturidade do nível 2 abordados abaixo foram retirados do artigo [Ron, 2000]. 1. Desenvolver os Objetivos do Teste: A organização deve claramente distinguir processos de teste

e eliminação erros. A separação destes dois processos é essencial para o crescimento da maturidade do teste, desde que sejam diferentes nos objetivos e nos métodos. Os subobjetivos da maturidade incluem:

• A organização deve formar uma equipe para testar e eliminar erros com suporte e financiamento;

• A equipe deve desenvolver e registrar objetivos do teste; • A equipe deve desenvolver e executar os objetivos;

• A documentação do teste e a execução dos objetivos devem ser distribuídos para todos os gerentes e desenvolvedores do projeto;

• Objetivos do teste devem ser refletidos nos planos de teste.

2. Iniciar o Processo de Planejamento do Teste: O planejamento do teste envolve indicar objetivos, analisar riscos, esboçar estratégias e desenvolver especificações de projeto de teste e casos de teste. Além disso, o Plano de Teste deve dirigir-se à alocação de recursos e das responsabilidades para níveis de teste de unidade, de integração, de sistema e de aceitação. Os subobjetivos da maturidade incluem:

• Uma equipe de planejamento do teste deve ser estabelecida com financiamento da organização;

• Um framework para políticas do planejamento de teste deve ser estabelecido e suportado pela gerência;

• Um template do Plano de Teste deve ser desenvolvido, registrado e distribuído aos gerentes de projeto;

• Os gerentes e desenvolvedores do projeto devem ser treinados para usar o template do Plano de Teste e desenvolver o Plano de Teste;

• Um procedimento deve ser posto no lugar que inclui requisitos usados geralmente como entradas do Plano de Teste;

• O planejamento básico deve ser avaliado, recomendado e adquirido. A gerência deve suportar o uso.

3. Institucionalizar Técnicas e Métodos Básicos de Teste: Para melhorar a capabilidade do Processo de Teste, as técnicas e métodos básicos de teste devem ser aplicados através da organização. As políticas para estas técnicas e a sustentação básica da ferramenta devem ser claramente especificadas. Os exemplos de técnicas e métodos básicos são as estratégias de teste caixa preta e caixa-branca, e o uso da matriz de validação dos requisitos, e teste de unidade, de integração, de sistema e de aceitação. Os subobjetivos da maturidade que suportam este objetivo incluem:

• A gerência deve instituir um conjunto de políticas que assegure que as técnicas e os métodos recomendados são aplicados consistentemente em toda a organização;

• Um grupo de tecnologia de teste deve ser formado para estudar, avaliar e recomendar um conjunto de técnicas e de métodos básicos de teste para recomendar um conjunto de ferramentas simples para suportá-las.

3.2.3 Nível 3: Integração

No nível 3, o teste é integrado inteiramente no ciclo de vida do software. O planejamento do teste é feito em um estágio adiantado do projeto por meio de um Plano de Teste inicial. A estratégia do teste é determinada usando técnicas de gerência do risco e baseada em requisitos documentados. Uma organização de teste existe, assim como, um programa de treinamento do teste. As revisões são realizadas, embora não consistentemente e não de acordo com um procedimento documentado. Além disso, verifica que o software satisfaz aos requisitos [VenRon, 2002].

Os objetivos de maturidade do nível 3 abordados abaixo foram retirados do artigo [Ron, 2000]. 1. Estabelecer uma Organização de Testes de Software: Uma organização de teste de software é

criada para identificar um grupo de pessoas que serão responsáveis pelo teste. O grupo de teste é responsável pelo planejamento do teste, execução e gravação dos testes, padrões de teste,

(6)

métricas do teste, base de dados do teste, reuso do teste e avaliação. Os subobjetivos da maturidade que suportam este objetivo incluem:

• Um grupo de teste amplo da organização deve ser estabelecido com liderança, suporte, e financiamento da gerência superior. Sua funcionalidade e posição no relatório deve ser definida;

• Papéis e responsabilidades devem ser definidos para o grupo do teste;

• Os membros da equipe bem treinados e motivados devem ser atribuídos ao grupo do teste; • O grupo de teste deve estabelecer as ligações de comunicação, como perguntas ao usuário e

participação do cliente em atividades de teste que ajuda a coletar, documentar, e incorporar necessidades do usuário, interesses e requisitos dentro do Processo de Teste.

2. Integrar o teste no ciclo de vida do software: O planejamento do teste deve ser iniciado cedo no ciclo de vida. Os subobjetivos da maturidade incluem:

• A fase de teste deve ser dividida em sub-fases que podem ser integradas no ciclo de vida do software que segue uma política organizacional escrita e serem revistos com a gerência; • Recursos devem ser fornecidos para suportar a integração das atividades de teste no ciclo de

vida do software;

• As definições de padrões devem ser desenvolvidas para produtos de trabalho relacionados a testes e sua qualidade deve ser medida;

• Um procedimento deve ser estabelecido para que permita que os testadores trabalhem com os desenvolvedores facilitando a atividade de teste.

3. Controlar e monitorar o Processo de Teste: As atividades de controle e monitoramento fornecem a visibilidade e asseguram os procedimentos do Processo de Teste estão de acordo com o plano. O suporte para controlar e monitorar vem dos padrões para produtos de teste, marcos de teste e métricas de teste que podem ser usados avaliar o progresso do teste e a eficácia do teste. Os subobjetivos da maturidade incluem:

• A organização deve desenvolver mecanismos e políticas para controlar e monitorar o Processo de Teste;

• Um conjunto de medidas relacionadas ao Processo de Teste deve ser definido, registrado e distribuído;

• Um conjunto de ações corretivas e planos de contingência devem ser desenvolvidos, registrados e documentados para uso quando ocorrer desvios significativos do teste para o que é planejado.

4. Estabelecer um programa de treinamento: Os testadores devem ser corretamente treinados para que eles possam executar seus trabalhos eficientemente e eficazmente. Neste nível, a equipe é treinada em planejamento de teste, métodos de teste, padrões, técnicas e ferramentas. O programa de treinamento prepara também a equipe para o processo da revisão, instruindo líderes da revisão para a participação do usuário nos processos de teste e revisão. Os subobjetivos da maturidade incluem:

• A gerência deve estabelecer um programa de treinamento organizacional fornecendo financiamento e suporte;

• O comitê de treinamento técnico deve desenvolver e distribuir uma política de treinamento organizacional;

• Os objetivos e planos de treinamento devem ser desenvolvidos com entrada dos gerentes de projeto;

• O grupo de treinamento deve ser estabelecido com ferramentas, facilidades e materiais.

3.2.4 Nível 4: Gestão e Medições

Neste nível, testar é um processo completamente definido, bem fundado e mensurável. As revisões e a inspeção estão ocorrendo durante todo o ciclo de vida do software e são consideradas como parte do teste. Os produtos de software são avaliados usando critérios de qualidade para características da qualidade, tais como confiabilidade, usabilidade e manutenibilidade. Os casos do teste são recolhidos, armazenados e controlados em uma base de dados central para reuso e teste de regressão. Um programa de medida do teste fornece a informação e a visibilidade a respeito do processo do teste e da qualidade de produto. Teste é percebido como a avaliação; consiste em todas as atividades do ciclo de vida concernidas com verificar o software e produtos de trabalho relacionados ao software [VenRon, 2002].

Os objetivos de maturidade do nível 4 abordados abaixo foram retirados do artigo [Ron, 2000]. 1. Estabelecer um Programa Amplo de Revisão: No nível 3 do TMM, uma organização integra

atividades de teste no ciclo de vida. No nível 4, esta integração é aumentada pelo estabelecimento de um programa da revisão. Revisões são conduzidas em todas as fases do ciclo de vida para identificar, catalogar e remover defeitos para eficácia de produtos de trabalho de software e produtos de trabalho de teste. Os objetivos da maturidade incluem:

(7)

• A gerência deve desenvolver políticas de revisão, suporte do processo de revisão e examinar as responsabilidades para integrá-las na cultura organizacional;

• O grupo de teste e o grupo da garantia de qualidade do software devem desenvolver e documentar objetivos, procedimentos de continuação e mecanismos de gravação para revisões durante todo o ciclo de vida do software;

• Os itens para revisão devem ser especificados;

• A equipe deve ser treinada de modo que compreendam e sigam políticas da revisão, práticas e procedimentos apropriados.

2. Estabelecer um Programa Amplo de Medições de Teste: Um programa de medição de teste é essencial para avaliar exatamente a qualidade do processo do teste, a produtividade da equipe e o progresso de melhoria do Processo de Teste. Os dados de medições para cada fase do ciclo de vida do teste devem ser especificados. As medidas incluem aquelas relacionadas ao progresso do teste, aos custos do teste, aos dados em erros e defeitos e a medição do produto, como a confiabilidade do software. Os subobjetivos da maturidade que suportam este objetivo incluem: • Políticas e objetivos de medições de teste da organização devem ser definidos;

• O plano de medição do teste deve ser desenvolvido com mecanismos para levantamento, análise, e aplicação dos dados;

• Os planos de ação que aplicam resultados de medições às melhorias do Processo de Teste devem ser desenvolvidos e documentados.

3. Evoluir a Qualidade do Software: A avaliação de qualidade do software envolve definir atributos mensuráveis da qualidade para avaliar produtos do trabalho do software. A qualidade é amarrada ao Processo de Teste adequado porque um Processo de Teste maduro deve conduzir ao software o que é realmente correto, confiável, usável, portável e seguro. Os subobjetivos da maturidade incluem:

• A gerência superior e os grupos da garantia da qualidade do teste de software devem definir políticas, objetivos da qualidade, e atributos de qualidade para produtos de software;

• A organização deve desenvolver, documentar e suportar procedimentos e políticas para evoluir a qualidade do software;

• O Processo de Teste deve ser estruturado, medido e avaliado para assegurar que os objetivos da qualidade possam ser conseguidos.

3.2.5 Nível 5: Otimização, Prevenção de Defeitos e Controle de Qualidade

Na base de todos os resultados que foram conseguidos, cumprindo todos os objetivos da melhoria dos níveis precedentes, teste é agora um processo completamente definido e é capaz de controlar os custos e a eficácia do teste. No nível 5 os métodos e as técnicas são otimizados e há um foco contínuo na melhoria do Processo de Teste. O Processo de Teste é caracterizado por provas baseadas em medidas de qualidade. Um procedimento existe para selecionar e avaliar ferramentas de teste. As ferramentas suportam o Processo de Teste tanto quanto possível durante o projeto do teste, execução do teste, teste da regressão, gerência de casos de teste, etc. Teste é um processo com o objetivo para prevenir defeitos [VenRon, 2002].

Os objetivos de maturidade do nível 5 abordados a seguir foram retirados do artigo [Ron, 2000]. 1. Aplicar Processo de Prevenção de Defeitos: Organizações neste nível registram defeitos, analisa

padrões do defeito e identifica a causa dos erros. Planos de ação são desenvolvidos, as ações são feitas para prevenir defeitos recorrentes e há um mecanismo para seguir o progresso da ação. A prevenção do defeito é aplicada através de todos os projetos e através da organização. Os subobjetivos da maturidade incluem:

• A organização deve desenvolver, documentar e suportar procedimentos e políticas para a prevenção dos defeitos;

• A equipe da prevenção de defeitos deve ser estabelecida com suporte da gerência;

• Os defeitos injetados ou removidos devem ser identificados e gravados durante cada fase do ciclo de vida;

• Um mecanismo de análise casual deve ser estabelecido para identificar as causas dos defeitos;

• Planos de ação devem ser desenvolvidos com a interação dos gerentes, dos colaboradores e dos verificadores para impedir que os defeitos identificados retornem. Estes planos devem ser seguidos.

2. Controlar a Qualidade: Neste nível as organizações usam amostragem estatística, medidas de níveis de confiança e confiabilidade para dirigir o Processo de Teste. O custo para conseguir objetivos da qualidade é medido relativamente ao custo de não testar os objetivos da qualidade quantitativos. Os subobjetivos incluem:

• A organização deve desenvolver, documentar e suportar procedimentos para o controle de qualidade;

(8)

• O grupo do teste do software e o grupo de SQA devem estabelecer objetivos para produtos de qualidade;

• Os gerentes de teste devem incorporar estes objetivos da qualidade em planos de teste; • O grupo do teste deve ser treinado em métodos estatísticos;

• A entrada do usuário deve ser coletada para modelagem do uso.

3. Otimizar o Processo de Teste: No nível o mais elevado do TMM, o Processo de Teste está sujeito à melhoria contínua através dos projetos e através da organização. O processo do teste é quantificado e pode ser ajustado. Otimizar o Processo de Teste envolve: identificar as práticas de teste que necessitam ser melhoradas, implementar melhorias, seguir o progresso das melhorias e a avaliação contínua de novos testes relacionados a ferramentas e de tecnologias para a adaptação. Os subobjetivos da maturidade incluem:

• A organização deve desenvolver, documentar, e suportar procedimentos e políticas para otimização do Processo de Teste;

• Um grupo de melhoria do Processo de Teste deve ser estabelecido para monitorar o Processo de Teste e identificar áreas para a melhoria;

• Um mecanismo deve estar no lugar para avaliar as ferramentas novas e tecnologias que podem melhorar a capacidade e a maturidade do Processo de Teste;

• A eficácia do Processo de Teste deve ser continuamente avaliada, e as decisões sobre quando parar o teste deverão ser relacionadas aos objetivos da qualidade e serem feitas de uma maneira mensurável e otimizada.

3.3.6 Contexto Geral

A tabela abaixo proposta por Emerson Rios [Rios, 2000], aborda um pequeno resumo dos níveis do TMM seguido por seus objetivos e descrição e explicação de cada um dos níveis.

Tabela 2 . Resumo dos níveis do TMM.

Níveis Objetivos Descrições dos Objetivos Breve explicação 1 - Teste normalmente feito pela equipe de

desenvolvimento de forma ad-hoc.

O teste é executado sem ferramentas, equipe treinada ou outros recursos.

1 Desenvolver os objetivos do teste

2 Iniciar o processo de planejamento do teste 2

3 Institucionalizar técnicas e métodos básicos de teste

O propósito do teste é mostrar que o software funciona.

1 Estabelecer uma organização de testes de software 2 Integrar o teste no ciclo de vida do software. 3 Controlar e monitorar o Processo de Teste 3

4 Estabelecer um programa de treinamento

O propósito do teste é mostrar que o software não funciona.

1 Estabelecer um programa amplo de revisão 2 Estabelecer um programa amplo de medições de

teste 4

3 Evoluir a qualidade do Software

O propósito do teste é reduzir os ricos causados pelos defeitos a níveis aceitáveis.

1 Aplicar processo de prevenção de defeitos 2 Controlar a qualidade

5

3 Otimizar o Processo de Teste

Otimizar o Processo de Teste.

3.4 Avaliação do Modelo TMM

Uma avaliação do Processo de Teste usando um modelo de maturidade de teste documentará não somente o nível atual, mas destacará também as variações entre o nível imaginado e o nível real. Somente quando o status atual é conhecido, pode se fazer melhorias significativas. Usar o SW-TMM ajudará não somente a documentar o nível atual, mas fornecerá também um mapeamento fazendo as melhorias necessárias para o processo.

O modelo de avaliação TMM pode ajudar organizações a avaliar e melhorar seu Processo de Teste. O TMM (níveis, objetivos da maturidade, subobjetivos, e ATRs) servem como referência do modelo. As saídas de uma avaliação TMM permitem que uma organização:

• Determine seus níveis de maturidade de teste (em uma escala de 1 a 5); • Identifique pontos positivos e negativos do Processo de Teste;

• Desenvolva planos de ação para melhoria do Processo de Teste;

• Identifique subprocessos de teste maduros que são candidatos para reuso [IIT, 1998].

A avaliação do modelo TMM é baseada nos princípios do modelo de avaliação do CMM e do SPICE, onde é identificado um conjunto de entradas e saídas e tem desenvolvido um conjunto de três componentes para o TMM-AM (TMM Assessment Model), são eles:

(9)

• Um questionário de avaliação; • Um procedimento de avaliação;

• Treinamento para equipe e critérios de seleção.

A figura abaixo mostra o conjunto de componentes da avaliação do TMM.

Modelo de Maturidade de Teste Procedimento de Avaliação TMM - AM Componente Processo de Avaliação TMM Critérios de seleção da equipe e do treinamento do TMM-AM Questionário TMM-AM Dados da Visão Geral Dados do Questionário Plano de Avaliação Documentos Relatados Nível TMM Pontos fortes e fracos do teste Planos de Ação Registro da Avaliação Entrada Saída

Figura 2 . Processo de Avaliação do TMM: componentes, entradas e saídas [IIT, 1998].

A definição dos componentes de avaliação do TMM é abordada abaixo, de acordo com o artigo [IIT, 1999].

1. Procedimento de Avaliação

O procedimento de avaliação TMM-AM consiste em uma série das etapas que guiam uma equipe de avaliação na realização da avaliação do Processo de Testes. Os objetivos principais para o procedimento da avaliação do TMM são:

• Suportar o desenvolvimento de um perfil do Processo de Teste e da determinação de um nível do TMM;

• Guiar a organização no desenvolvimento de planos de ação para a melhoria Processo de Teste;

• Assegurar que a avaliação é executada com uso eficiente dos recursos das organizações; • Guiar a equipe da avaliação em coletar, organizar, e analisar os dados da avaliação. 2. Questionário de Avaliação

Instrumentos da avaliação, tais como o questionário usado pelos autores, são necessários para suportar a coleção e a análise da informação de uma avaliação, manter um registro dos resultados, e fornecer a informação para a análise da avaliação. O uso de um questionário suporta o framework de avaliação do CMM, facilita a integração com outros instrumentos do processo de avaliação, assegura a cobertura da avaliação de todas as ATRs identificadas em cada objetivo da maturidade para cada nível do TMM, fornece um framework para coletar e armazenar dados da avaliação, e fornece guidelines para os assessores a respeito de que áreas devem ser o foco de uma entrevista.

Deve-se notar que o questionário do TMM não é a única fonte da entrada para gerar resultados da avaliação. Os dados dos questionários terminados devem ser aumentados e confirmados usando a informação coletada das entrevistas e das apresentações, bem como pela inspeção de documentos relevantes.

3. Treinamento para Equipe e Critérios de Seleção

Os autores projetaram o TMM-AM para ajudar uma organização avaliar seu Processo de Teste (a avaliação é interna para organização, iniciada para dirigir a melhoria do Processo de Teste, e será o único a ter posse dos dados e dos resultados da avaliação). A gerência superior deve suportar os esforços da avaliação e da melhoria, assegurar que os recursos apropriados estejam disponíveis para conduzir a avaliação, e assegurar que as recomendações para melhorias estejam sendo executadas.

Uma equipe de avaliação treinada composta pelos membros dentro da organização é necessária. Os membros da equipe da avaliação devem compreender os objetivos da avaliação, ter experiência e habilidades apropriadas do conhecimento, ter habilidades fortes de comunicação, e serem comprometidos

(10)

à melhoria do Processo de Teste. O tamanho da equipe da avaliação deve ser apropriado para a finalidade e o escopo da avaliação para o processo de treinamento da avaliação.

4. ANÁLISE DO PROCESSO DE TESTES COM O TMM

O Processo de Teste a ser analisado pertence a uma organização de desenvolvimento de software de grande porte e certificada CMM nível 2. Todo o processo da organização é baseado no framework do RUP (Rational Unified Process). A organização possui um Processo de Testes detalhado e utilizado por uma equipe independente. O objetivo do Processo de Testes é a avaliação da qualidade do produto, localizando e expondo seus pontos fracos.

Os testes são importantes para complementar as revisões e aferir o nível de qualidade conseguido. Contudo, a realização dos testes é normalmente limitada por restrições de prazo, custos ou recursos. Para um melhor aproveitamento dos recursos alocados aos testes é importante haver um bom planejamento, tentando maximizar a cobertura dos testes e detectar a maior quantidade possível de defeitos não observados durante as revisões.

O trabalho tenta analisar o Processo de Testes ilustrado na Tabela 3, que está dividida em atividades (ATs), descrição e subatividades (SATs), para comprovar se o processo está de acordo com os objetivos do modelo de maturidade de testes TMM, cobrindo as boas práticas de testes no desenvolvimento de software.

Tabela 3 . Processo de Testes da Organização.

Atividades Descrição Subatividades

SAT 1.1 Definir Escopo dos Testes SAT 1.2 Identificar Requisitos para Testes SAT 1.3 Identificar Cenários

SAT 1.4 Definir Recursos

SAT 1.5 Definir Cronograma de Testes AT1 - Planejar os Testes

Esta atividade inicia o planejamento dos testes e envolve tanto a seleção dos produtos ou componentes de software quanto dos requisitos que serão testados.

SAT 1.6 Verificar Plano de Testes SAT 2.1 Projetar os Cenários de Testes SAT 2.2 Avaliar Possibilidade de Reuso

SAT 2.3 Identificar Produtos e Componentes de Apoio aos Testes

SAT 2.4 Elaborar Modelo de Carga SAT 2.5 Projetar Ambiente de Testes SAT 2.6 Projetar Massa de Teste

SAT 2.7 Identificar e Descrever os Procedimentos de Testes

AT2 - Projetar os Testes

Nesta atividade, os casos de testes planejados serão elaborados. Em paralelo, será iniciada a preparação do ambiente de testes.

SAT 2.8 Verificar Modelo de Testes SAT 3.1 Criar Scripts de Testes

SAT 3.2 Implementar Produtos e Componentes de Apoio aos Testes

SAT 3.3 Montar Suite de Testes SAT 3.4 Implementar Ambiente de Testes AT3 - Implementar Testes

Esta atividade serve para implementar scripts automáticos e manuais, programas, stubs, e massas de dados.

SAT 3.5 Implementar Massas de Testes SAT 4.1

Executar Testes

SAT 4.2

Analisar Completude de Teste AT4 - Executar Testes

Nesta atividade, os testes são executados e relatórios de resultados gerados para posterior avaliação.

SAT 4.3

Registrar Defeitos de Teste

SAT 5.1

Analisar, Classificar e Relatar Defeitos

SAT 5.2

Avaliar Cobertura dos Testes AT5 - Avaliar Resultados

Esta atividade centraliza todos os resultados dos testes de forma a gerar um relatório consolidado dos erros. A partir deste relatório, o líder toma conhecimento dos erros ocorridos para que possa

iniciar os procedimentos de SAT 5.3

(11)

acerto necessários. SAT 5.4 Submeter Componentes para a Base de Resultados do Processo

Dentro do Processo de Teste é importante saber que existem responsáveis por executar as atividades, participantes externos que estão envolvidos nas atividades e artefatos que são gerados para cada atividade. O projetista de teste e o testador são os responsáveis pelo planejamento e execução das atividades de teste. Os participantes externos no Processo de Testes da organização são: líder de projeto, líder de revisão por pares, autor, revisor, cliente, gestor de configuração de software, analista de sistemas, arquiteto de software e implementador.

Na próxima seção será abordada a análise de cada nível do TMM sob a perspectiva do Processo de Teste da organização.

4.1 Análise do Processo de Testes com o TMM

Existem várias formas de se analisar a aderência de um processo de software aos modelos de melhoria, dentre elas destacam-se questionários de avaliação e metodologias de avaliação, e pode-se também analisar de uma forma subjetiva tomando como base as práticas dos modelos. A forma de análise desse trabalho utiliza uma análise subjetiva. A partir dos objetivos dos modelos se analisa o que o processo da organização está cumprindo ou não, e de que forma o processo cumpre as práticas do modelo. As práticas não atingidas pelo processo serão relacionadas e propostas serão feitas para que estas práticas sejam cobertas.

Para termos uma melhor análise da aderência do processo foram elaborados questionários para nível 2 e 3 do TMM com perguntas baseadas nos subobjetivos de cada nível do modelo. Baseado numa percentagem de acerto das perguntas o objetivo pode ser atingido, parcialmente atingido ou não atingido. A percentagem para atingir as metas foi definida baseada em questionários de avaliação de empresas consultoras do TMM.

4.1.1 Análise do Nível 2 do TMM

Inicialmente analisaremos o processo a partir do nível 2 do modelo TMM. De acordo com esse nível é necessário que três objetivos sejam cumpridos, de modo que o Processo de Teste se torne um processo definido, com o principal objetivo de verificar que o software satisfaz realmente aos requisitos especificados. A Tabela 4 mostra que atividades do processo da organização atendem aos objetivos do TMM nível 2 e como esses objetivos são cumpridos, relatados na parte do comentário.

Tabela 4 . Análise de Aderência do Processo de Testes ao Nível 2 do TMM. TMM NÍVEL 2

OBJETIVO TMM NÍVEL 2 COMENTÁRIOS

O propósito do teste é mostrar que o software funciona. No nível 2, teste é um processo definido e é separado claramente da eliminação de erros.

OBJETIVOS ATIVIDADES COMENTÁRIO

Objetivo 1 Desenvolver os objetivos do teste AT1, AT2, AT3 Os objetivos do teste são planejados e desenvolvidos na atividade Planejar Testes, projetados na atividade Projetar Testes, e executados na atividade Executar Testes.

Objetivo 2 Iniciar o processo de planejamento do teste

AT1 O início do planejamento dos testes ocorre na atividade Planejar Testes, o maior responsável por essa atividade é o projetista de teste. Objetivo 3 Institucionalizar técnicas e métodos

básicos de teste

Macroatividade - Gestão do Processo da Organização

Existe uma equipe específica para atividade de testes na organização responsável por avaliar o processo, atualizando-o com as técnicas e métodos novos, e selecionando um conjunto de ferramentas de testes que se adeqüem ao processo da organização. Todo o processo é descrito em um framework, que possui um conjunto de políticas para o Processo de Teste, assegurando a consistência da aplicação dos testes. Segundo o questionário, todos os objetivos do TMM nível 2 foram cumpridos. O primeiro objetivo foi atendido 100% pelo fato da organização possuir uma equipe de testes composta por projetistas de teste e

(12)

testadores, que planejam os objetivos do teste na atividade Planejar Testes, desenvolvem-os na atividade Projetar Testes e executam-os na atividade executar testes. Esses objetivos são documentados no Plano de Teste e na planilha de categorização de testes e são distribuídos ao líder de projeto e desenvolvedores. O Plano de Testes contém as informações sobre os objetivos dos testes do software, o cronograma de realização e os recursos necessários. Já a planilha de categorização prioriza e categoriza os Casos de Testes de acordo com o nível de teste (unitário, de integração e de sistema), com a categoria do caso de teste (caixa-branca, caixa-preta, etc.) e com a cobertura dos testes (cobertura de comandos, de caminhos, de arestas de decisão, de itens, de interface do usuário, etc.), orientando os casos e procedimentos de testes.

O segundo objetivo foi totalmente atingido, pois o Processo de Testes da organização possui nas fases iniciais um planejamento de testes. Esse planejamento é feito pelo projetista de testes, estabelecido e avaliado na atividade Planejar Testes. Nessa atividade o Plano de Testes e a Planilha de Cenários de Testes devem ser objeto de revisão por pares. Participarão da revisão os Autores responsáveis pelo Plano de Testes e pela Planilha de Cenários de Testes avaliados e os Revisores, auxiliados pela equipe de revisão. A participação do Líder de Projeto na revisão é facultativa. O resultado da revisão, depois de validado com todos os envolvidos, será entregue ao Projetista de Testes responsável para que este possa seguir com a atividade de Projetar Testes ou replanejar seu Plano de Testes, caso necessário. Existe um framework do processo da organização que possui uma macroatividade de testes com procedimentos e políticas para o planejamento de testes, onde são definidas entradas, saídas e responsáveis para que a atividade seja cumprida. É desenvolvido um template do Plano de Testes logo na fase inicial e dentro do plano existe um tópico em que um procedimento do planejamento dos testes é descrito. Apesar de existir no processo treinamento em testes, na macroatividade de testes não cita que os gerentes e desenvolvedores do projeto devem ser treinados, este é o único tópico do objetivo 2 que não é atingido.

O objetivo Institucionalizar Técnicas e Métodos Básicos de Teste é cumprido totalmente, pois a organização possui um framework do processo de desenvolvimento de software que agrega um conjunto de políticas para o Processo de Teste, assegurando a consistência da aplicação dos testes, e possui uma equipe específica para atividade de testes responsável por avaliar o processo, atualizando-o com as técnicas e métodos novos, e selecionando um conjunto de ferramentas de testes que se adeqüem ao processo da organização. Isso é definido pela macroatividade gestão do processo da organização, que trata da definição, monitoração e evolução constante do processo da organização como um todo.

Concluímos que o processo está aderente ao nível 2 do TMM devido o cumprimento de todos os objetivos. De acordo com o questionário de avaliação do nível 2 o processo tem 94,44% de aderência.

4.1.2 Análise do Nível 3 do TMM

Após a verificação do cumprimento de todos os objetivos TMM nível 2, avaliaremos o processo de acordo com o nível 3 do mesmo modelo. De acordo com o nível 3 do TMM o Processo de Testes é um conjunto de atividades bem definidas que são integradas em todas as fases do ciclo de vida do software. Nesse nível, a gerência suporta também a formação e o treinamento de um grupo de teste de software. A Tabela 5 mostra que atividades do processo da organização atendem aos objetivos do modelo TMM nível 3 e como esses objetivos são atingidos, relatados na coluna do comentário.

Tabela 5 . Análise de Aderência do Processo de Testes ao Nível 3 do TMM. TMM NÍVEL 3

OBJETIVO TMM NÍVEL 3 COMENTÁRIOS

O propósito do teste é mostrar que o software não funciona.

No nível 3, o teste é um conjunto de atividades bem definidas que são integradas em todas as fases do ciclo de vida do software.

OBJETIVOS ATIVIDADE COMENTÁRIO

Objetivo 1 Estabelecer uma organização de testes de software

AT1, AT2 Um grupo de testes é estabelecido e composto por projetistas e

testadores. Os membros da equipe não são bem treinados na

macroatividade, pois não é definido o treinamento da macroatividade de testes no processo, por este motivo o objetivo não é cumprido totalmente. Existem ligações de comunicação entre o cliente/usuário e o grupo de testes, isso está documento nas atividades planejar e Projetar Testes.

(13)

Objetivo 2 Integrar o teste no ciclo de vida do software.

AT1 O Processo de Testes é divido em várias atividades que são integradas, se necessário, ao resto do processo da organização, e segue uma política organizacional documentada em um framework e é revisado pela gerência superior da organização. A macroatividade de testes possui atividades, papéis e artefatos definidos.

Objetivo 3 Controlar e monitorar o Processo de Teste Macroatividade- Gestão do Processo e da Organização, AT5

É feito o controle e monitoramento do Processo de Testes, definidos na macroatividade Gestão do Processo da Organização. Medidas são identificadas e coletadas na atividade Avaliar Resultados e são registradas nos artefatos Base de Resultados do Processo e no Relatório de Avaliação dos Testes. E ações corretivas e planos de contingência são desenvolvidos, registrados e documentados na atividade Avaliar Resultados. Objetivo 4 Estabelecer um programa de treinamento Macroatividade –

Programa de Treinamento.

A macroatividade programa de treinamento é responsável por dar suporte de treinamento à todas as outras macroatividades do processo da organização, inclusive a de testes. Segundo o questionário do TMM nível 3, quatro objetivos foram cumpridos totalmente. O primeiro objetivo foi totalmente atingido, mas não cumpriu todos os subobjetivos necessários. A organização possui uma equipe de testes de software formada por projetistas de testes e testadores. O projetista de testes se encarrega de planejar, projetar, implementar e avaliar os testes. O testador se encarrega de testar as unidades de implementação e componentes de apoio ao teste e criar artefatos de acordo com o projeto de testes, tais como scripts, builds, etc. Os membros da equipe recebem alguns treinamentos de teste, mas o treinamento da macroatividade de teste, considerado o mais importante, não é documentado no processo como sendo um treinamento obrigatório para o grupo de testes. Por esse motivo o treinamento é considerado incompleto. Dentro do Processo de Testes o cliente participa da atividade Planejar Testes auxiliando a verificação do Plano de Testes para ver se estão coerentes com os requisitos. E também participa da atividade Projetar Testes auxiliando a verificação dos modelos de testes, que é uma representação do que será testado e como será testado, apresentando a organização dos casos, procedimentos e scripts de teste, seus relacionamentos e resultados esperados.

O Processo de Testes é divido em várias atividades que são integradas, se necessário, ao resto do processo da organização, e segue uma política organizacional documentada em um framework, que é revisado pela gerência superior da organização. A macroatividade de testes possui atividades, papéis e artefatos definidos. Na atividade Planejar Testes, recursos humanos e de hardware, software e dados são definidos para suportar a integração das atividades de teste durante o desenvolvimento do software. Os recursos humanos são habilidades, conhecimentos e disponibilidade, entre outros fatores, tanto em relação à área técnica e operacional quanto em relação ao cliente. Já os recursos de hardware, software e dados são ferramentas de testes que são avaliadas antes de serem usadas. Um procedimento de testes é elaborado dentro do Plano de Testes e permite a integração de testadores e desenvolvedores. As definições de padrões para produtos de trabalho relacionados a testes são desenvolvidas de acordo com os documentos de testes, suas regras de nomenclatura, e do procedimento de testes definido (orientações técnicas de Considerações sobre o Rational Suite TestStudio, Métodos de Testes e Tipos de Testes). Por todos esses motivos citados acima o objetivo Integrar o teste no ciclo de vida do software é atingido. Porém, no Processo de Testes não existem medidas para medir a qualidade dos padrões para produtos de trabalho relacionados a testes.

O objetivo 3 é totalmente atingido. O processo atende ao controle e monitoramento do Processo de Testes, definidos na macroatividade Gestão do Processo da Organização. O desenvolvimento, registro e documentação do conjunto de ações corretivas e planos de contingência são encontrados na atividade Avaliar Resultados do Processo de Teste. Nesta atividade são identificadas e avaliadas diferenças entre os resultados esperados e os resultados obtidos nos Mantis (ferramenta de acompanhamento e registro dos erros encontrados nos testes) ou Relatórios de Resultado de Testes previstos, além de analisar as prioridades de acordo com a Planilha de Categorização de Testes. Quanto ao subobjetivo 2, medidas são coletadas na atividade Avaliar Resultados. Essas medidas são identificadas e registradas nos artefatos

(14)

Base de Resultados do Processo e no Relatório de Avaliação dos Testes e são relacionadas à cobertura dos testes. Caso sejam encontradas divergências, mudanças ou correções são sugeridas ao Líder de Projeto, que após avaliação poderá abrir uma Solicitação de Mudança. A saída desta atividade é um relatório de avaliação dos testes. O modelo de testes para reuso é analisado e os componentes de teste são identificados nos Formulários de Contribuição de Componentes para que possa ser incorporado na base de resultados do processo.

E finalmente, o objetivo 4 do nível é totalmente atingido, pois a organização possui uma macroatividade específica para programa de treinamento que dá suporte a todas as macroatividades do processo, inclusive ao Processo de Testes. Existe um gestor do programa de treinamento técnico responsável por distribuir e desenvolver os treinamentos juntamente com a gerência e o Grupo de Processo de Engenharia de Software Local. Eles seguem uma política de treinamento organizacional, que se encontra na macroatividade do programa de treinamento. O planejamento do treinamento e seus objetivos são desenvolvidos com participação do gerente sênior e o líder de projeto juntamente com o gestor do programa de treinamento e Grupo de Processo de Engenharia de Software Local. O treinamento necessário para o grupo de testes é avaliado. Existem pessoas qualificadas para dar o treinamento escolhido na empresa, e todos os recursos, como ferramentas e materiais para o treinamento, são disponibilizados.

O nível 3 do TMM é totalmente cumprido pelo Processo de Testes da organização, com 100% dos seus objetivos atingidos. Embora tenha alcançado a porcentagem para total satisfação dos objetivos, o Processo de Testes ainda pode ser melhorado, pois alguns subobjetivos não foram cumpridos.

4.2 Proposta de Melhorias

Apesar de o Processo de Testes da organização atingir os níveis 2 e 3 do modelo TMM, algumas práticas do TMM não foram cumpridas. Nesta seção serão destacados os pontos de deficiência do processo e sugestões de melhoria para que essas deficiências sejam corrigidas.

Para facilitar o trabalho foram documentadas na Tabela 6 algumas práticas dos objetivos do TMM que não foram cumpridas, listadas por nível e objetivo, e como o processo poderia atingir essas práticas.

Tabela 6 . Práticas não Atingidas x Propostas de Melhoria. Nível Objetivos Práticas não Atingidas Propostas de Melhoria 2 Objetivo 2 Gerentes e desenvolvedores do

projeto devem ser treinados para usar o template do Plano de Teste e desenvolver o Plano de Teste.

Na parte de treinamentos do processo deve constar um treinamento para gerentes e desenvolvedores na macroatividade de testes.

3 Objetivo 1 Os membros da equipe bem treinados e motivados devem ser atribuídos ao grupo do teste.

Devem ser documentados no processo treinamentos na macroatividade de testes para todos os membros do grupo de testes da organização.

3 Objetivo 2 As definições de padrões devem ser desenvolvidas para produtos de trabalho relacionados a testes e sua qualidade deve ser medida.

Medidas devem ser definidas para medir a qualidade dos padrões dos produtos de trabalho relacionados a testes.

Como vimos na tabela acima, as principais deficiências do Processo de Teste analisado são a falta de documentação dos treinamentos no processo e a ausência de medidas para medir a qualidade dos padrões dos produtos de trabalho relacionados a testes. Para corrigir estas deficiências, a organização deve documentar no processo treinamentos destinados especificamente a macroatividade de testes, pois os treinamentos citados no processo não são suficientes. E devem ser definidas medidas para medir a qualidade dos padrões dos produtos de trabalho relacionados ao Processo de Teste. Para a melhoria do processo de Testes da organização é sugerida a utilização da métrica Análise por Ponto de Teste para medição de estimativas iniciais do planejamento no Processo de Teste. A análise por ponto de testes é uma técnica para estimar o esforço de teste para testes caixa preta. Outro método de medição mais conhecido que poderia ser adotado é Análise por Pontos de Função, este talvez fosse mais adequado para organização, pois seria utilizado para medições de todo o processo da organização. A análise por pontos

(15)

de função é um método de medição do tamanho do software que tenta relacionar a complexidade inerente ao processamento com as funcionalidades solicitadas/oferecidas ao usuário através do software.

5. CONCLUSÃO

Esta seção apresenta as principais conclusões deste trabalho, cujo objetivo foi fazer uma análise de aderência do Processo de Testes de uma grande organização ao modelo de melhoria TMM.

O TMM é um modelo de melhoria do Processo de Testes ainda pouco disseminado. O modelo reúne as melhores práticas do teste e é baseado no modelo de maturidade CMM. Apresenta 5 níveis que podem ser alcançados por uma organização, e cada nível possui objetivos que devem ser cumpridos para se alcançar o nível pretendido. Da mesma forma que o modelo CMM, os níveis são acumulativos. Por exemplo, para se alcançar o nível 3 deve-se cumprir os objetivos do nível 2 e do nível 3 do modelo.

O Processo de Testes analisado pertence a uma grande organização certificada CMM nível 2. Existe um framework do processo da organização que define políticas e procedimentos para a macroatividade de teste. O Processo de Teste é bem definido e possui uma equipe de projetistas de teste e testatores, responsáveis por planejar, projetar, executar e avaliar as atividades do teste.

Através da análise feita na seção 4 foi possível identificar a cobertura dos níveis do TMM pelo processo da organização. O Processo de Testes atendeu bem os objetivos do nível 2 e 3 do TMM, conseguindo uma cobertura total dos objetivos analisados. Apesar de atingir os dois níveis do modelo, o processo não cumpriu algumas práticas definidas pelos objetivos. Essas deficiências foram identificadas e foram propostas melhorias para que o processo aderisse totalmente às boas práticas do teste.

Esse trabalho tem como principais contribuições:

• Fornecimento de uma descrição detalhada sobre o modelo TMM, um modelo de melhoria do Processo de Testes que ainda é pouco conhecido e aplicado pelas organizações e universidades do Brasil;

• Disseminação de conhecimento sobre o TMM, a fim de estimular maiores estudos na área; • Análise de Aderência do Processo de Testes aos níveis 2 e 3 do modelo TMM, destacando os

pontos fortes e fracos das atividades de teste na organização;

• Propostas de melhorias aos pontos fracos do Processo de Teste da organização baseado nas boas práticas do TMM.

Os trabalhos futuros pretendidos são:

• Aplicar o método de medição APT (Análise por Pontos de Teste) ao Processo de Testes da Organização;

• Montar uma grade de treinamento adequada para o Processo de Testes, com a finalidade de que os membros participantes das atividades de testes sejam bem treinados e motivados; • Medir a análise de aderência do Processo de Testes da Organização ao modelo de maturidade

CMMI, através das Áreas de Processo (PAs): Verificação e Validação.

REFERÊNCIAS

[Art, 2004] Myers, G., 2004. The Art of Software Testing. John Wiley.

[Freitas, 2005] Freitas, B., 2005. Um modelo para o gerenciamento de múltiplos projetos de software aderente ao CMMI. Monografia de graduação, Universidade Federal de Pernambuco. Recife, Brasil.

[IIT, 1998] Burnstein, I. et al, 1998. A Model to Assess Testing Process Maturity. Illinois Institute of Technology.

[IIT, 1999] Burnstein, I. et al, 1999. A Testing Maturity Model for Software Test Process Assessment and Improvement. Illinois Institute of Technology.

[KoP, 1999] Koomen, T. and Pol, M., 1999. Test Process Improvement: A practical step-bystep guide to structured testing. ACM Press.

[Paula, 2005] Paula, D.. 2005. Medições de Qualidade de Software sob a Perspectiva do Six Sigma e CMMI. Monografia de graduação, Universidade Estadual do Ceará. Fortaleza, Brasil, pp 1.

[Pressman, 2002] Pressman, R., 2002. Engenharia de Software. McGraw-Hill.

[Rios, 2000] Rios, E., 2000. Considerações sobre o TMM - Test Maturity Model em comparação com o CMM. Disponível em: http://www.alats.org.br/artigos/. Acesso em: 12/02/2006. [Rios, 2003] Rios, E e Filho, T., 2003. Testes de Software. Alta Books.

(16)

[Rocha, 2001] Rocha, A., Maldonado, J. e Weber, K., 2001. Qualidade de Software: Teoria e Prática. Prentice Hall.

[Ron, 2000] Swinkels, R., 2000. A comparison of TMM and other Test Process Improvement Models. Frits Philips Institute.

[Sommerville, 2003] Sommerville, I., 2003. Engenharia de Software. Addison Wesley.

[Staab, 2002] Staab, T., 2002. Using SW-TMM to Improve the Testing Process. CrossTalk - The Journal of Defense Software Engineering.

[UFF, 2005] Quintella, H. et al, 2005. Avaliação do nível de maturidade dos processos de desenvolvimento de produtos na indústria automotiva do sul fluminense com base nos critérios do CMMI. Relatório de Pesquisa, Universidade Federal Fluminense. Niterói, Brasil.

[VenRon, 2002] Veenendaal, E. e Swinkels, R., 2002. Guidelines for Testing Maturity. Professional Tester, Volume 3.

Referências

Documentos relacionados

Para atingir este fim, foram adotados diversos métodos: busca bibliográfica sobre os conceitos envolvidos na relação do desenvolvimento de software com

Quando os dados são analisados categorizando as respostas por tempo de trabalho no SERPRO, é possível observar que os respondentes com menor tempo de trabalho concordam menos que

ITIL, biblioteca de infraestrutura de tecnologia da informação, é um framework que surgiu na década de mil novecentos e oitenta pela necessidade do governo

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Com base nos resultados da pesquisa referente à questão sobre a internacionalização de processos de negócios habilitados pela TI com o apoio do BPM para a geração de ganhos para

No método criado por Jeff Sutherland e formalizado por Ken Schwaber (SCHWABER e SUTHERLAND, 2013), a equipe de desenvolvimento trabalha de forma unida e com o objetivo

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a