29
1

1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Embed Size (px)

Citation preview

Page 1: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

1

Page 2: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Qualidade, Processos e Gestão de Software

Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e

Validação do CMMI

13/12/2008

2

Nielso Oliveira ([email protected])

Page 3: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Agenda

1. Contextualização

2. CMMI

3. Verificação e Validação – V&V

4. Maturidade em Testes

5. TMM

6. CMMI V&V x TMM

7. Conclusão

3

Page 4: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Contextualização

4

Software faz parte de várias atividades do dia-a-dia da sociedade moderna;

Globalização -> Aumento da concorrência -> Qualidade como diferencial competitivo

Mas, como melhorar a qualidade do software?

QUALIDADE DO QUALIDADE DO PRODUTO DE PRODUTO DE SOFTWARESOFTWARE

QUALIDADE DO QUALIDADE DO PROCESSO DE PROCESSO DE DESENVOLVIMENTODESENVOLVIMENTO

SW-CMM ISO 9126CMMI-Dev

MPS Br

ISO 12207

Bootstrap

ISO 14598

ISO 12119

ISO 25000 (SQuaRE)

Page 5: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI

5

SEI CMMIIntegração de vários modelos (SW-CMM, IPD-CMM, SE-CM)CMMI-Dev 1.2 publicado em agosto/2006.

[CMMI]

Componentes do ModeloÁrea de Processo - conjunto de atividades relacionadas que, quando realizadas adequadamente, atendem um conjunto de metas consideradas importantes para trazer uma melhoria significativa naquela área. Objetivos Específicos - descrevem o que deve ser implementado para satisfazer a Área de Processo.Práticas Específicas - atividade importante na satisfação de uma meta específica.

Área de Processo

Objetivo Específico 1 Objetivo Específico 2

Prática Específica 1 Prática Específica 1 Prática Específica 2

Page 6: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI

6

[CMMI]

Componentes do Modelo (continuação)Objetivos Genéricos - descrevem características referentes à institucionalização de um processo que implemente as àreas de processo. São genéricas porque se aplicam a várias áreas de processo.Práticas Genéricas - atividade importante na satisfação de uma meta genérica.

Área de Processo 1

Objetivo Específico 1

Objetivo Específico 1

Prática Específica 1

Prática Específica 1 Prática Específica 2

Área de Processo n

Objetivo Genérico 1

Prática Genérica 1 Prática Genérica 2...

Page 7: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI

7

Representações – definem uma estratégia para a melhoria dos processos

EstagiadaÁreas de processo agrupadas por nível (1 a 5)Avaliação da maturidade organizacional

ContínuaAgrupamento de acordo com as necessidade da organização (profile)Avaliação da capacidade dos processos

[CMMI]

Page 8: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI

8

Representações – definem uma estratégia para a melhoria dos processos

Nível Representação Estagiada (Nível de Maturidade)

Representação Contínua (Nível de Capacidade)

0 N/A Incompleto

1 Executado Executado

2 Gerenciado Gerenciado

3 Definido Definido

4 Quantitativamente Gerenciado Quantitativamente Gerenciado

5 Otimização Otimização

Os níveis (maturidade ou capacidade) estão associados à implementação dos processos da organização, ou seja, são alcançados através do alcance das metas genéricas do modelo.

[CMMI]

Page 9: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI

9

Objetivos Genéricos

[CMMI]

Nível Objetivo Genérico

0 - Incompleto N/A

1 - Executado 1.1 – Executar as práticas específicas das Aps para desenvolver os produtos e prover os serviços necessários para se alcançar os objetivos específicos.

2- Gerenciado 2.1- Estabelecer uma política organizacional para o planejamento e execução do processo2.2 – Estabelecer e manter um plano par a execução do processo2.3 – Prover recursos par a execução dos processos2.4 – Definir responsabilidades e autoridade para a executar o processo2.5 – Treinas as pessoas para executar e dar suporte ao processo2.6 – Manter os produtos de trabalho em níveis adequados de gerência de configuração2.7 – Identificar e envolver os satakeholders conforme planejamento2.8 – Monitorar e controlar o processo de acordo com o planejamento, tomando ações corretivas quando necessário2.9 – Avaliar objetivamente a aderência ao processo, identificando as não conformidades2.10 – Revisar as atividades, status e resultados do processo com a alta gerência

3- Definido 3.1 – Estabelecer e documentar o o processo adaptado do processo padrão da organização de acordo com as necessidades do projeto3.2 – Coletar informações para suportar o uso futuro e a melhoria do processo da organização

4- Quantitativamente Gerenciado

4.1 – Estabelecer objetivos quantitativos para o processo4.2 – Estabilizar a perfornance dos subprocessos

5-Otimização 5.1 – Garantir a melhoria contínua do processo de acordo com as necessidades da organização5.2 – Identificar e corrigir as causas dos defeitos e problemas no processo

Page 10: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI

10

Agrupamento das Áreas de Processo em Categorias

[CMMI]

Verificação

Validação

Page 11: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Verificação e Validação

11

As atividades de V&V servem para assegurar que o software funcione de acordo com o que foi especificado e atenda aos requisitos dos stakeholders. [SOMMERVILE]

Enquanto a verificação preocupa-se com a implementação correta dos requisitos especificados, a validação avalia se o software realmente satisfaz às necessidades dos usuários. [PEZZÈ]

Conjunto de atividades com a finalidade de garantir que tanto o modo como o software está sendo desenvolvido quanto o produto estejam em conformidade com o especificado. [DELAMARO]

A verificação é o processo de determinar se a saída de uma fase está de acordo com os requisitos especificados na fase anterior. A validação busca confirmar que a especificação do sistema é consistente com os requisitos dos stakeholders. [KOSCIANSKI]

A validação preocupa-se em demonstrar que o produto atende às necessidades dos usuários, enquanto que a verificação asegura que os produtos de trabalho foram gerados de acordo com os requisitos especificados. [CMMI]

Page 12: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Verificação e Validação

12

Verificação – Objetivos (OE) e Práticas (PE) específicos

OE 1 – Preparação para a verificaçãoPE 1.1 – Selecionar produtos para verificação e os métodos que serão utilizadosPE 1.2 – Disponibilizar e manter o ambiente necessário à execução da verificaçãoPE 1.3 – Definir e manter os procedimentos e critérios para verificação

OE 2 – Executar revisões por pares nos produtos selecionadosPE 2.1 – Preparar a revisão por paresPE 2.2 – Realizar as revisões identificando os problemasPE 2.3 – Analizar os dados das revisões

OE 3 – Verificar os produtos de trabalho selecionadosPE 3.1 – Executar a verificaçãoPE 3.2 – Analisar os resultados da verificação

[CMMI]

Page 13: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Verificação e Validação

13

Validação – Objetivos (OE) e Práticas (PE) específicos

OE 1 – Preparação para a validaçãoPE 1.1 – Selecionar produtos para validação e os métodos que serão utilizadosPE 1.2 – Disponibilizar e manter o ambiente necessário à execução da validaçãoPE 1.3 – Definir e manter os procedimentos e critérios para validação

OE 2 – Validar o produtoPE 2.1 – Executar a validação nos produtos selecionadosPE 2.2 – Analisar os resultados da validação

[CMMI]

Page 14: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Maturidade em Testes

14

Desde a década de 80 as atividades de teste eram executadas no final do ciclo de desenvolvimento

Com o aumento da complexidade dos sistemas de software, a atividade de teste passou a exigir uma maior especialização e a definição de um processo paralelo ao processo de desenvolvimento. [BASTOS]

Modelos de maturidade em Testes surgiram para avaliar e melhorar o nível de qualidade dos processos de testes aplicados numa organização desenvolvedora de software. [VASCONCELOS]

Test Improvement Model (TIM) Test Process Improvement (TPI) Test Maturity Model (TMM)

Page 15: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

TMM - Test Maturity Model

15

Desenvolvido pelo Instituto de Tecnologia da universidade de Illinois em 1996, com o objetivo de dar suporte às organizações na melhoria de seu processo de teste.

Criado para ser um complemento ao SW-CMM e baseado nos melhores práticas de teste do mercado.

Define 5 níveis de maturidade. Cada nível, exceto o nível 1, possui a seguinte estrutura:• Conjunto de objetivos de maturidade que podem ser comparados às

áreas de processo do CMMI;• Sub-objetivos que descrevem o escopo, limitações e comprometimento

necessário para se alcançar as metas. Podemos considerá-las equivalentes aos objetivos específicos do CMMI

• A cada submeta estão associadas atividades (equivalente às práticaas do CMMI) e responsabilidades dos gerentes, desenvolvedores/testadores e dos clientes/usuários

[BURSTEIN]

Page 16: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

TMM - Test Maturity Model

16

Níveis

Maturidadede Testes

Objetivos de Maturidade

Sub-objetivos de Maturidade

Indicam Contêm

Suportados por

Atingidos por

Atividades / Responsabilidades

Organizadas em

Visões CríticasImplementação e

Adaptação Organizacional

Implicam

DesenvolvedorTestadorGerente Usuário

Cliente

Page 17: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

TMM - Test Maturity Model

17

Nível 4: Gerenciamento e Medições

Nível 2: Definição da Fase

Nível 3: Integração

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

CAOS Teste == depuração

Teste = sw funciona

Teste = sw NÃO funciona

Introdução de métricas de qualidade (processo e produto)

Prevenção de defeitos

Nível 1: Inicial

Page 18: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

TMM - Test Maturity Model

18

Níveis Descrição dos Objetivos de maturidade

1 – Inicial N/A

2 - Fase de Definição Desenvolver os objetivos do teste Iniciar o processo de planejamento do teste Institucionalizar técnicas e métodos básicos de teste

3 – Integração

Estabelecer uma organização de testes de software Integrar o teste no ciclo de vida do software. Controlar e monitorar o Processo de Teste Estabelecer um programa de treinamento

4 - Gestão e Medições Estabelecer um programa amplo de revisão Estabelecer um programa amplo de medições de teste Avaliar a qualidade do Software

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

Aplicar processo de prevenção de defeitos Controlar a qualidade (usando métodos estatísticos) Otimizar o Processo de Teste

Page 19: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI V&V x TMM

19

Como o TMM define 5 niveis de maturidade relacionados a V&V, é muito mais rápido se avançar nos níveis do TMM do que na capacidade das áreas de Verificação e Validação de acordo com o CMMI.

TMM Nível 4 ⃗ Executar Revisão por Pares Nível 1 de capacidade do CMMI ⃖

Não há correspondência direta entre os níveis de capacidade do CMMI

e os de maturidade do TMM

Page 20: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI V&V x TMM

20

Objetivos do TMM para se alcançar o nível 1 de Capacidade do CMMI.Área de Processo CMMI

Prática Específica Objetivo de maturidade do TMM

Verificação PE 1.1 – Selecionar produtos para verificação e os métodos que serão utilizados

Desenvolver os objetivos do teste

PE 1.2 – Disponibilizar e manter o ambiente necessário à execução da verificação

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

PE 1.3 – Definir e manter os procedimentos e critérios para verificação

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

PE 2.1 – Preparar a revisão por pares Estabelecer um programa amplo de revisão

PE 2.2 – Realizar as revisões identificando os problemas

Estabelecer um programa amplo de revisão

PE 2.3 – Analizar os dados das revisões Controlar e monitorar o Processo de TesteEstabelecer um programa amplo de medições de teste

PE 3.1 – Executar a verificação Desenvolver os objetivos do teste Iniciar o processo de planejamento do teste Institucionalizar técnicas e métodos básicos de teste

PE 3.2 – Analisar os resultados da verificação

Controlar e monitorar o Processo de TesteEstabelecer um programa amplo de medições de teste

Page 21: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI V&V x TMM

21

Objetivos do TMM para se alcançar o nível 1 de Capacidade do CMMI.Área de Processo CMMI

Prática Específica Objetivo de maturidade do TMM

Validação PE 1.1 – Selecionar produtos para validação e os métodos que serão utilizados

Desenvolver os objetivos do teste

PE 1.2 – Disponibilizar e manter o ambiente necessário à execução da validação

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

PE 1.3 – Definir e manter os procedimentos e critérios para validação

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

PE 2.1 – Executar a validação nos produtos selecionados

Desenvolver os objetivos do teste Iniciar o processo de planejamento do teste Institucionalizar técnicas e métodos básicos de teste

PE 2.2 – Analisar os resultados da validação

Controlar e monitorar o Processo de TesteEstabelecer um programa amplo de medições de teste

E quanto aos demais níveis de capacidade ??

Page 22: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI V&V x TMM

22

Relacionamento Metas do nível 2 do TMM com Capacidade dos processos CMMI

Nível TMM Objetivo de Maturidade Objetivo Genérico do CMMI

2 Desenvolver os objetivos do teste 2.1- Estabelecer uma política organizacional para o planejamento e execução do processo

Iniciar o processo de planejamento do teste

2.2 – Estabelecer e manter um plano par a execução do processo2.3 – Prover recursos par a execução dos processos2.4 – Definir responsabilidades e autoridade para a executar o processo2.7 – Identificar e envolver os satakeholders conforme planejamento

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

2.1- Estabelecer uma política organizacional para o planejamento e execução do processo

Page 23: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI V&V x TMM

23

Relacionamento Metas do nível 3 do TMM com Capacidade dos processos CMMI

Nível TMM Objetivo de Maturidade Objetivo Genérico do CMMI

3 Estabelecer uma organização de testes de software

2.3 – Prover recursos par a execução dos processos2.4 – Definir responsabilidades e autoridade para a executar o processo2.7 – Identificar e envolver os satakeholders conforme planejamento

Integrar o teste no ciclo de vida do software

3.1 – Estabelecer e documentar o o processo adaptado do processo padrão da organização de acordo com as necessidades do projeto

Controlar e monitorar o Processo de Teste 2.7 – Identificar e envolver os satakeholders conforme planejamento2.8 – Monitorar e controlar o processo de acordo com o planejamento, tomando ações corretivas quando necessário2.9 – Avaliar objetivamente a aderência ao processo, identificando as não conformidades2.10 – Revisar as atividades, status e resultados do processo com a alta gerência3.2 – Coletar informações para suportar o uso futuro e a melhoria do processo da organização

Estabelecer um programa de treinamento 2.5 – Treinas as pessoas para executar e dar suporte ao processo

Page 24: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI V&V x TMM

24

Relacionamento Metas do nível 4 do TMM com Capacidade dos processos CMMI

Nível TMM Objetivo de Maturidade Objetivo Genérico do CMMI

4 Estabelecer um programa amplo de revisão

2.2 – Estabelecer e manter um plano par a execução do processo2.3 – Prover recursos par a execução dos processos2.4 – Definir responsabilidades e autoridade para a executar o processo2.7 – Identificar e envolver os satakeholders conforme planejamento

Estabelecer um programa amplo de medições de teste

3.2 – Coletar informações para suportar o uso futuro e a melhoria do processo da organização

Avaliar a qualidade do Software 4.1 – Estabelecer objetivos quantitativos para o processo

Page 25: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

CMMI V&V x TMM

25

Relacionamento Metas do nível 5 do TMM com Capacidade dos processos CMMI

Nível TMM Objetivo de Maturidade Objetivo Genérico do CMMI

5 Aplicar processo de prevenção de defeitos 5.1 – Garantir a melhoria contínua do processo de acordo com as necessidades da organização5.2 – Identificar e corrigir as causas dos defeitos e problemas no processo

Controlar a qualidade (usando métodos estatísticos)

4.2 – Estabilizar a perfornance dos subprocessos

Otimizar o Processo de Teste 5.1 – Garantir a melhoria contínua do processo de acordo com as necessidades da organização

Page 26: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Conclusões

26

Apesar do CMMI ser um modelo mundialmente difundido e tratar todas as disciplinas realtivas ao desenvlvimento de software, um modelo específico para Testes facilita o planejamento das organizações para iniciativas de melhoria nessa área.

O Test Maturity Model – TMM, além de facilitar a iniciativa de melhoria em testes da organização, também contribui para melhorar a capacidade em Verificação e Validação de acordo com o CMMI. Ou seja, a adoção do TMM não dispersa esforços relativos à metas de certificação CMMI, ao contrário, contribui para o alcance das mesmas.

Page 27: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Trabalhos Futuros

27

Realizar estudo de caso em uma organização de forma a constatar como o uso do TMM pode contribuir para o aumento da capacidade em Verificação e Validação.- Avaliação inicial TMM e CMMI V&V- Desenvolvimento de programa de melhoria em testes com base no TMM- Após concluído o projeto de melhorias em testes, reavaliar capacidade em CMMI V&V.

Obrigado!

Page 28: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

Referências

28

• BASTOS, Aderson et al. Base de Conhecimento em Testes de Software: São Paulo: Martins, 2007

• BURSTEIN Illene; SUWANNASART, Taratip; CARLSON, C.R. Developing a Testing Maturity model: Part I. Crosstalk, Utah, Agosto 1996

• CMMI for Development version 1.2, Pittsburgh, Software Engineering Institute, Carnegie Mellon University, August 2006

• DELAMARO, Eduardo; MALDONADO, José Carlos; JINO, Mário. Introdução ao Teste de Software. Rio de janeiro: Elsevier, 2007

• KOSCIANSKI, André. Qualidade de Software. São Paulo: Novatec, 2007 • OLIVEIRA JÚNIOR, Nielso. An Assessment of CIn-BTC Automation Test

Process According to Test Maturity Model – TMM. 2005. 46p. Monografia de Conclusão de Curso (Curso Sequencial de Formação Complementar em Análise de Testes) - UFPE, Recife, 2005

• PEZZÈ, Mauro. Teste e Análise de Software. Porto Alegre: Bookman, 2008• SOMMERVILE, Ian. Engenharia de Software. 6 ª ed. São Paulo: Addison

Wesley, 2003• VASCONCELOS, A.. Modelos de Maturidade de Testes, 2007

Page 29: 1. Qualidade, Processos e Gestão de Software Uma proposta de uso do TMM para melhoria da capacidade nas áreas de Verificação e Validação do CMMI 13/12/2008

29