SlideShare uma empresa Scribd logo
Histórico, Conceitos e Estudos de Caso
Professora Fernanda Rodrigues Macedo
Aula 1: Introdução à
Qualidade de Software
Histórico da Qualidade de
Software
 Na antiguidade, o construtor que construísse
uma casa que desmoronasse era condenado à
morte;
 Ao final da II Guerra mundial, os japoneses
com dívidas para pagar, começaram a investir
em suas indústrias;
 Eles se viram diante do desafio de vender seus
produtos com preços menores com qualidade
igual ou superior;
Histórico da Qualidade de
Software
 Os projetistas japoneses foram obrigados a
criar um meio de produzir produtos dentro de
um custo estipulado
 Custo = preço final - margem;
 Logo, deveriam eliminar os itens que não
agregassem valor ao produto:
 Tempo ocioso, troca de ferramentas, sujeiras,
estoques em trânsito, defeitos etc;
Histórico da Qualidade de
Software
 Os japoneses desenvolveram um método de
controle de qualidade que ao invés de eliminar
peças defeituosas buscava evitar que defeitos
ocorressem.
Histórico da Qualidade de
Software
 A qualidade no software começou a ser
formalmente abordada na década de 1970.
 Surgimento de metodologias de garantia de
qualidade para evitar falhas em sistemas
críticos.
 Evolução com a popularização do
desenvolvimento ágil e métodos de controle
de qualidade contínuos.
Conceito de Qualidade de
Software
 Qualidade de software se refere à conformidade
do software com requisitos funcionais e não
funcionais.
 Fatores como confiabilidade, eficiência e
usabilidade determinam a qualidade do software.
 A qualidade é crítica para a satisfação do cliente e
o sucesso de projetos de software.
Exemplo
 Qual automóvel tem mais qualidade?
Depende, pois qualidade é um conceito
relativo.
Garantia da Qualidade de
Software
 Garantia da Qualidade de Software (SQA) é o processo
de assegurar que o software atende aos padrões de
qualidade.
 Inclui práticas como auditoria, revisão de código, e
testes.
 A SQA é integrada em todo o ciclo de desenvolvimento
de software.
Objetivos da Garantia de
Qualidade
 Prevenir erros e falhas no produto final.
 Melhorar a satisfação do cliente e a confiança no
produto.
 Garantir que o software entregue seja eficiente, seguro
e escalável.
Crise do software
 Somos capazes de produzir software de qualidade?
 Existem aspectos não repetitivos do desenvolvimento de
software, que tornam essa atividade difícil e também
imprevisível
 As dificuldades começam nas etapas iniciais:
 Na definição do escopo existem requisitos que são voláteis
 Ainda existe o Fator Humano:
 Devemos conciliar disciplina com o caráter aleatório da
criação
 Engenharia de Software:
 Aplica princípios e métodos da engenharia para ajudar a
obter a qualidade de software
Estudo de Caso 1: Projeto de
Software Financeiro
 Projeto: Desenvolvimento de um sistema de
gerenciamento financeiro.
 Desafio: Necessidade de alta confiabilidade para evitar
erros financeiros.
 Solução: Implementação de práticas de SQA desde a
fase inicial, incluindo testes automatizados.
 Resultado: Redução de 90% nos erros críticos detectados
em produção.
Estudo de Caso 2: Aplicação
Web Escalável
 Projeto: Desenvolvimento de uma aplicação web com
milhões de usuários.
 Desafio: Manter a qualidade do software em um
ambiente altamente escalável.
 Solução: Implementação de métricas de qualidade e
testes de desempenho.
 Resultado: Aplicação com alta performance e menos de
1% de downtime ao longo do ano.
Garantia de Qualidade no
Ciclo de Vida do Software
 A SQA está presente em todas as fases do
desenvolvimento: planejamento, desenvolvimento,
testes e manutenção.
 Ferramentas e métodos são adaptados para cada fase.
Técnicas de Garantia de
Qualidade
 Revisão de código por pares
 Testes unitários, de integração e de sistema
 Auditoria de qualidade e métricas de desempenho
Normas de Qualidade de
Software
 As normas, como ISO 9001 e CMMI, definem boas
práticas de garantia de qualidade.
 Essas normas garantem processos consistentes e
repetíveis.
Métricas de Qualidade de
Software
 O que são métricas de qualidade?
 Principais métricas: tempo de resposta, número de
falhas, disponibilidade
 Exemplo de métricas aplicadas: Projetos reais de
sistemas críticos e sua avaliação
Normas de Qualidade de
Software
 Importância das normas de qualidade no
desenvolvimento de software.
 Principais normas: ISO/IEC 25010, CMMI, e ISO 9001
 Implementação de normas na indústria e estudo de
casos práticos.
Técnicas de Garantia da
Qualidade
 Inspeções e revisões de código para prevenir erros
 Testes automatizados, de integração, de regressão
 Auditorias de qualidade e sua aplicação em ambientes
ágeis
Causas de falhas
 Alterações:
 As mudanças alteram a estrutura do software tornando-o cada
vez mais difícil de alterar e podem introduzir novas falhas
 Tempo:
 Com o tempo o custo de implementação de alterações aumenta e
a capacidade do sistema de prestar os serviços esperados diminui
 Complexidade:
 O desenvolvimento é complexo e, normalmente, um único
desenvolvedor não é capaz de entender o sistema como um todo
 Os softwares estão cada vez mais difíceis de utilizar (janelas,
eventos, leis, necessidades conflitantes, etc.)
 Os softwares estão cada vez mais difíceis de entender devido a
códigos mal documentados ou incompreensíveis
Estudo de Caso 3:
Desenvolvimento Ágil e
Qualidade
 Aplicação de práticas ágeis em um projeto de software.
 Desafio: Garantir a qualidade com ciclos de
desenvolvimento curtos
 Solução: Testes contínuos e integração de SQA nas
sprints
 Resultado: Aumento da entrega de valor e qualidade
percebida pelo cliente.
Avaliação de Qualidade de
Produto de Software
 Como medir a qualidade de um software em uso.
 Ferramentas para avaliação: relatórios de performance,
análise de falhas
 Técnicas de coleta de feedback dos usuários para
melhoria contínua.
Estudo de Caso 4: Avaliação de
Qualidade em Sistemas de Saúde
 Projeto: Sistema de gestão hospitalar com alto volume
de dados.
 Desafio: Avaliar a qualidade de resposta e segurança dos
dados.
 Solução: Aplicação de métricas de performance e testes
de carga intensivos.
 Resultado: Melhorias no tempo de resposta e segurança
de dados médicos.
Testes de Aceitação de
Software
 O que são testes de aceitação?
 Importância de testes focados no comportamento do
usuário.
 Exemplos práticos de testes de aceitação.
Garantia de Qualidade e
Gestão de Risco
 Identificação de riscos no processo de desenvolvimento.
 Ferramentas de mitigação de risco relacionadas à
qualidade de software.
 Casos práticos de gerenciamento de risco em grandes
projetos de software.
Qualidade em Software Open
Source
 Desafios de qualidade em projetos de software de
código aberto.
 Ferramentas e técnicas de garantia de qualidade em
projetos colaborativos.
 Exemplo: Garantia de qualidade no desenvolvimento do
Linux.
Estudo de Caso 7: SQA em
Aplicações de E-commerce
 Projeto: Desenvolvimento de uma plataforma de
comércio eletrônico.
 Desafio: Escalabilidade, segurança e experiência do
usuário.
 Solução: Implementação de testes contínuos de
segurança e carga.
 Resultado: Aumento na confiabilidade e melhora da
experiência de compra online.
Ferramentas de Análise
Estática
 O que é análise estática de código?
 Ferramentas populares: SonarQube, PMD, Checkstyle.
 Como integrar análise estática no ciclo de
desenvolvimento para garantir qualidade.
Estudo de Caso 8: Garantia de
Qualidade em Sistemas ERP
 Projeto: Implementação de um sistema ERP para uma
grande organização.
 Desafio: Garantir a integridade e segurança dos dados
em larga escala.
 Solução: Aplicação de auditorias de qualidade e
automação de testes.
 Resultado: Sistema seguro, escalável e com alta taxa de
disponibilidade.
Controle de Qualidade e
Feedback de Usuários
 Importância do feedback dos usuários na garantia da
qualidade.
 Ferramentas para coleta de feedback: Hotjar,
SurveyMonkey, etc.
 Integração do feedback contínuo no ciclo de
desenvolvimento.
O que fazer diante de um
defeito, falha ou bug?
 Isolar um defeito:
 Determinar sob quais condições a falha ocorre
 Descobrir qual linha de código provoca a falha:
 Pode ser bastante difícil (depuração do código)
 Identificar a causa do defeito
 Corrigir o defeito:
 Corrigir o defeito e testar fora de produção
 Aplicar a mudança no ambiente de produção
 Estabilizar um programa:
 Fazer correções para diminuição da frequência de falhas
 Mais tempo de uso significa mais possibilidade de
encontrar e corrigir problemas
Qualidade x Tipo de Software
 Cada tipo de software tem seu próprio requisito de
qualidade
 A importância de cada característica depende do tipo
de software
 Exemplos:
Pilares da Qualidade
 Planejamento da Qualidade
 Garantia da Qualidade
 Controle de Qualidade
Pilares da Qualidade
Planejamento da Qualidade
 Estabelece metas de qualidade;
 Identifica os clientes e suas necessidades;
 Utilizar processos visando a criação de produtos que
 atendam as necessidades dos clientes.
Pilares da Qualidade
Garantia da Qualidade (Processos)
➢ Inclui os processos requeridos para garantir que o
produto irá satisfazer as necessidades para as quais ele
foi empreendido;
▪ Ajuda a estabelecer processos;
▪ Determina programas de medida para avaliar processos;
▪ Identifica fraquezas em um processo e os aperfeiçoa;
▪ Avalia se o controle de qualidade está funcionando.
Pilares da Qualidade
Controle da Qualidade (Produto)
 É o processo de monitoramento e registro de resultados
da execução das atividades de qualidade para avaliar o
desempenho e recomendar as mudanças necessárias.
▪ Está relacionado a um produto ou serviço específico;
▪ Verifica se um produto ou serviço específico tem um atributo
específico;
▪ Identifica defeitos com o propósito principal de corrigi-los;
▪ É responsabilidade da equipe/ do funcionário.
Pilares da Qualidade
Qualidade e bugs são conceitos
incompatíveis?
Programa pode ter erros e
continuar sendo um produto de
qualidade:
• O dilema gerencial:
Erro num programa de edição de
textos que afeta apenas 1% dos
usuários, se corrigido poderia gerar
mais bugs
• A importância relativa I:
Objetos atravessando paredes em
jogos é um problema?
• A importância relativa II:
Processador TeX é de qualidade
comprovada, no entanto não
indicado para todas as utilizações
• 1º Bug da Computação:
1947 no Mark II:
Uma abelha provocou falhas no
Mark II durante testes
Mito e Verdades
 Mito:
Criar programas é uma arte que não pode seguir regras, normas
ou padrões
 Verdades:
 Produtos de software são complexos
 Software não tem produção em série, a maior parte do custo está no
projeto e desenvolvimento
 Software não se desgasta (ele pode diminuir o desempenho e a
aderência)
 Software é intangível. Logo, sua representação em grafos e
diagramas não é 100% precisa
 A Engenharia de Software ainda não está madura, é uma ciência em
evolução
 Não há um único ponte de vista entre os profissionais sobre o que é
qualidade de software
Conceitos base
 Defeito:
o Imperfeição do produto
o Segundo o dicionário: é um programa que não funciona como deve
o Exemplos:
• A = B / C; Se C = 0 então teremos uma divisão por zero
• A = B * C; Se B e C estão no limite, A pode não caber o resultado
o Estes defeitos podem não causar falhas, mas são graves
 Falha ou Bug:
o Resultado errado provocado por um defeito ou condição inesperada
o Defeitos podem existir sem, no entanto, provocarem falhas
o Falhas podem ocorrer por fatores externos:
• Toda falha potencial é perigosa, mesmo as que não travem o programa
Qualidade_Software_Aula_1_Final_Corrected.pdf
Técnicas aplicadas durante o
projeto
Conclusão: Evolução da
Qualidade de Software
 A qualidade de software evoluiu com o avanço das
metodologias ágeis e DevOps.
 SQA é essencial para garantir a competitividade no
mercado de software.
 Novas tendências em qualidade: IA para testes e
automação inteligente.
EXEMPLO
 Software: WhatsApp
 Tipo: Aplicativo de mensagens instantâneas,
disponível para dispositivos móveis e desktop. Ele
permite enviar mensagens de texto, imagens,
vídeos, áudios, fazer chamadas de vídeo e voz,
além de compartilhar documentos e localização.
Análise de Qualidade
 Funcionalidade:
 O aWhatsApp cumpre as funcionalidades prometidas, permitindo
comunicação rápida e eficiente entre os usuários.
 Limitações: A função de busca de mensagens antigas nem sempre
funciona bem, especialmente em conversas muito longas.
 Eficiência:
 O desempenho geral é bom, mas, em áreas com internet instável,
o envio de mensagens pode demorar ou falhar.
 Problema: O carregamento de arquivos multimídia (vídeos,
áudios, etc.) pode ser lento, principalmente em redes mais lentas
ou sobrecarregadas.
Análise de Qualidade
 Usabilidade:
 O WhatsApp é fácil de usar. A interface é intuitiva, e as funcionalidades
são acessíveis.
 Problema: A organização das configurações é confusa para alguns
usuários, especialmente quando buscam opções avançadas como
gerenciamento de backups ou privacidade.
 Confiabilidade:
 O WhatsApp é confiável na maior parte do tempo, mas já foram
relatados casos de travamentos, especialmente em versões antigas ou
dispositivos com pouca memória.
 Problema: Em alguns casos, o WhatsApp Web desconecta com
frequência, exigindo reconexão constante.
Análise de Qualidade
 Segurança:
 O WhatsApp implementa criptografia de ponta a ponta para proteger as
mensagens. No entanto, ele já foi alvo de críticas por questões de
privacidade e coleta de dados.
 Problema: A autenticação de dois fatores é opcional, o que deixa alguns
usuários vulneráveis a ataques de clonagem de conta.
Relatório de Falhas e Problemas
 Problema: Busca ineficaz em conversas longas.
 Classificação: Funcionalidade.
 Impacto: A dificuldade em localizar mensagens afeta a usabilidade e a experiência do
usuário, especialmente para quem tem muitas conversas.
 Problema: Carregamento lento de mídias.
 Classificação: Eficiência.
 Impacto: Afeta a velocidade de uso, principalmente quando a rede não é ideal, gerando
frustração.
 Problema: Desconexões frequentes no WhatsApp Web.
 Classificação: Confiabilidade.
 Impacto: A confiabilidade é prejudicada, causando interrupções no fluxo de trabalho,
especialmente para quem depende da versão web no ambiente profissional.
Proposta de Melhoria
 Melhoria para busca ineficaz em conversas longas:
 Proposta: Melhorar o algoritmo de indexação de mensagens para
otimizar a pesquisa em conversas longas.
 Técnica de Garantia de Qualidade: Realizar testes de desempenho
em bases de dados grandes e aplicar algoritmos de busca mais
eficientes.
 Melhoria para o carregamento lento de mídias:
 Proposta: Implementar uma prévia do carregamento e compressão
mais eficiente de arquivos para melhorar o tempo de envio e
visualização.
 Técnica de Garantia de Qualidade: Executar testes de carga e de
desempenho em diferentes cenários de rede para otimizar o tempo
de resposta.
Proposta de Melhoria
 Melhoria para desconexões no WhatsApp Web:
 Proposta: Aumentar a estabilidade das sessões
web com reconexão automática ou aumento no
tempo de expiração da sessão.
 Técnica de Garantia de Qualidade: Testes de
estresse e simulações em redes com diferentes
níveis de estabilidade.
Validação com Normas
 ISO 9001: As melhorias propostas podem ser
validadas com a ISO 9001, que foca na otimização de
processos e satisfação do cliente, garantindo que as
funcionalidades atendam aos requisitos de
qualidade.
 CMMI: As propostas se alinham ao CMMI (Capability
Maturity Model Integration), especialmente em
otimização de desempenho e confiabilidade do
software.

Mais conteúdo relacionado

PDF
Aula 6 - Qualidade de Software
PPT
Qualidade do Software
PPT
X-Zone - Garantia da Qualidade de Software
PDF
Qualidade de software em sistemas computacionais
PPTX
QUALIDADE DE SOFTWARE - AULA 3 - Parte 1 - Conceitos de Qualidade de Software...
PDF
Introdução a qualidade_versão 012025.pdf
PPTX
Qualidade de software3
PDF
2009 fumec souza_e_monteiro
Aula 6 - Qualidade de Software
Qualidade do Software
X-Zone - Garantia da Qualidade de Software
Qualidade de software em sistemas computacionais
QUALIDADE DE SOFTWARE - AULA 3 - Parte 1 - Conceitos de Qualidade de Software...
Introdução a qualidade_versão 012025.pdf
Qualidade de software3
2009 fumec souza_e_monteiro

Semelhante a Qualidade_Software_Aula_1_Final_Corrected.pdf (20)

PDF
Qualidade de software
PDF
Qualidade de Software
PDF
ESw 10 - Qualidade de Software.pdf
PPT
Aula 8 TEES UFS Garantia de Qualidadedo Software
PPTX
Gerenciamento da Qualidade de Software 1.pptx
PPT
A qualidade de sw total e seus conceitos, e tudo o mais
PPT
1 Qss
PPTX
Qualidade de Software, Conceitos Modelos e Situação Atual
PPTX
3. apresentacao rp tec com 2018 gustavo bernardes
PPTX
Qualidade de software, muito além dos testes - RP Tec Com - 2018
PPT
Conceitos e fundamentos sobre testes de software e garantia da qualidade
PDF
Aula 01-Conceitos de Qualidade
PPTX
Qualidade de software2
PDF
Aula07_TesteSoftware_Parte1_semResposta.pdf
PDF
Qualidade de Software
PDF
Aula09_TesteSoftware_Parte1_apremdeeghku
PDF
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
PDF
Oscarlino Galdino da Silva
PDF
Qualidade de software
PDF
Monografia Qualidade de Software
Qualidade de software
Qualidade de Software
ESw 10 - Qualidade de Software.pdf
Aula 8 TEES UFS Garantia de Qualidadedo Software
Gerenciamento da Qualidade de Software 1.pptx
A qualidade de sw total e seus conceitos, e tudo o mais
1 Qss
Qualidade de Software, Conceitos Modelos e Situação Atual
3. apresentacao rp tec com 2018 gustavo bernardes
Qualidade de software, muito além dos testes - RP Tec Com - 2018
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Aula 01-Conceitos de Qualidade
Qualidade de software2
Aula07_TesteSoftware_Parte1_semResposta.pdf
Qualidade de Software
Aula09_TesteSoftware_Parte1_apremdeeghku
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Oscarlino Galdino da Silva
Qualidade de software
Monografia Qualidade de Software
Anúncio

Mais de FernandaRodriguesMac4 (20)

PPTX
Aula 1 – Tópiddddddddddddcos Especiais.pptx
PPTX
Aula 1 – Introdução à Didddddddddsciplina e ao Android.pptx
PPTX
Aula 1 – Introdução à Disciplina e ao Android.pptx
PPTX
Aula 1 – Tópicos Especiaisssssssssss.pptx
PDF
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.pdf
PDF
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.pdf
PDF
04 - Redesssssssssssssssssssssssssssssssssssssss.pdf
PDF
ssssssssssssssssssssssssssssssssssssssssssssssss.pdf
PDF
04 - ddddddddddddddddddddddddddddddddddddddddddd.pdf
PDF
reeedessssssssssssssssssssssssssssssssssssssssss.pdf
PDF
03 - IHM Capítulo 0Avaliação Avaliação Avaliação Avaliação Avaliação Avaliaçã...
PDF
Avaliação de IAvaliação Avaliação Avaliação HM.pdf
PDF
02 - GCSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.pdf
PDF
02 - Redesssssssssssssssssssssssssssssss.pdf
PDF
03 - GERÊNCIA DE PROJETOS DE SOFTWARE.pdf
PDF
01 - GERÊNCIA DE PROJETOS DE SOFTWARE.pdf
PPTX
Programação do lado do Cliente - Front End.pptx
PPTX
ICICICICICICICICICICICICICICICICICIC.pptx
PDF
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK.pdf
PDF
04 - IHMihmihmihmihmihmihmihmihmihmihm.pdf
Aula 1 – Tópiddddddddddddcos Especiais.pptx
Aula 1 – Introdução à Didddddddddsciplina e ao Android.pptx
Aula 1 – Introdução à Disciplina e ao Android.pptx
Aula 1 – Tópicos Especiaisssssssssss.pptx
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.pdf
ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.pdf
04 - Redesssssssssssssssssssssssssssssssssssssss.pdf
ssssssssssssssssssssssssssssssssssssssssssssssss.pdf
04 - ddddddddddddddddddddddddddddddddddddddddddd.pdf
reeedessssssssssssssssssssssssssssssssssssssssss.pdf
03 - IHM Capítulo 0Avaliação Avaliação Avaliação Avaliação Avaliação Avaliaçã...
Avaliação de IAvaliação Avaliação Avaliação HM.pdf
02 - GCSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.pdf
02 - Redesssssssssssssssssssssssssssssss.pdf
03 - GERÊNCIA DE PROJETOS DE SOFTWARE.pdf
01 - GERÊNCIA DE PROJETOS DE SOFTWARE.pdf
Programação do lado do Cliente - Front End.pptx
ICICICICICICICICICICICICICICICICICIC.pptx
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK.pdf
04 - IHMihmihmihmihmihmihmihmihmihmihm.pdf
Anúncio

Qualidade_Software_Aula_1_Final_Corrected.pdf

  • 1. Histórico, Conceitos e Estudos de Caso Professora Fernanda Rodrigues Macedo Aula 1: Introdução à Qualidade de Software
  • 2. Histórico da Qualidade de Software  Na antiguidade, o construtor que construísse uma casa que desmoronasse era condenado à morte;  Ao final da II Guerra mundial, os japoneses com dívidas para pagar, começaram a investir em suas indústrias;  Eles se viram diante do desafio de vender seus produtos com preços menores com qualidade igual ou superior;
  • 3. Histórico da Qualidade de Software  Os projetistas japoneses foram obrigados a criar um meio de produzir produtos dentro de um custo estipulado  Custo = preço final - margem;  Logo, deveriam eliminar os itens que não agregassem valor ao produto:  Tempo ocioso, troca de ferramentas, sujeiras, estoques em trânsito, defeitos etc;
  • 4. Histórico da Qualidade de Software  Os japoneses desenvolveram um método de controle de qualidade que ao invés de eliminar peças defeituosas buscava evitar que defeitos ocorressem.
  • 5. Histórico da Qualidade de Software  A qualidade no software começou a ser formalmente abordada na década de 1970.  Surgimento de metodologias de garantia de qualidade para evitar falhas em sistemas críticos.  Evolução com a popularização do desenvolvimento ágil e métodos de controle de qualidade contínuos.
  • 6. Conceito de Qualidade de Software  Qualidade de software se refere à conformidade do software com requisitos funcionais e não funcionais.  Fatores como confiabilidade, eficiência e usabilidade determinam a qualidade do software.  A qualidade é crítica para a satisfação do cliente e o sucesso de projetos de software.
  • 7. Exemplo  Qual automóvel tem mais qualidade? Depende, pois qualidade é um conceito relativo.
  • 8. Garantia da Qualidade de Software  Garantia da Qualidade de Software (SQA) é o processo de assegurar que o software atende aos padrões de qualidade.  Inclui práticas como auditoria, revisão de código, e testes.  A SQA é integrada em todo o ciclo de desenvolvimento de software.
  • 9. Objetivos da Garantia de Qualidade  Prevenir erros e falhas no produto final.  Melhorar a satisfação do cliente e a confiança no produto.  Garantir que o software entregue seja eficiente, seguro e escalável.
  • 10. Crise do software  Somos capazes de produzir software de qualidade?  Existem aspectos não repetitivos do desenvolvimento de software, que tornam essa atividade difícil e também imprevisível  As dificuldades começam nas etapas iniciais:  Na definição do escopo existem requisitos que são voláteis  Ainda existe o Fator Humano:  Devemos conciliar disciplina com o caráter aleatório da criação  Engenharia de Software:  Aplica princípios e métodos da engenharia para ajudar a obter a qualidade de software
  • 11. Estudo de Caso 1: Projeto de Software Financeiro  Projeto: Desenvolvimento de um sistema de gerenciamento financeiro.  Desafio: Necessidade de alta confiabilidade para evitar erros financeiros.  Solução: Implementação de práticas de SQA desde a fase inicial, incluindo testes automatizados.  Resultado: Redução de 90% nos erros críticos detectados em produção.
  • 12. Estudo de Caso 2: Aplicação Web Escalável  Projeto: Desenvolvimento de uma aplicação web com milhões de usuários.  Desafio: Manter a qualidade do software em um ambiente altamente escalável.  Solução: Implementação de métricas de qualidade e testes de desempenho.  Resultado: Aplicação com alta performance e menos de 1% de downtime ao longo do ano.
  • 13. Garantia de Qualidade no Ciclo de Vida do Software  A SQA está presente em todas as fases do desenvolvimento: planejamento, desenvolvimento, testes e manutenção.  Ferramentas e métodos são adaptados para cada fase.
  • 14. Técnicas de Garantia de Qualidade  Revisão de código por pares  Testes unitários, de integração e de sistema  Auditoria de qualidade e métricas de desempenho
  • 15. Normas de Qualidade de Software  As normas, como ISO 9001 e CMMI, definem boas práticas de garantia de qualidade.  Essas normas garantem processos consistentes e repetíveis.
  • 16. Métricas de Qualidade de Software  O que são métricas de qualidade?  Principais métricas: tempo de resposta, número de falhas, disponibilidade  Exemplo de métricas aplicadas: Projetos reais de sistemas críticos e sua avaliação
  • 17. Normas de Qualidade de Software  Importância das normas de qualidade no desenvolvimento de software.  Principais normas: ISO/IEC 25010, CMMI, e ISO 9001  Implementação de normas na indústria e estudo de casos práticos.
  • 18. Técnicas de Garantia da Qualidade  Inspeções e revisões de código para prevenir erros  Testes automatizados, de integração, de regressão  Auditorias de qualidade e sua aplicação em ambientes ágeis
  • 19. Causas de falhas  Alterações:  As mudanças alteram a estrutura do software tornando-o cada vez mais difícil de alterar e podem introduzir novas falhas  Tempo:  Com o tempo o custo de implementação de alterações aumenta e a capacidade do sistema de prestar os serviços esperados diminui  Complexidade:  O desenvolvimento é complexo e, normalmente, um único desenvolvedor não é capaz de entender o sistema como um todo  Os softwares estão cada vez mais difíceis de utilizar (janelas, eventos, leis, necessidades conflitantes, etc.)  Os softwares estão cada vez mais difíceis de entender devido a códigos mal documentados ou incompreensíveis
  • 20. Estudo de Caso 3: Desenvolvimento Ágil e Qualidade  Aplicação de práticas ágeis em um projeto de software.  Desafio: Garantir a qualidade com ciclos de desenvolvimento curtos  Solução: Testes contínuos e integração de SQA nas sprints  Resultado: Aumento da entrega de valor e qualidade percebida pelo cliente.
  • 21. Avaliação de Qualidade de Produto de Software  Como medir a qualidade de um software em uso.  Ferramentas para avaliação: relatórios de performance, análise de falhas  Técnicas de coleta de feedback dos usuários para melhoria contínua.
  • 22. Estudo de Caso 4: Avaliação de Qualidade em Sistemas de Saúde  Projeto: Sistema de gestão hospitalar com alto volume de dados.  Desafio: Avaliar a qualidade de resposta e segurança dos dados.  Solução: Aplicação de métricas de performance e testes de carga intensivos.  Resultado: Melhorias no tempo de resposta e segurança de dados médicos.
  • 23. Testes de Aceitação de Software  O que são testes de aceitação?  Importância de testes focados no comportamento do usuário.  Exemplos práticos de testes de aceitação.
  • 24. Garantia de Qualidade e Gestão de Risco  Identificação de riscos no processo de desenvolvimento.  Ferramentas de mitigação de risco relacionadas à qualidade de software.  Casos práticos de gerenciamento de risco em grandes projetos de software.
  • 25. Qualidade em Software Open Source  Desafios de qualidade em projetos de software de código aberto.  Ferramentas e técnicas de garantia de qualidade em projetos colaborativos.  Exemplo: Garantia de qualidade no desenvolvimento do Linux.
  • 26. Estudo de Caso 7: SQA em Aplicações de E-commerce  Projeto: Desenvolvimento de uma plataforma de comércio eletrônico.  Desafio: Escalabilidade, segurança e experiência do usuário.  Solução: Implementação de testes contínuos de segurança e carga.  Resultado: Aumento na confiabilidade e melhora da experiência de compra online.
  • 27. Ferramentas de Análise Estática  O que é análise estática de código?  Ferramentas populares: SonarQube, PMD, Checkstyle.  Como integrar análise estática no ciclo de desenvolvimento para garantir qualidade.
  • 28. Estudo de Caso 8: Garantia de Qualidade em Sistemas ERP  Projeto: Implementação de um sistema ERP para uma grande organização.  Desafio: Garantir a integridade e segurança dos dados em larga escala.  Solução: Aplicação de auditorias de qualidade e automação de testes.  Resultado: Sistema seguro, escalável e com alta taxa de disponibilidade.
  • 29. Controle de Qualidade e Feedback de Usuários  Importância do feedback dos usuários na garantia da qualidade.  Ferramentas para coleta de feedback: Hotjar, SurveyMonkey, etc.  Integração do feedback contínuo no ciclo de desenvolvimento.
  • 30. O que fazer diante de um defeito, falha ou bug?  Isolar um defeito:  Determinar sob quais condições a falha ocorre  Descobrir qual linha de código provoca a falha:  Pode ser bastante difícil (depuração do código)  Identificar a causa do defeito  Corrigir o defeito:  Corrigir o defeito e testar fora de produção  Aplicar a mudança no ambiente de produção  Estabilizar um programa:  Fazer correções para diminuição da frequência de falhas  Mais tempo de uso significa mais possibilidade de encontrar e corrigir problemas
  • 31. Qualidade x Tipo de Software  Cada tipo de software tem seu próprio requisito de qualidade  A importância de cada característica depende do tipo de software  Exemplos:
  • 32. Pilares da Qualidade  Planejamento da Qualidade  Garantia da Qualidade  Controle de Qualidade
  • 33. Pilares da Qualidade Planejamento da Qualidade  Estabelece metas de qualidade;  Identifica os clientes e suas necessidades;  Utilizar processos visando a criação de produtos que  atendam as necessidades dos clientes.
  • 34. Pilares da Qualidade Garantia da Qualidade (Processos) ➢ Inclui os processos requeridos para garantir que o produto irá satisfazer as necessidades para as quais ele foi empreendido; ▪ Ajuda a estabelecer processos; ▪ Determina programas de medida para avaliar processos; ▪ Identifica fraquezas em um processo e os aperfeiçoa; ▪ Avalia se o controle de qualidade está funcionando.
  • 35. Pilares da Qualidade Controle da Qualidade (Produto)  É o processo de monitoramento e registro de resultados da execução das atividades de qualidade para avaliar o desempenho e recomendar as mudanças necessárias. ▪ Está relacionado a um produto ou serviço específico; ▪ Verifica se um produto ou serviço específico tem um atributo específico; ▪ Identifica defeitos com o propósito principal de corrigi-los; ▪ É responsabilidade da equipe/ do funcionário.
  • 36. Pilares da Qualidade Qualidade e bugs são conceitos incompatíveis? Programa pode ter erros e continuar sendo um produto de qualidade: • O dilema gerencial: Erro num programa de edição de textos que afeta apenas 1% dos usuários, se corrigido poderia gerar mais bugs • A importância relativa I: Objetos atravessando paredes em jogos é um problema? • A importância relativa II: Processador TeX é de qualidade comprovada, no entanto não indicado para todas as utilizações • 1º Bug da Computação: 1947 no Mark II: Uma abelha provocou falhas no Mark II durante testes
  • 37. Mito e Verdades  Mito: Criar programas é uma arte que não pode seguir regras, normas ou padrões  Verdades:  Produtos de software são complexos  Software não tem produção em série, a maior parte do custo está no projeto e desenvolvimento  Software não se desgasta (ele pode diminuir o desempenho e a aderência)  Software é intangível. Logo, sua representação em grafos e diagramas não é 100% precisa  A Engenharia de Software ainda não está madura, é uma ciência em evolução  Não há um único ponte de vista entre os profissionais sobre o que é qualidade de software
  • 38. Conceitos base  Defeito: o Imperfeição do produto o Segundo o dicionário: é um programa que não funciona como deve o Exemplos: • A = B / C; Se C = 0 então teremos uma divisão por zero • A = B * C; Se B e C estão no limite, A pode não caber o resultado o Estes defeitos podem não causar falhas, mas são graves  Falha ou Bug: o Resultado errado provocado por um defeito ou condição inesperada o Defeitos podem existir sem, no entanto, provocarem falhas o Falhas podem ocorrer por fatores externos: • Toda falha potencial é perigosa, mesmo as que não travem o programa
  • 41. Conclusão: Evolução da Qualidade de Software  A qualidade de software evoluiu com o avanço das metodologias ágeis e DevOps.  SQA é essencial para garantir a competitividade no mercado de software.  Novas tendências em qualidade: IA para testes e automação inteligente.
  • 42. EXEMPLO  Software: WhatsApp  Tipo: Aplicativo de mensagens instantâneas, disponível para dispositivos móveis e desktop. Ele permite enviar mensagens de texto, imagens, vídeos, áudios, fazer chamadas de vídeo e voz, além de compartilhar documentos e localização.
  • 43. Análise de Qualidade  Funcionalidade:  O aWhatsApp cumpre as funcionalidades prometidas, permitindo comunicação rápida e eficiente entre os usuários.  Limitações: A função de busca de mensagens antigas nem sempre funciona bem, especialmente em conversas muito longas.  Eficiência:  O desempenho geral é bom, mas, em áreas com internet instável, o envio de mensagens pode demorar ou falhar.  Problema: O carregamento de arquivos multimídia (vídeos, áudios, etc.) pode ser lento, principalmente em redes mais lentas ou sobrecarregadas.
  • 44. Análise de Qualidade  Usabilidade:  O WhatsApp é fácil de usar. A interface é intuitiva, e as funcionalidades são acessíveis.  Problema: A organização das configurações é confusa para alguns usuários, especialmente quando buscam opções avançadas como gerenciamento de backups ou privacidade.  Confiabilidade:  O WhatsApp é confiável na maior parte do tempo, mas já foram relatados casos de travamentos, especialmente em versões antigas ou dispositivos com pouca memória.  Problema: Em alguns casos, o WhatsApp Web desconecta com frequência, exigindo reconexão constante.
  • 45. Análise de Qualidade  Segurança:  O WhatsApp implementa criptografia de ponta a ponta para proteger as mensagens. No entanto, ele já foi alvo de críticas por questões de privacidade e coleta de dados.  Problema: A autenticação de dois fatores é opcional, o que deixa alguns usuários vulneráveis a ataques de clonagem de conta.
  • 46. Relatório de Falhas e Problemas  Problema: Busca ineficaz em conversas longas.  Classificação: Funcionalidade.  Impacto: A dificuldade em localizar mensagens afeta a usabilidade e a experiência do usuário, especialmente para quem tem muitas conversas.  Problema: Carregamento lento de mídias.  Classificação: Eficiência.  Impacto: Afeta a velocidade de uso, principalmente quando a rede não é ideal, gerando frustração.  Problema: Desconexões frequentes no WhatsApp Web.  Classificação: Confiabilidade.  Impacto: A confiabilidade é prejudicada, causando interrupções no fluxo de trabalho, especialmente para quem depende da versão web no ambiente profissional.
  • 47. Proposta de Melhoria  Melhoria para busca ineficaz em conversas longas:  Proposta: Melhorar o algoritmo de indexação de mensagens para otimizar a pesquisa em conversas longas.  Técnica de Garantia de Qualidade: Realizar testes de desempenho em bases de dados grandes e aplicar algoritmos de busca mais eficientes.  Melhoria para o carregamento lento de mídias:  Proposta: Implementar uma prévia do carregamento e compressão mais eficiente de arquivos para melhorar o tempo de envio e visualização.  Técnica de Garantia de Qualidade: Executar testes de carga e de desempenho em diferentes cenários de rede para otimizar o tempo de resposta.
  • 48. Proposta de Melhoria  Melhoria para desconexões no WhatsApp Web:  Proposta: Aumentar a estabilidade das sessões web com reconexão automática ou aumento no tempo de expiração da sessão.  Técnica de Garantia de Qualidade: Testes de estresse e simulações em redes com diferentes níveis de estabilidade.
  • 49. Validação com Normas  ISO 9001: As melhorias propostas podem ser validadas com a ISO 9001, que foca na otimização de processos e satisfação do cliente, garantindo que as funcionalidades atendam aos requisitos de qualidade.  CMMI: As propostas se alinham ao CMMI (Capability Maturity Model Integration), especialmente em otimização de desempenho e confiabilidade do software.