Apostila de Qualidade de Software
Apostila de Qualidade de Software
Apostila de Qualidade de Software
br
alfamacursos.com.br 1
Alfama Cursos
Antônio Garcez
Fábio Garcez
Diretores Geral
MATERIAL DIDÁTICO
alfamacursos.com.br
Qualidade de
Sofware
alfamacursos.com.br 3
Apresentação do Curso
Lembre-se que apenas pela prática será possível ser um bom programador.
alfamacursos.com.br 4
Apresentação do Professor
alfamacursos.com.br 5
Componente Curricular
EMENTA:
PÚBLICO-ALVO:
Alunos oriundos do Ensino Médio e universitários que queiram complementar sua formação
profissional.
OBJETIVOS GERAIS:
alfamacursos.com.br 6
Índice
alfamacursos.com.br 7
Capítulo 1 - Introdução à Qualidade
1 – INTRODUÇÃO À QUALIDADE
1.1 – INTRODUÇÃO
São muitas as definições para o termo “Qualidade”, porém todas estão associadas a algum
ou vários dos seguintes termos: necessidade, satisfação, conformidade, adequação.
“Qualidade é o conjunto das características de uma entidade que lhe conferem a aptidão
para satisfazer necessidades exprimidas e implícitas.” (ISO 8402)
Os requisitos do produto precisam ser definidos, o que nos remete à qualidade dos mesmos.
Se os requisitos forem incorretos ou incompletos, ainda que, o processo de produção tenha
um padrão de excelência, não será possível atingir a qualidade.
Não podemos afirmar que um determinado produto possui um grau maior ou menor de
qualidade se o mesmo nunca foi avaliado. A existência da qualidade é comprovada a
partir de avaliação. A avaliação baseia-se nas informações coletadas sobre o objeto a ser
avaliado, ou seja, em métricas.
A qualidade do produto está associada à qualidade dos processos necessários para a sua
produção. Qualquer item considerado insatisfatório na avaliação remeterá à identificação
de alguma falha nos requisitos ou nos processos de produção. Depois de corrigida a falha,
o novo produto deve ser avaliado. Inicia-se, assim, a melhoria continuada da qualidade,
que deve focar os produtos e os processos.
alfamacursos.com.br 8
Qualidade de Sofware
Fica a dica!
No mundo atual, desenvolver um produto sem qualidade leva qualquer empresa à
morte “falência” e metodologias vêm sendo criadas para a melhoria da qualidade. Para
ficar por dentro das novidades sobre qualidade, acesse os sites:
• www.infoq.com
• www.fgrweb.com.br
alfamacursos.com.br 9
Qualidade de Sofware
Recordando
A qualidade é um conceito antigo, mas em Software, medir a qualidade é algo complexo
e difícil, para tanto existem normas e metodologias que facilitam que o desenvolvedor
crie produtos de qualidade. A qualidade é essencial para a sobrevivência de produtos.
alfamacursos.com.br 10
Capítulo 2 - Sistemas de Gestão da Qualidade
2.1 – INTRODUÇÃO
A base para o desenvolvimento dos modelos de SGQ é o ciclo Plan, Do, Check, Act –
PDCA, inspirado na metodologia científica de Francis Bacon e popularizado por W. Edwards
Deming.
Atualmente, existem diversos modelos de SGQ, alguns genéricos e outros para áreas
específicas. Algumas instituições optam por desenvolver seu próprio SGQ e outras adotam
sistemas desenvolvidos por instituições especializadas.
Os SGQs podem focar processos ou projetos e alguns possuem estrutura para controlar a
qualidade de ambos.
“Um processo é uma série de ações que geram um resultado.” Guia PMBOK, 4ª Ed.
alfamacursos.com.br 11
Qualidade de Sofware
Projeto é um termo derivado de “projectu”, em latim, que significa “lançar para adiante”.
Ainda que a opção seja desenvolver um sistema próprio, é necessário um estudo sobre
os sistemas já existentes, sem o qual se expõe aos riscos de cometer erros conhecidos,
utilizar recursos para desenvolver soluções já existentes, entre outros.
Para subsidiar a implementação de um sistema de qualidade, dois instrumentos são de
fundamental importância:
Obs.: De forma geral, as normas definem enquanto os modelos sugerem o que deve ser
feito.
alfamacursos.com.br 12
Capítulo 3 - Planejamento de Teste
3 - PLANEJAMENTO DE TESTE
3.1 – INTRODUÇÃO
A fase de testes de Software é mais uma área de conhecimento que se compromete com
a qualidade. Testar é a atividade de analisar e executar aplicações com a intenção de
verificar se o comportamento dos sistemas é o esperado. O objetivo dos testes de software
vai bem além de revelar defeitos. A literatura traduz um defeito (ou bug) como um passo,
processo ou definição de dados incorretos. Um defeito poderá causar um erro (um estado
inconsistente), que resultará em falhas (comportamentos que diferem do esperado).
Diferente de uma revisão simples, ou análise estática de código, o teste compreende
vários mecanismos baseados nos conceitos de Engenharia de Software. Um caso de teste
é composto por dados de entrada e resultados esperados. Para um ou mais casos de testes
há um oráculo, um mecanismo que decide sobre a correção de uma execução. Porém, há
oráculos que são complicados, devido ao desconhecimento dos resultados, ou resultados
esperados difíceis de ser avaliados ou até mesmo devido à grande quantidade de dados.
Para resolver este e alguns dos problemas frequentes na definição de estratégias de testes,
há critérios de testes que envolvem uma seleção de um domínio e elaboração de caso de
testes.
A Qualidade de Software como visto anteriormente passa por várias etapas, entre elas
o Teste de Software, mas esse teste é algo que começou há pouco tempo. Para ter uma
ideia, o primeiro bug surgiu nos primórdios da computação, aproximadamente em 1947.
Inicialmente as falhas eram de Hardware, mas com o passar do tempo o Hardware reduziu
os erros e o Software passou a ser o problema.
Depois, em 1967 foi publicado um trabalho por William Elmendorf da IBM tratando sobre
abordagem para testes funcionais controlados, algo ainda novo na época, seguido em
outubro de 1968 pelo relatório publicado na conferência sobre Engenharia de Software
patrocinada pela OTAN, uma das primeiras a tratar sobre a garantia de Qualidade de
Software.
Depois, em 1969 na conferência para o Comitê de Ciência da OTAN, na Itália, Dijkstra foi
o primeiro a afirmar que o teste deve mostrar a presença e não a ausência de defeitos.
Em 1976, Michael Fagan publicou um trabalho pela IBM que propõe a inspeção de códigos,
visando à redução de retrabalhos. No mesmo ano Thomas McCabe introduziu o conceito
de complexidade ciclomática como uma das métricas de Software em um artigo publicado
pelo IEEE. Enfim, Myers publica um dos primeiros livros sobre Confiabilidade de Software
tratando dos princípios e práticas para criação de Softwares confiáveis. Neste livro, Myers
afirma que o objetivo do testador é fazer o programa falhar.
Já em 1977 Jim McCall, Pall Richards e Gene Walters fizeram um trabalho para a força
aérea americana listando 55 fatores para a Qualidade de Software. No mesmo ano, Tom
alfamacursos.com.br 13
Qualidade de Sofware
Gilbs publica o livro “Métrica de Software”, que foi e é considerado o livro base para
diversas métricas de Software.
Por fim, em 1979 Myers publicou o primeiro livro tratando apenas de Teste de Software,
intitulado “A arte de testar software”. É ainda hoje considerado por muitos o livro base para
Teste de Software. Em 1981, Barry Boehn publica o livro “Software Engeering Economics”,
introduzindo o conceito de que o custo de um defeito cresce exponencialmente no tempo.
Apesar dos testes normalmente estarem relegados ao segundo plano, ou nem serem
executados, é um processo que deve acompanhar o desenvolvimento do início até
a conclusão do produto. Os testes caixa branca como testes unitários, por exemplo,
devem ser feitos durante o processo de desenvolvimento. Os testes de caixa preta como
os de funcionalidade, por exemplo, buscam falhar nos requisitos funcionais no produto
funcionando, e já os testes de desempenho, que estão ligados aos requisitos não funcionais,
buscam verificar se o sistema está atendendo requisitos de recursos, velocidade adequada,
suporte e etc.
O planejamento de teste é parte crucial para o sucesso de um teste bem executado, para
tanto é necessário criar um plano de execução de testes.
alfamacursos.com.br 14
Capítulo 4 - Teste Unitário
4 - TESTE UNITÁRIO
4.1 – INTRODUÇÃO
Sabemos que errar é humano e, mesmo bons programadores cometem erros, a diferença
é: Quando estes erros serão detectados? O bom programador utiliza recursos para detectar
o erro o quanto antes, pois como vimos, erros encontrados no início do desenvolvimento
são mais baratos do que detectados ao final do processo de desenvolvimento. O teste
unitário é parte do processo de desenvolvimento, serve para verificar a compatibilidade e
o funcionamento de uma unidade do sistema.
O teste unitário é um teste de caixa branca, pois precisa ter acesso ao código para ser
feito. Ele normalmente serve para testar as classes ou funções do sistema.
O teste unitário serve para verificar se o programa se comporta como o esperado, realizando
baterias de testes com base no caso de teste já programado. Os testes validam partes, ou
seja, fragmentos do código, o que será chamado aqui de unidade. O teste unitário, então,
testa a unidade do código e o mesmo pode ser feito para criar sistemas com base nos
testes também, ou seja, primeiro criamos os testes para depois criarmos a unidade.
O termo “Teste Unitário” é devido ao fato de os testes serem realizados em apenas uma
parte, ou unidade, podendo ser utilizado para testar uma função, uma classe e etc.
Em métodos ágeis como o Scrum e o XP, por exemplo, os testes unitários fazem parte
da metodologia de desenvolvimento, sendo indicado iniciar o processo pelos testes, ou
como deve ser chamado, desenvolvimento orientado a teste, pois o teste vai servir como
documentação do sistema, evitando excesso de documentos e garantindo a qualidade das
funcionalidades.
Entre as principais vantagens de se utilizar uma metodologia com base em teste unitário
está:
alfamacursos.com.br 15
Qualidade de Sofware
Fica a dica!
Em diversas metodologias, o teste unitário é extremamente importante, entre elas
temos o RUP e para saber mais visite o site abaixo:
• http://www.wthreex.com/rup/process/modguide/md_untst.htm
alfamacursos.com.br 16
Qualidade de Sofware
Recordando
O teste unitário tem como principal objetivo testar partes do código e verificar se há
garantia de qualidade.
alfamacursos.com.br 17
Capítulo 5 - Teste Unitário no PHP
5.1 - INTRODUÇÃO
5.2 - INSTALAÇÃO
Isto é feito apenas uma vez para poder efetuar a instalação do PHPUnit.
Agora, devemos instalar o PHPUnit.
Depois de instalado o sistema de Unit, é possível criar os testes unitários e efetuá-los. Para
começar, será feita uma demonstração de teste unitário e seguiremos para uma explicação
completa dos recursos dos testes unitários.
Os testes unitários como comentados anteriormente, devem testar uma função ou uma
classe como demonstração. Vamos criar uma classe Cálculo, que serve para fazer soma e
alfamacursos.com.br 18
Qualidade de Sofware
Agora vamos criar o teste que utilizará os recursos do PHPUnit para verificar se a classe
que criamos está funcionando de forma adequada.
<?php
// Especifique o caminho do PHPUnit
require_once ‘/usr/share/php/PHPUnit/Framework.php’;
// Especifique o caminho da classe a ser testada
require_once ‘calculo.php’;
/* Como a classe a ser testada se chama “calculo”, a classe de teste deverá se chamar
“CalculoTest” e (neste caso) irá herdar de PHPUnit_Framework_TestCase
*/
class CalculoTest extends PHPUnit_Framework_TestCase
{
// Funções de teste devem ter o prefixo “test”
public function testSoma()
{
// A classe a ser testada é instanciada
$varcalc = new Calculo();
// Testamos a afirmação que “4” é o resultado de passar “2” e “2” (ou seja, 2
+ 2 =4)
$this->assertEquals(‘4’, $varcalc ->somar(2, 2));
}
public function testSubtracao()
{
// idem (veja função acima)
$ varcalc = new Calculo();
$this->assertEquals(‘0’, $varcalc ->subtrair(2, 2));
}
}
?>
Para analisar se os testes estão funcionando, clique com o botão direito sobre o item e
mande o NetBeans testar. Ele vai exibir se está funcionando ou não. Para verificar um erro,
você pode alterar dizendo que 2 – 2 são 3 e ver o resultado.
Time: 0 seconds
alfamacursos.com.br 19
Qualidade de Sofware
OK (2 tests, 2 assertions)
Como funcionou?
Além disso, a prática torna o processo mais rápido. A estrutura básica que foi digitada pode
ser gerada também pelo NetBeans, clicando em Novo --> Teste. Ele gera parte do código
de teste, tornando o processo mais simples e fácil.
Fica a dica!
Os testes unitários são a base para o TDD, XP, entre outros. É necessária a prática
constante para poder utilizar as técnicas de TDD. Visite os sites abaixo para manter-se
atualizado e obter informações:
• http://www.phpunit.de/manual/3.4/en/index.html
• www.fgrweb.com.br/wp
O SimpleTeste é outra ferramenta de teste unitário mais simples, pois não precisa ser
instalado. Para obter informações acesse: simpletest.org/.
alfamacursos.com.br 20
Qualidade de Sofware
Recordando
O PHPUnit é um Framework para teste unitário, seguindo o padrão do xUnits do
mercado, que além de possibilitar a criação de testes unitários ajudam na garantia de
qualidade das classes e funções.
alfamacursos.com.br 21
Capítulo 6 - Teste de Performance
6 - TESTE DE PERFORMANCE
6.1 – INTRODUÇÃO
Nós preferimos, mesmo utilizando o padrão citado por Pfleerger, utilizar uma divisão mais
simples, como teste de ambiente físico, ambiente lógico e do sistema, separando o teste
em três etapas distintas: o pré-teste, o teste e o pós-teste, e assim conseguir atingir o
objetivo dos testes. O principal objetivo de se fazer um teste de desempenho, é verificar
se o sistema realmente vai funcionar no ambiente designado e se vai conseguir manter um
desempenho adequado durante um determinado tempo, reduzindo custos operacionais e
de equipamentos.
Desta forma, podemos dizer que o teste de desempenho fornece os dados para futuras
probabilidades de insatisfação dos usuários com o desempenho do sistema. Fornece ainda
os dados para auxiliar na prevenção de perdas de receita ou credibilidade com o sistema,
pois a empresa pode prever a escalabilidade e os recursos que garantem a estabilidade do
sistema.
Existem diversos tipos de teste de desempenho, os mais comuns são: estresse, volume,
regressão, carga e tempo e ambiente. Abaixo segue a descrição de cada um dos testes.
• Teste de estresse: avalia o Software quando este é levado aos seus limites
por um determinado período, ou seja, quando ele está sob condição crítica,
apresentando uma forma de verificar se o Software terá um desempenho quando
o sistema estiver utilizando o máximo de usuários simultaneamente no mínimo
de recursos computacionais. Assim é possível analisar o pico do uso dos recursos
e analisar se o mesmo suportará a demanda, simulando assim um ambiente de
produção real e verificando as restrições deste ambiente de operação.
alfamacursos.com.br 22
Qualidade de Sofware
Para a criação do caso de teste são necessários os dados de requisitos não funcionais,
caso não tenha tal documentação, será necessário realizar uma entrevista para fazer o
levantamento de informações como:
O teste de Software serve para buscar falhas de concepção, funcionalidade e etc. Os testes
de funcionalidade buscam, por exemplo, falhas nos requisitos funcionais, já os testes de
desempenho tratam dos requisitos não funcionais, ou seja, os requisitos de recursos,
velocidade, suporte e etc.
alfamacursos.com.br 23
Qualidade de Sofware
O JMeter é um Software livre que pode ser utilizado para a realização do processo de teste
de performance. Este pode ser obtido gratuitamente na internet.
Para utilizar o JMeter é necessário ter instalado o Java. A tela do JMeter possui duas áreas,
uma para o planejamento de teste e uma para a área de teste, como pode ser visto na
figura abaixo.
Todo o plano do que será realizado deve ser feito no Plano de Teste e para a maioria dos
casos, a área de trabalho vai apenas conter um servidor próxy que vai capturar o que o
testador deseja testar.
O JMeter tem entre os pontos positivos, um conjunto de relatórios que possibilita a análise
dos testes, como pode ser visto na figura abaixo.
Fica a dica!
Os testes de performance são de extrema importância, e uma ferramenta essencial
para este tipo de teste é o JMeter, ferramenta gratuita que possibilita a criação de
testes de performance. Ela pode ser obtida gratuitamente em: jmeter.apache.org/.
Para ver um passo a passo de como criar e realizar um teste de performance, leia um
artigo que está disponível no site: http://fgrweb.com.br/wp/?p=68.
alfamacursos.com.br 24
Qualidade de Sofware
Recordando
O Teste de performance garante a qualidade, em se tratando de requisitos não
funcionais, tornando possível saber os limites do sistema.
alfamacursos.com.br 25
Capítulo 7 - Teste de Usabilidade
7 - TESTE DE USABILIDADE
7.1 – INTRODUÇÃO
Usabilidade é a capacidade que um sistema possui de ser entendido, aprendido e utilizado sob
condições estabelecidas de operação (ISO/IEC, 9126-1). Também é possível caracterizá-la
como a habilidade de um sistema interativo que, em determinado contexto realiza tarefas
de maneira eficiente, eficaz e agradável (ISO/IEC, 9241). Enquanto o esforço e o tempo
são atributos relacionados com a eficiência da aplicação, a eficácia concentra-se nas tarefas
para atingir os reais objetivos do sistema, e quem define a aceitação de um produto, ou
seja, se este será bem recebido, é o usuário final que de fato utilizará o sistema.
A prática de usabilidade é essencial para qualquer tipo de empresa não importando seu
porte; desde pequenas e médias empresas até grandes multinacionais. É também indiferente
quanto ao setor; seja público, privado ou de capital misto. Porém, o propósito deste tipo
de prática é diferente para cada empresa e nem todas dão a atenção necessária em
decorrência de prazos e orçamentos curtos. Atualmente, a preocupação com a usabilidade
é mais perceptível em empresas de comércio eletrônico que possuem como prioridade
a satisfação dos clientes, como garantias de aumento de vendas. Algumas empresas de
capital misto tendem a empregar a metodologia centrada no usuário para adquirir maior
produtividade de seus colaboradores e reduzir os custos de projetos.
As métricas de usabilidade são grupos de medidas formais que servem para orientar os
gestores de usabilidade sobre a qualidade em uso de um sistema. As métricas são validadas
e avaliadas a partir de estudos de caso que se baseiam no desempenho dos usuários.
Através de métricas descreve-se, por exemplo, o quão rápido um usuário pode executar
uma tarefa, o número de erros cometidos em uma tarefa, o tempo de aprendizagem, e as
avaliações subjetivas dos usuários (Usability First, 2010).
alfamacursos.com.br 26
Qualidade de Sofware
É fácil especificar as métricas de usabilidade, porém é difícil coletá-las. Pois, estas métricas
poderão variar conforme o contexto de uso e muitas vezes tendem à subjetividade. Além de
serem difíceis de coletar, as métricas encarecem os testes de usabilidade, pois a alocação
de tempo e recursos é elevada. Porém é possível diminuir estes aspectos negativos apenas
escolhendo os métodos apropriados de avaliação.
Fica a dica
A usabilidade tornou-se tão importante que existe o Dia Mundial da Usabilidade. Veja
mais em: http://www.diamundialdausabilidade.com.br/2011/.
alfamacursos.com.br 27
Qualidade de Sofware
Recordando
O Teste de Usabilidade garante que o sistema é fácil de operar e possui ergonomia,
tema tão importante que empresas como a Nokia, Apple, Motorola, entre outras,
possuem investimentos e setores para testes de usabilidade.
alfamacursos.com.br 28
Capítulo 8 - Planejamento de Avaliação
8 - PLANEJAMENTO DE AVALIAÇÃO
8.1 – INTRODUÇÃO
As avaliações de usabilidade deverão ser práticas realizadas várias vezes durante todo o
processo de desenvolvimento de Software e antes da entrega do produto final. O resultado
será um sistema de melhor qualidade e de maior compreensão dos usuários para o qual o
sistema é projetado. Entre os elementos básicos de uma avaliação de usabilidade, estão
(RUBIN, 2008):
As avaliações podem utilizar dois métodos e isso vai depender do tempo, custo e recursos que
se planeja utilizar no teste, desta forma é importante estar atento a todas as necessidades.
Normalmente, qualquer teste inicia pelo plano de teste, que aponta os recursos, objetivos
do teste e o que será testado.
Desta forma, é possível preparar o ambiente de teste para podermos iniciar a aplicação dos
testes, sempre lembrando que o objetivo do teste é buscar defeito.
O plano de teste de usabilidade pode seguir os mesmos passos, mas a execução possui
algumas particularidades, dependendo do método a ser utilizado. Entre as tarefas podemos
destacar:
Fica a dica!
A avaliação de usabilidade é tão importante que diversos pesquisadores tratam sobre
o assunto. Veja mais nos links abaixo:
• http://www.labceo.com.br/bibliografia/archive/files/h-13_fb714b0be0.pdf
•http://www.devmedia.com.br/artigo-engenharia-de-software-5-avaliacao-de-
usabilidade/10247
alfamacursos.com.br 29
Qualidade de Sofware
Recordando
O Teste de Usabilidade garante que o sistema é fácil de operar e possui ergonomia,
mas para saber isto é necessário executar uma avaliação.
alfamacursos.com.br 30
Capítulo 9 - Métodos de Inspeção
9 - MÉTODOS DE INSPEÇÃO
9.1 – INTRODUÇÃO
Este método é tido como eficaz, pois os especialistas afirmam que até 75% dos problemas
podem ser resolvidos através da avaliação heurística. Para garantir sua eficácia é necessário
um mínimo de três avaliadores. Esta quantidade varia com a complexidade do sistema.
Baseando-se em pesquisas com centenas de usuários, Jakob Nielsen elaborou dez princípios
de usabilidade que devem ser seguidos por todos os desenvolvedores de interfaces.
1) O “feedback” determina que o usuário deverá estar sempre informado sobre a situação
e as respostas apropriadas do sistema.
2) O sistema deverá falar a linguagem do usuário, ou seja, os diálogos deverão ser utilizados
de forma clara utilizando-se palavras e conceitos conhecidos pelo usuário.
3) As saídas deverão estar claramente demarcadas, pois os usuários geralmente escolhem
funções por engano e eles podem abortá-las no momento oportuno.
4) A consistência é a garantia para que uma mesma ação sempre tenha um resultado
previsível.
5) Prevenir erros contra situações atípicas é melhor contra situações desagradáveis.
6) O sistema deverá minimizar a sobrecarga de memória do usuário, ou seja, ter instruções
visíveis para as funções que diminuam a necessidade de memorização de comandos.
7) Os atalhos são considerados os aceleradores de comandos e podem ser vistos como
práticos por todo tipo de usuário.
8) Os diálogos deverão ser simples e naturais. Evitar informações irrelevantes ou que
raramente serão solicitadas.
9) Boas mensagens de erro significam que o sistema deverá indicar qual foi o problema e
sugerir uma possível solução para este.
10) A ajuda e a documentação deverão estar disponíveis e facilmente acessíveis.
alfamacursos.com.br 31
Qualidade de Sofware
ou fazer treinamento específico para os usuários do sistema, até porque muitos usuários
preferem aprender a utilizar um sistema apenas explorando suas funcionalidades. Então
os avaliadores realizam verificações passo a passo das tarefas e, no fim de cada inspeção
fornecem um relatório com justificativas sobre a avaliação de cada etapa.
A análise da ação é similar ao percurso cognitivo e requer uma inspeção mais controlada da
sequência de ações que um usuário realiza para completar uma tarefa. Esta análise envolve
a decomposição de tarefas em ações individuais, por exemplo, mover o cursor até o menu
ou clicar em um botão. Para cada ação é calculado um tempo necessário para conclusão.
Esta estimativa de tempo torna a análise da ação muito complexa mesmo quando uma
tarefa simples é estudada e a representação das ações só pode ser interpretada por quem
conduziu a análise.
alfamacursos.com.br 32
Capítulo 10 - Métodos de Teste de Usabilidade
10.1 – INTRODUÇÃO
Uma forma de avaliar a usabilidade através de usuários finais é estimular que estes declarem
o que estão pensando enquanto utilizam a interface. Quando há qualquer problema de
interface que atrapalhe uma ação, o usuário expõe suas dificuldades que serão registradas
por um observador. O método de verbalizar os pensamentos dos usuários é denominado de
“thinking aloud” (do inglês para “pensando alto”). A iniciativa de entender como os usuários
interpretam um sistema facilita o mapeamento de partes deste que causam problemas de
usabilidade. Para complementar este tipo de teste, os especialistas podem fazer uso de
técnicas, como o mouse-tracking que mostra em quais regiões da tela o ponteiro do mouse
passou com maior frequência.
Muitos aspectos de usabilidade podem ser melhorados por meio de consultas indiretas aos
usuários. Por exemplo, os questionários são úteis para indicar desde o nível de satisfação dos
usuários até sugestões de melhorias do sistema. As opiniões dos usuários são subjetivas, e
por esta razão, os questionários devem abranger um maior número de usuários. Não basta
coletar opiniões, elas devem convergir para algum problema que deverá ser corrigido.
Um grande desafio é interpretar as verdadeiras necessidades dos usuários através desta
técnica informal. É por esta razão que os usuários deverão ser experientes quanto ao
sistema avaliado.
alfamacursos.com.br 33
Qualidade de Sofware
Obviamente, é possível realizar tanto a inspeção quanto o teste, mas lembre-se que o
teste não pode ser mais caro do que o produto, caso contrário, não teremos o retorno de
investimento adequado ao sistema.
alfamacursos.com.br 34
Capítulo 11 - Métricas de Qualidade
11 - MÉTRICAS DE QUALIDADE
11.1 – INTRODUÇÃO
Portanto, esse estudo considera que não é possível determinar o sucesso de um projeto
sem avaliação e que para avaliar é necessário o uso de métricas, dentro do contexto de que
um projeto de sucesso é aquele que atinge os resultados esperados segundo o planejado.
alfamacursos.com.br 35
Qualidade de Sofware
implementação.
• Utilizadas para comparar a produtividade de diferentes técnicas e tecnologias.
1) O que medir?
As medições devem ser incorporadas aos processos, coletadas durante sua execução,
preferencialmente de forma automatizada. Deve-se evitar a criação de processos exclusivos
de medição e, caso seja necessário criá-los, é fundamental que essa medição agregue alto
valor, afinal exigirá um esforço adicional.
Os responsáveis pelas coletas devem estar treinados para a atividade, que deve ser
monitorada.
alfamacursos.com.br 36
Qualidade de Sofware
• Custo • Funcionalidade
• Esforço • Qualidade
• Linhas de Código • Complexidade
• Velocidade de Execução • Eficiência
• Memória • Confiabilidade
• Nº de Erros • Manutenibilidade
Fica a dica
Este assunto é de extrema importância, sendo pesquisado por Doutores no mundo
todo. Segue abaixo alguns links importantes:
• http://www.riopomba.ifsudestemg.edu.br/dcc/dcc/materiais/1022789570_
Qualidade%20de%20Software.pdf
• http://www.testexpert.com.br/?q=node/669
• http://www.univasf.edu.br/~ricardo.aramos/disciplinas/ESI2009_2/Aula03_04.pdf
alfamacursos.com.br 37
Qualidade de Sofware
Recordando
As métricas de qualidade nos dão a base do que é necessário para termos qualidade.
É com base nas métricas que podemos realizar os testes e dar garantia da qualidade
de um produto.
alfamacursos.com.br 38
Capítulo 12 - TMMI e CMMI
12 - TMMI e CMMI
alfamacursos.com.br 39
Qualidade de Sofware
O TMMI é mantido pela TMMI Foundation que criou todo o processo, sempre seguindo as
bases do CMMI, o resultado é um Framework completo que possui os mesmos níveis do
CMMI, mas totalmente focado em teste.
Os níveis do TMMI são 5 assim como no CMMI, como pode ser visto na figura acima,
seguindo a mesma ideia.
O TMMI deriva alguns recursos do ISTQB Standart Glossary que possui um enfoque maior
em teste possuindo inclusive certificação para Teste de Software.
O objetivo do TMMI é levar ao teste as boas práticas da indústria como a melhoria contínua.
• Nível 1: é o caos que reina, ou seja, não há processos, não há definição real de
como realizar os testes, não há padrões nem como fazer.
• Nível 2: inicia o processo gerencial possuindo políticas e estratégias de teste. O
planejamento dos testes já é realizado, há monitoramento e controle durante as
realizações dos testes e há um ambiente para os testes.
• Nível 3: já temos um processo bem definido, além dos recursos do nível 2 temos
uma organização dos testes, uma integração contínua, um ciclo de vida dos testes
bem definido e testes não funcionais, como testes unitários e de performance.
• Nível 4: temos um processo de medição de qualidade em conjunto com o
processo, utilizando-se de análise e resultados reais dos testes com o objetivo de
garantia de qualidade, aplicando revisão contínua e melhorias.
• Nível 5: que é o mais alto de todos, é o nível otimizado, em que o processo
alfamacursos.com.br 40
Qualidade de Sofware
de teste já foi otimizado e faz parte do dia a dia da empresa, para isso temos
prevenção aos defeitos, utilizando TDD, por exemplo. O processo de teste passa a
ser otimizado e automatizado e há controle de qualidade contínua nos processos
de teste.
Notemos que tanto o CMMI como o TMMI são semelhantes, possuindo pequenas diferenças
entre eles. Estas diferenças estão principalmente no fato de que o foco de cada um é
diferente, enquanto um se foca no processo de desenvolvimento completo, o outro se foca
no processo de teste.
Fica a dica!
Tanto o CMMI como o TMMI são importantes para os processos de qualidade de
Software, para saber mais acesse:
TMMI Framework
http://www.tmmifoundation.org/downloads/tmmi/TMMi%20Framework.pdf
TMMI Foundation
http://www.tmmifoundation.org
CMMI Framework
http://www.sei.cmu.edu/library/abstracts/news-at-sei/featuresept98pdf.cfm
GLOSSÁRIO
alfamacursos.com.br 41
Referências
DAMAS, Luís. SQL: Structured Query Language. 6. Ed. atual. e ampl. Rio de Janeiro: LTC,
2007. x, 384 p.
KERZNER, Harold. Gestão de projetos: as melhores práticas. 2° ed. Porto Alegre: Book-
man, 2006.
PRESSMAN. Roger S. Engenharia de Software. São Paulo. 6º ed. Porto Alegre: MacGraw-
-Hill, 2006.
alfamacursos.com.br 42
Qualidade de Sofware
XAVIER, Carlos Magno da Silva; VIVACQUA, Flavio Ribeiro; MACEDO, Otualp Sarmento de;
XAVIER, Luis Fernando da Silva. Metodologia de Gerenciamento de Projetos – Methodware.
Rio de Janeiro: Editora Brasport, 2009.
alfamacursos.com.br 43
alfamacursos.com.br