Buscar

Fundamentos da Qualidade de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução ao Desenvolvimento de Sistemas
Janynne L. S. Gomes
AULA 3
FUNDAMENTOS DA 
QUALIDADE DE SOFTWARE
2
Introdução ao Desenvolvimento de Software 
Janynne L. S. Gomes 
3
Agenda
• Conceito
• Garantia da qualidade
• Qualificando um erro
● Defeito
● Falha
● Erro
• Teste de software
● Objetivos
● Estratégias de teste
● Técnicas de teste
3
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
4
Conceito
“Qualidade é um conceito subjetivo que está relacionado diretamente às 
percepções de cada indivíduo. Diversos fatores como cultura, modelos 
mentais, tipo de produto ou serviço prestado, necessidades e expectativas 
influenciam diretamente nesta definição”.
Fonte: http://pt.wikipedia.org/wiki/Qualidade
De acordo com o glossário padrão de terminologia em Engenharia de 
Software do IEEE 610.12 (1990), qualidade pode ser definida como o 
grau no qual um sistema, componente, ou processo atende aos 
requisitos especificados e às necessidades ou expectativas do 
cliente ou usuário. 
4
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
5
Conceito
A norma ISO/IEC 9126 (1991) define qualidade como a totalidade de 
funcionalidades e características de um produto ou serviço que 
atendem à sua capacidade de satisfazer necessidades específicas ou 
implícitas.
No contexto de desenvolvimento de software, qualidade pode ser 
entendida como um conjunto de características a serem satisfeitas 
em um determinado grau, de modo que o produto de software 
atenda às necessidades explícitas e implícitas de seus usuários e, 
de acordo com Pressman (2006), é a conformidade com requerimentos 
e com características implícitas que são esperadas de software 
profissionalmente desenvolvido.
5
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
6
Conceito
Todos nós somos influenciados por produtos de software tanto 
profissionalmente como em nossa vida pessoal, seja de forma 
consciente ou não. 
Os produtos de software possuem um papel muito influente em nossa 
vida, facilitando a realização de diversas atividades e provendo 
inúmeros serviços. 
Para quem trabalha no desenvolvimento destes sistemas, incluindo 
assim todos os profissionais da área de Engenharia de Software, o 
maior desafio é criar um produto de software com elevada 
produtividade, dentro do prazo estabelecido, sem necessitar de 
mais recursos do que aqueles alocados, assegurando com isso um 
software de qualidade.
6
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
7
Conceito
Segundo Pressman (2006), a garantia da qualidade de software está 
diretamente relacionada às características de qualidade do 
processo de desenvolvimento e de seus produtos intermediários, 
bem como aos esforços de melhoria de processos das 
organizações. Além disso, as atividades de garantia da qualidade 
devem estar presentes ao longo de todo o ciclo de vida de 
desenvolvimento do software, a fim de assegurar que o projeto, o 
desenvolvimento e a disponibilização de uma aplicação aconteçam de 
maneira bem sucedida.
7
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
8
Conceito
A qualidade não pode ser considerada sinônimo de perfeição, pois 
se trata de algo factível, relativo, substancialmente dinâmico e 
evolutivo, adequando-se ao nível dos objetivos a serem atingidos.
Portanto, o mais importante é atingir o nível de qualidade desejado 
pelos usuários e necessário para o bom funcionamento dos 
produtos desenvolvidos, utilizando o mínimo de recursos possíveis 
para não impactar nos projetos.
8
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
9
Garantia de qualidade
Podemos definir Garantia da Qualidade (Quality Assurance) como o 
conjunto de atividades de apoio para fornecer confiança de que os 
processos estão estabelecidos e são continuamente melhorados 
para produzir produtos que atendam as especificações e que sejam 
adequados para o uso pretendido.
9
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
10
Avaliação de Produtos de Software
A avaliação de produtos de software é definida como uma operação 
técnica que consiste em elaborar um julgamento de uma ou mais 
características de um produto de software de acordo com um 
procedimento definido.
De acordo com Weber (2001) o processo de avaliação deve possuir 4 
características principais: 
• Repetível
• Reprodutível
• Imparcial 
• Objetivo.
10
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
11
Avaliação de Produtos de Software
A ISO - International Organization for Standardization (Organização 
Internacional de Normalização) é formada por representantes de 91 
países, cada um representado por um organismo de normas, testes e 
certificação. 
Por exemplo, o ANSI - American National Standards Institute é o 
representante ISO dos Estados Unidos e no Brasil a ISO é representada 
pela ABNT - Associação Brasileira de Normas Técnicas. 
A ABNT é uma organização de normas que apoia o desenvolvimento 
de normas consensuais e providencia estrutura e mecanismos a fim de 
que grupos industriais ou de produtos se juntem para estabelecer um 
consenso e desenvolver diretivas de qualidade.
11
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
12
Avaliação de Produtos de Software
Características avaliadas:
• Funcionalidade: A capacidade de um software prover 
funcionalidades que satisfaçam o usuário em suas necessidades 
declaradas e implícitas, dentro de um determinado contexto de uso.
• Confiabilidade: O produto se mantém no nível de desempenho nas 
condições estabelecidas.
• Usabilidade: A capacidade do produto de software ser 
compreendido, seu funcionamento aprendido, ser operado e ser 
atraente ao usuário.
• Eficiência: O tempo de execução e os recursos envolvidos são 
compatíveis com o nível de desempenho do software.
12
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
13
Avaliação de Produtos de Software
Características avaliadas:
• Manutenibilidade: A capacidade (ou facilidade) do produto de 
software ser modificado, incluindo tanto as melhorias ou extensões 
de funcionalidade quanto as correções de defeitos, falhas ou erros.
• Portabilidade: A capacidade do sistema ser transferido de um 
ambiente para outro. Como “ambiente”, devemos considerar todo os 
fatores de adaptação, tais como diferentes condições de 
infraestrutura (sistemas operacionais, versões de bancos de dados, 
etc.), diferentes tipos e recursos de hardware (tal como aproveitar um 
número maior de processadores ou memória). Além destes, fatores 
como idioma ou a facilidade para se criar ambientes de testes devem 
ser considerados como características de portabilidade.
13
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
14
Qualificando um erro
• Defeito: Ocorre quando há uma instrução ou comando incorreto. Um 
veículo, por exemplo, apresenta defeito quando não obedece ao 
comando do motorista.
• Falha: É um comportamento inconsistente. Em um veículo, por 
exemplo, quando ocorre uma falha, ele continua funcionando de 
forma precária, mas não para.
• Erro: É um desvio da especificação. Em um veículo, por exemplo, é 
quando ocorre uma montagem indevida de algum componente.
14
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
15
Qualificando um erro
15
Introdução ao Desenvolvimento de Software
Janynne L. S. Gomes
16
Testes de Software
Teste é um conjunto de atividades que podem ser planejadas 
antecipadamente e conduzidas sistematicamente. Um gabarito de testes 
de software, que é um conjunto de passos no qual podem-se incluir 
técnicas de projetos de casos de teste e métodos de teste específicos, deveser definido para o processo de software sendo utilizado no projeto. 
Fonte: [PRESSMAN, 2010]
Objetivos:
1) Demonstrar ao desenvolvedor e ao cliente que o software atende 
aos requisitos
2) Descobrir falhas ou defeitos no software que apresenta 
comportamento incorreto, não desejável ou em não conformidade 
com sua especificação
17
Testes de Software
Modelo de um processo de teste
18
Testes de Software
As políticas de teste podem ser baseadas na experiência de uso 
do sistema e podem enfocar o teste das caraterísticas do sistema 
que esteja operacional:
Exemplo:
●Todas as funções do sistema acessada por meio de menus 
devem ser testadas
●Combinações de funções acessadas por meio dos mesmos 
menus devem ser testadas
●Todas as funções devem ser testadas com entrada corretas e 
incorretas no local de entrada do usuário
19
Testes de Software
Quem faz? 
O gerente do projeto, os engenheiros de software e especialistas 
em testes devem desenvolver uma estratégia de testes, de forma 
a que o projeto tenha um plano formal de testes.
Porque é importante? 
O teste é a atividade que requer maior esforço de projeto dentro 
do ciclo de desenvolvimento de software. Se for conduzido ao 
acaso pode implicar em desperdício de tempo e esforço, além de 
abrir espaço para a infiltração de erros. Assim, é muito 
importante que se estabeleça uma estratégia sistemática para o 
teste de software.
20
Testes de Software
Quais são os passos? 
O teste começa nos componentes do software e vai aumentando 
seu campo de ação de forma a abarcar todo o projeto. Depois 
que os componentes são testados eles precisam ser integrados 
até que todo o sistema seja construído. A partir deste ponto uma 
série de testes de alto nível é executada para descobrir erros 
relativos aos requisitos do cliente. À medida que erros forem 
encontrados, é necessário se fazer um diagnóstico e buscar sua 
correção, através do processo de depuração do sistema.
21
Estratégias de teste
22
Estratégias de teste
Teste de unidade: é também conhecido como teste unitário. 
Avalia a menor unidade do código. Seu objetivo é verificar 
falhas de funcionamento em partes pequenas independentes 
do software. Possibilita uma análise mais profunda e específica 
de uma função independente do resto do código, facilitando a 
descoberta de erros nos limites dos módulos. Este teste tem 
como base estratégica o teste de caixa branca. Neste teste, os 
casos são projetados para descobrir erros devido a computações 
errôneas, comparações incorretas ou fluxo de controle impróprio.
Exemplos:
• Testar a ação de salvar os dados de um cliente
• Testar a ação de excluir um cliente da base de dados
23
Estratégias de teste
Teste de integração: avalia diferentes componentes que são 
desenvolvidos separadamente mas trabalham em conjunto. Ao 
avaliar estes componentes de forma isolada, consegue-se 
encontrar possíveis falhas no resultado apresentado em 
consequência do mal funcionamento ou erro de algum dos 
componentes.
Exemplos:
• Testar uma tela inteira de cadastro de clientes
• Testar um módulo inteiro (Módulo Financeiro, Módulo RH, 
Módulo Acadêmico)
24
Estratégias de teste
Teste de validação: avalia o software em um ambiente 
específico, considerando os requisitos definidos pelo cliente em 
uma situação próxima à realidade. Tem como objetivo provar ao 
cliente que o software atende as solicitações desejadas.
Exemplos:
• Testar o software em um determinado sistema operacional.
• Testar a comunicação do sistema com uma base de dados 
remota, em um horário de alto tráfego de dados na rede.
• Testar vários acessos simultâneos para ver o comportamento 
do banco de dados.
25
Estratégias de teste
Teste de sistema: este teste tenta impor a visão do cliente, 
dando normalmente uma perspectiva diferente ao testador. 
Normalmente executa-se em um ambiente que se assemelha ao 
ideal. Seu objetivo é por o sistema desenvolvido completamente 
à prova, com todos os elementos adequadamente integrados e 
realizando suas funções corretamente.
Tipos de teste:
1) Teste de Recuperação
2) Teste de Segurança
3) Teste de Estresse
4) Teste de Desempenho
26
Estratégias de teste
Teste de Recuperação: este procedimento avalia a recuperação 
de uma falha dentro de um tempo especificado em caso de 
falha. Neste teste, podem ocorrem várias falhas forçadas para 
verificar a recuperação.
Exemplos:
• Testa o comportamento do sistema com o banco de dados 
indisponível
• Testa o fechamento do programa sem o usuário clicar em 
salvar os dados
• Testa o comportamento do programa caso a energia tenha 
sido interrompida bruscamente
27
Estratégias de teste
Teste de Segurança: neste caso o testador tenta penetrar no 
sistema provocando ações que prejudiquem alguém. Ele usa 
formas ilegais ou impróprias simulando condições extremas de 
violação das informações.
Exemplos:
• Tenta forçar usuário e senha
• Tenta salvar informações de forma errada
28
Estratégias de teste
Teste de Estresse: este procedimento cria ambientes extremos 
para utilização do software. Volumes anormais e frequência 
irregular têm como objetivo forçar falhas por sobrecarga, 
verificando as possíveis interrupções e consequências de paradas 
anormais por estresse. Os dados, então, são avaliados para ver se 
não forram corrompidos ou perdidos.
Exemplos:
• Simular 1000 acessos á uma mesma funcionalidade
• Clicar várias vezes no botão de salvar os dados do cliente
29
Estratégias de teste
Teste de Desempenho: todo sistema desenvolvido tem em sua 
especificação de requisitos o desempenho adequado de 
funcionamento e após a integração dos componentes uma 
avaliação é indispensável para se obter o seu desempenho real.
Exemplo:
• Depois que adicionou uma tela nova, o sistema ficou lento ou 
as tela anteriores ficaram lentas?
30
Técnicas de teste
31
Teste de caixa branca
O teste Caixa Branca possui critérios baseados em Fluxo de Fluxo de 
Controle e em Fluxo de DadosControle e em Fluxo de Dados, portanto avalia a parte 
estrutural do software. Aplicamos esta prática diretamente no 
código do programa, fazendo teste lógico e comportamental. 
Analisam-se o fluxo de dados e os códigos, usados ou não.
32
Teste de caixa preta
O nome Caixa Preta (Black Box) vem do sentido de que nesse 
tipo de teste não é necessário saber a estrutura interna, bem 
como o código ou a tecnologia que foi utilizada. Nesse tipo de 
análise essas questões são transparentes para os analistas de 
teste. Para que se crie um projeto de teste bem sucedido é 
necessário usar a técnica de caixa preta junto com o de caixa 
branca, isto é, deve-se analisar, também, a estrutura interna da 
aplicação.
33
Referência
 LEITE, Jair C. Ciclo de vida de Software. 2007. 
• Disponível em: http://engenhariadesoftware.blogspot.com/2007/02/ciclo-
de-vida-do-software-parte-1.html 
• PINTAUD, Marcelo e OLIVEIRA, Elisamara. Engenharia de Software e 
Engenharia de Requisitos. 2014.
• SOMMERVILE. Engenharia de Software. 8ªEdição.
33
Introdução ao Desenvolvimento de Software 
Janynne L. S. Gomes 
34
Extras
Algumas empresas que trabalham com desenvolvimento de software 
no Brasil:
• http://www.totvs.com
• http://www.thoughtworks.com
• http://www.hbsis.com.br
• http://www.ciandt.com/br-pt
• http://www.bhsistemas.com.br
• http://www.lambda3.com.br 
35
Praticando
Responda às questões abaixo:
1) Qual o principal objetivo da garantia da qualidade?
2) Qual destas não é uma característica para a qualidade de software?
a) está fortemente relacionada à conformidade com os requisitos
b)caracteriza o grau de satisfação do cliente
c)é responsabilidade de apenas uma área da empresa: a área de 
qualidaded)deve estar presente desde o planejamento do software.
Introdução ao Desenvolvimento de Software 
Janynne L. S. Gomes 
36
Disciplina: Introdução ao Desenvolvimento de Sistemas
Professora: Janynne L. S. Gomes
Contato: janynne.gomes@outlook.com
www.eteit.univale.br
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36

Outros materiais