QA
QA
QA
Qualidade e teste
D
e software
Iniciar
introdução
Introdução
Chegamos à última unidade do nosso curso e, no decorrer de todo conteúdo, tivemos diversas
oportunidades para reafirmar o caráter contínuo e regular do processo de busca pela
qualidade. Ao invés de ficarem concentrados em um só momento, os processos de qualidade
devem se estender por todo ciclo de vida de um produto, o que tende a tornar sua aplicação
mais efetiva e a aumentar a confiabilidade do software. Este raciocínio, amplamente aceito
entre profissionais de qualidade, nos autoriza a entender que o nível de qualidade obtido na
aplicação de um procedimento é diretamente proporcional ao nível do produto por ele
gerado. Por isso, esta unidade se dedica a apresentar normas que definem e sistematizam
processos de desenvolvimento de produtos de software, ofertando à equipe de
desenvolvimento boa referência e meios de avaliação eficientes.
Embora esta premissa não possa ser totalmente rechaçada em nosso contexto, a
caracterização de um procedimento de software como maduro requer algumas adaptações. A
maturidade, observada neste contexto, refere-se ao grau de evolução atingido pelo
procedimento de software aplicado na organização. Imaginar, no entanto, que apenas o tempo
de aplicação é capaz de conferir a um processo maturidade definitiva é um equívoco. Para
colocarmos as ideias como se deve, começaremos este tópico conceituando o procedimento
de software e abordando um dos mais consagrados modelos de maturidade do mundo.
O modelo de nosso interesse é chamado CMMI, que vem da expressão da língua inglesa
Capability Maturity Model Integration, ou Integração do Modelo da Maturidade em
Capacitação. Embora a tradução literal não revele com clareza seu objetivo, o modelo visa
determinar o estágio atual de maturidade dos processos de uma organização e oferecer meios
para aprimorá-lo. Mantido pelo CMMI Institute, o modelo foi adotado no lugar do CMM,
criado na década de 1980 pela SEI (Software Engineering Institute).
Como nossa abordagem terá como foco processos, vale a pena o resgate desta temática antes
de iniciarmos o CMMI. A criação de um produto, a prestação de um serviço ou o
gerenciamento de um projeto são atividades que, por motivos relacionados a previsibilidade e
a boa utilização dos recursos disponíveis, são conduzidas por meio de processos. Ensina
Wazlawick (2013, p. 11) que processos usualmente são definidos como conjuntos estruturados
de atividades, para as quais são determinados artefatos de entrada e saída, papéis de
responsáveis e participantes, além dos recursos necessários.
Observe que parece haver falta da palavra software nesta definição, mas esteja certo que não
foi o mero acaso que a determinou. Os modelos do CMMI, que logo serão tratados, podem
ser usados para o aprimoramento e avaliação dos processos de uma organização,
independentemente de serem processos de software ou não. Por isso, logo estaremos diante
de definições e práticas de aplicações genéricas que, embora tenham sido na indústria do
software, logo foram adaptadas para outras áreas da atividade humana.
Neste sentido, é de se esperar que um modelo tão abrangente seja particionado em visões
aplicáveis a múltiplos contextos de negócios. A flexibilidade, contudo, vai além e a organização
pode criar uma visão do modelo que atenda às suas necessidades específicas de melhoria de
desempenho. Em março de 2018 o modelo foi atualizado da versão 1.3 para a 2.0 e suas
divisões principais foram assim determinadas (INTRODUCING CMMI V2.0).
Garantia de que os produtos e serviços serão entregues com rapidez e eficiência, com pouco
ou nenhum retrabalho.
CMMI Gerenciamento de fornecedores: se é verdade que ninguém vence sozinho, então esta
divisão do CMMI já tem sua importância garantida no contexto. Há uma interdependência
crescente entre consumidor e fornecedor e a redução de riscos e mitigação das expectativas
mal compreendidas são providências garantidas pelo gerenciamento de fornecedores guiado
pelo CMMI. Esta visão é, portanto, é um conjunto integrado de práticas que melhora a
capacidade de uma organização de identificar e gerenciar fornecedores de uma maneira que
maximiza a eficiência da cadeia de suprimentos e reduz os riscos.
Qualquer que seja sua versão, visão ou foco de aplicação, o CMMI é um modelo que aponta o
caminho para melhorias graduais no processo, percorrido em 5 níveis de maturidade e 4 níveis
de capacidade, e criado para que organizações possam sair de um processo de software
caótico para um processo maduro e disciplinado. A tabela 4.1 mostra estes níveis.
Vale ainda o registro de que, embora a aplicabilidade do CMMI não esteja necessariamente
relacionada a um processo específico, é no contexto de aquisição, desenvolvimento e
prestação de serviços de software que reside nosso interesse imediato, daí a menção a
“processo de software”.
0 Incompleto -
1 Realizado Inicial
2 Gerenciado Gerenciado
3 Definido Definido
4 - Quantitativamente gerenciado
5 - Em otimização
Nível 0 – Incompleto:
Um processo é considerado incompleto quando não está sendo colocado em prática ou está
sendo desempenhado apenas parcialmente. Um ou mais objetivos específicos da área de
processo não estão sendo satisfeitos e não existem metas genéricas para serem alcançadas.
Assim, processos considerados incompletos não devem ser oficializados.
Nível 1 – Realizado:
Neste nível, o processo é viável e está sendo seguido, é capaz de gerar produtos ou serviços e
pode até ser considerado como um dos motivos para que a organização tenha experimentado
melhorias. No entanto, tais conquistas podem ser perdidas ao longo do tempo, já que, um
processo realizado ainda não foi institucionalizado, ou seja, não segue regras claras e definidas
como maneira de garantir a repetição.
Nível 2 – Gerenciado:
Neste nível, um processo já é planejado e executado de acordo com a política definida, utiliza
recurso humano qualificado, produz saídas previsíveis, é capaz de envolver os stakeholders, é
monitorado, controlado e avaliado. Em períodos de estresse, as práticas planejadas são
mantidas pelo gerenciamento empreendido no processo.
Nível 3 – Definido:
Um processo definido é feito sob medida a partir das diretrizes da organização. Este nível
também se caracteriza por manter registros gerais do processo. No nível anterior
(Gerenciado), as descrições de processos, os procedimentos e as normas que os padronizam
podem ser bastante diferentes em cada aplicação particular do processo. No nível de
capacidade 3, as normas, descrições de processos e procedimentos para um projeto são feitos
sob medida a partir do conjunto de processos padrão da organização, o que lhes dá, via de
regra, mais consistência. Ao compararmos os níveis 2 e 3, concluiremos que a descrição dos
processos no nível 3 é mais rigorosa do que no anterior. Em um processo definido suas
finalidades, insumos, atividades, recursos, métricas, entradas e saídas são itens descritos com
clareza e precisão, o que facilita seu gerenciamento.
A descrição dos níveis de capacidade de um processo serviu para preparar nosso caminho até
o conhecimento dos níveis de maturidade da organização e de seus procedimentos. Sua
apresentação é feita resumidamente na sequência.
Níveis de Maturidade: para suportar a aplicação (ou representação) por estágios, o CMMI
contempla níveis de maturidade em sua concepção. Um nível de maturidade é composto por
práticas especificas e genéricas aplicáveis em um conjunto predefinido de áreas de processos
que tornam melhor o desempenho geral da organização. O nível de maturidade fornece, pois,
uma maneira de caracterizar o seu desempenho da organização. Quanto maior o nível de
maturidade, mais organizada em seus processos pode ser considerada a organização. Em
consequência, a tendência de gerar produtos de qualidade avançada é maior (MAITINO NETO,
2016)
Tratados de forma genérica (os processos podem ser para desenvolvimento de software ou
não), a descrição dos níveis de maturidade é assim feita:
Nível 1 – Inicial:
Neste nível, a organização coloca em prática processos caóticos e sem definições claras, o que
acaba atrelando o sucesso da empresa a iniciativas individuais e esporádicas. A organização
não provê um ambiente estável para o desenvolvimento do produto ou serviço. Estimativas
são baseadas em percepções subjetivas, o que favorece que cronogramas e orçamentos sejam
abandonados com frequência.
Nível 2 – Gerenciado:
Este nível permite que, por causa do gerenciamento aplicado, os interessados no projeto
possam acompanhar suas entregas intermediárias. Há critérios para nortear o planejamento e
execução dos projetos e a previsibilidade dos resultados é apontada como característica neste
contexto, mesmo diante de imprevistos e adversidades.
Nível 3 – Definido:
Mesmo tendo sido originados em diferentes áreas e tendo objetivos completamente distintos,
os projetos se tornam efetivos a partir de padrões globais da organização. Um projeto da área
de software seguirá os mesmos padrões que um projeto da área de manufatura, por exemplo.
Com isso, a definição dos projetos é feita de forma bem rigorosa neste nível. Note que os
níveis 2 e 3 de maturidade guardam semelhanças com os mesmos níveis de capacidade do
processo.
Nível 5 – Em otimização:
Trata-se do nível mais elevado na escala e objetivo a ser atingido por qualquer organização.
Aqui, a organização já alcançou a excelência em cada nível anterior e passa a buscar melhoria
contínua em seus processos, com base nas medições quantitativas já obtidas.
saiba mais
Saiba mais
A versão 2.0 do CMMI foi lançada no ano de 2018 e ainda está em processo de
reconhecimento pelo mercado. No entanto, as melhorias em relação à versão anterior são
significativas e valem a pena serem conhecidas. Acesse:
ACESSAR
Vale ressaltar que o CMMI usa estas descrições de níveis para classificar os estágios dos
processos sob avaliação. Há, contudo, além destas descrições, uma indicação de caminho a
ser seguido para que um determinado nível de maturidade seja atingido. Tomemos como
exemplo a versão anterior do CMMI, a 1.3. Uma de suas divisões, a CMMI-DEV (DEV vem de
development, ou desenvolvimento), prevê a existência de 22 áreas específicas de processo de
desenvolvimento de um produto de software. Cada área está associada a um nível de
maturidade e sua descrição contém o propósito de sua existência. A tabela 4.2 apresenta 6
destas 22 áreas.
Pelos dados contidos na tabela concluímos que os níveis de maturidade situados entre 2 e 5
são atingidos na medida em que a organização implementa as providências descritas em cada
nível. Para atingimento do nível gerenciado (nível 2), por exemplo, é necessário que as áreas
de gerenciamento de requisitos, gerenciamento de configuração e garantia da qualidade de
produto e de processo, entre outras, atinjam o nível de capacidade 2. Para atingimento do
nível de maturidade 3, é necessário que todas as áreas de processo do nível 2, mais a área de
desenvolvimento de requisitos (também entre outros) alcancem o nível de capacidade 3.
Parece-nos, pois, que a característica evolucionária do modelo ficou mais bem destacada.
Trataremos na sequência de uma norma criada especificamente para processos de software.
atividade
Atividade
A aplicação do CMMI em uma organização pode ser feita de duas maneiras: a aplicação
____________ caracteriza o estado dos processos de acordo com níveis de capacidade. Já a
aplicação ________ caracteriza o estado geral dos processos por meio de níveis de
maturidade. Quando se encontra no nível __________, uma organização já consegue conduzir
processos avaliados e controlados.
Verificar Resposta
Você e alguns de seus amigos resolvem abrir uma empresa de desenvolvimento de software e,
logo depois de formalmente criada e estruturada, ela finalmente recebe a primeira demanda.
Como o cliente tinha pressa, foram combinados prazos apertados e, por isso, não há tempo a
perder. Basta então que sentem e codifiquem logo o programa, não é mesmo?
O desconhecimento da existência de uma norma específica que descreve e disciplina o ciclo de
vida de um software pode levar alguém a responder “sim” a esta pergunta e, por
consequência, ter grande chance de enfrentar o insucesso logo em sua primeira empreitada.
Neste sentido, o item atual da nossa unidade descreve a norma ISO/IEC 12207. Ela estabelece
uma estrutura comum para processos de ciclo de vida de software, com terminologia bem
definida, que pode e deve ser referenciada por organizações desenvolvedoras de software. Ele
contém processos, atividades e tarefas que são aplicáveis durante a aquisição, fornecimento,
desenvolvimento, operação, manutenção ou descarte de sistemas, produtos e serviços de
software. Esses processos do ciclo de vida são realizados por meio do envolvimento de partes
interessadas (ou stakeholders), com o objetivo final de alcançar a satisfação do cliente.
Por fim, o documento que descreve a norma também fornece processos que podem ser
empregados para definir, controlar e aprimorar processos de ciclo de vida de software dentro
de uma organização ou projeto.
A norma ISO/IEC 12207 é composta por um conjunto abrangente de diretrizes a partir do qual
uma organização pode construir modelos de ciclo de vida de software apropriados a seus
produtos e serviços, da concepção até ao encerramento.
A norma pode ser usada em um ou mais dos seguintes modos (SYSTEMS, s.d):
Por uma organização: para ajudar a estabelecer um ambiente de processos desejados. Esses
processos podem ser suportados por uma infraestrutura de métodos, procedimentos,
técnicas, ferramentas e pessoal treinado. A organização pode então empregar esse ambiente
para executar e gerenciar seus projetos e estabelecer o desenvolvimento de sistemas de
software através de seus estágios de ciclo de vida.
Por um projeto: neste contexto, serve para ajudar a selecionar, estruturar e empregar os
elementos de um ambiente estabelecido para fornecer produtos e serviços. Neste modo, a
norma 12207 é utilizada na avaliação da conformidade do projeto com o ambiente declarado e
estabelecido.
Por avaliadores de processos: para servir como um modelo de referência de processo para
uso no desempenho de avaliações de processos que podem ser usados para apoiar a melhoria
do processo.
atividade
Atividade
III) Os avaliadores de processos podem basear-se na ISO/IEC 12207 para criar modelo para
avaliação. No entanto, a norma não serve para balizar a condução de projetos de software,
por tratar apenas de seu ciclo de vida.
a) I apenas.
b) I e II apenas.
c) I, II e III.
d) I e III apenas.
e) II e III apenas.
Afirmação II: incorreta. A afirmação estabelece vínculo indevido entre a 12207 e o CMMI.
Além disso, não se pode afirmar que o foco da norma esteja centrado na aquisição e descarte
de um produto.
Afirmação III: incorreta. A primeira parte da afirmação é correta. No entanto, a norma também
alcança procedimentos relacionados a projeto de software, o que invalida a afirmação.
Verificar Resposta
Parecem ser traços comuns das normas abordadas nesta unidade a busca pela determinação e
aumento do nível de maturidade/capacidade de um processo, bem como a melhoria dos
processos de uma organização.
A norma ISO/IEC 15504 não foge à regra e, através de seu “apelido”, deixa claro seu objetivo:
SPICE é acrônimo de Software Process Improvement and Capability dEtermination, ou
Melhoria do Processo de Software e Determinação da Capacidade. Estamos diante, então, de
uma norma específica para processos de software, em oposição à vocação generalista do
CMMI.
Ensina Wazlawick (2013) que ela foi criada como uma complementação para a ISO/IEC 12207 e
tem como objetivo orientar a avaliação e autoavaliação da capacidade das organizações em
processos, possibilitando assim a melhoria destes processos. Ela também serviu para suprir
lacuna da ISO 90003 que, embora tenha servido como referência para a indústria de software,
não tratava dos níveis de maturidade e de melhoria contínua.
Dimensão de capacidade: em cada processo são previstos seis níveis de capacidade, que não
se distanciam dos que já abordamos. São eles: incompleto, realizado, gerenciado,
estabelecido, previsível e otimizado. A avaliação destes processos é feita em função de
determinados atributos destes processos.
A avaliação dos processos da organização é prevista pela própria norma e segue procedimento
definido, que se inicia com a seleção do avaliador, segue para o planejamento da avaliação,
passa pela coleta e validação de dados e acaba com a atribuição do nível de capacidade de
cada processo avaliado.
atividade
Atividade
WAZLAWICK, Raul Sidnei. Engenharia de Software: Conceitos e Práticas. 1. ed. Rio de Janeiro:
Elsevier, 2013. p. 260.
Alternativa a: incorreta. A norma foi criada para complementar, não para substituir a ISO/IEC
12207
Alternativa b: incorreta. Foi criada para melhoria do processo de software e para determinação
do nível de capacidade dos processos envolvidos.
Alternativa d: incorreta. Não há menção na literatura de que tenha sido criada para
complementar o CMMI.
Alternativa e: correta. De fato, a norma foi criada para melhoria do processo de software e
para determinação do nível de capacidade dos processos envolvidos, daí a sigla SPICE
(Software Process Improvement and Capability dEtermination)
Verificar Resposta
O MPS.BR
Embora consagradas e largamente utilizadas pelas organizações mundo afora, as normas e
modelos criados no exterior não gozam de exclusividade em nosso país. O MPS.BR, também
conhecido como MR-MPS (Modelo de Referência para Melhoria do Processo de Software) é
um modelo de avaliação de software feito sob medida para empresas nacionais. Ele foi
concebido em 2003 pela SOFTEX, organização cuja missão é ampliar a inovação e a
competitividade do setor brasileiro de software e serviços de tecnologia da informação,
promovendo o desenvolvimento do país (SOFTEX, s.d.).
Embora possa ser considerado independente, o MPS é compatível com a ISO 12207, com a
norma 15504 e também com o CMMI (WAZLAWICK, 2013).
Fonte: Softex.
reflita
Reflita
saiba mais
Saiba mais
A SOFTEX disponibiliza gratuitamente o Guia Geral do MPS.BR das várias visões do modelo. O
guia específico para software pode ser encontrado em:
ACESSAR
Com ordenação e nomenclatura ligeiramente diferentes das vistas em outros modelos, o MPS
é apresentado na sequência. Cada atributo de processo no MPS.BR é detalhado por um
conjunto de resultados esperados (SOFTEX, 2016).
Nível E: Parcialmente Definido. Este nível é formado pelos processos dos níveis G e F,
acrescidos dos processos de Avaliação e Melhoria do Processo Organizacional, Definição do
Processo Organizacional, Gerência de Recursos Humanos e Gerência de Reutilização. Aqui, o
processo Gerência de Projetos evolui e a gerência do projeto passa a ser praticada com base
no processo definido e com base nos planos integrados.
Nível D: Largamente Definido. O nível D é composto pelos processos dos níveis de maturidade
G ao E, mais os processos de Desenvolvimento de Requisitos, Integração do Produto, Projeto e
Construção do Produto, Validação e Verificação.
Nível C: Definido. O nível de maturidade C é composto pelos processos dos níveis de
maturidade anteriores (G ao D), acrescidos dos processos Desenvolvimento para Reutilização,
Gerência de Decisões e Gerência de Riscos.
Nível A: Em Otimização. Por fim, este nível de maturidade é composto pelos processos dos
níveis de maturidade anteriores (G ao B).
atividade
Atividade
I) Os sete níveis de maturidade do MPS.BR dificultam sua aplicação, dai seu baixo índice de
adoção pelas organizações brasileiras.
a) II apenas.
b) I e III apenas.
c) I, II e III.
d) III apenas.
e) II e III apenas.
Afirmação I: incorreta. Por apresentarem diferenças mais sutis entre os níveis, a estruturação
em 7 divisões melhora a aplicabilidade do modelo, ao invés de prejudica-la.
Afirmação II: incorreta. Embora seja baseado no CMMI, o MPS.BR é um modelo independente
e com diretrizes próprias.
Afirmação III: correta. De fato, temos uma definição correta do nível G na alternativa.
Verificar Resposta
indicações
Material Complementar
Livro
Kindle Edition
Filme
Ano: 2002
C
omentário: Neste filme, um grupo de homens se organiza para assaltar cassinos em Las
Vegas. O planejamento, a capacitação dos recursos humanos e a execução da empreitada são
conduzidos com extremo rigor para o atingimento do objetivo.
Para conhecer mais sobre o filme, acesse o trailer disponível em:
Trailer
conclusão
Conclusão
Ao chegarmos ao fim da última unidade deste curso, desejamos que a condução da sua vida
acadêmica seja bastante proveitosa e que sua atuação profissional esteja perfeitamente
alinhada com seus objetivos pessoais. Grande abraço e boa sorte!
referências
Referências Bibliográficas
Imprimir