2. Professor Alexandre
“Montanha”
• Mestre em Educação e Gestão Social
• Especialista em Educação
• Especialista em Gamification
• Analista de Sistemas
• Historiador
• Gamer
http://lattes.cnpq.br/7137425845019062
https://www.linkedin.com/in/alexandre-oliveira-montanha/
alexmontanha@hotmail.com
3. Qualidade
De ponta a ponta a
Excelêcnia
Testes
Os critérios devem
ser acordados e
praticados
Processos
Pessoas são essenciais, Ferramentas
imprescindíveis, mas São processos
que fazem a liga
Visão de um Arquiteto sobre DevOps
Integração
Sem colaboração
não tem qualidade
Padrões
Aproveitar os
“Ombros de
Gigantes”
Code </>
A prática consolidada
5. PROPÓSITO DESTA CAPACITAÇÃO
A presente capacitação, de qualidade de software tem como propósito:
● Explicitar e compartilhar os valores de qualidade que orientam um processo de implatanção da Gestão e
Qualidade de Software.
● Apresentar as normas ISO 9000, 9001 e 20510, fundamentos regulamentadores, que norteiam os
processo de qualidade.
● Apresentar e explicar os pilares de qualidade.
● Capacitar para o uso de um roteiro de elaboração de planos de testes, via Azure DevOps.
● Capacitar para a elaboração de testes automatizados.
6. CONTEÚDOS
Definições
01
O que é Qualidade,
Requisitos e outras
palavrinhas
Normas
02
Apresentação das normas
ISO 9000, 9001 e 20510
Pilares da Qualidade
03
Pilares em destaque para
o processo de qualidade
Planos e Cenários
04
Guia prático para elaborar
planos e cenários de
testes
Testes
Automatizados
05
Escolhas, roteiros e
tutoriais para testes
automatizados
Acompanhamento
06
Como acompanhar a
qualidade, indicadores e
ações
7. “A vitória é o principal objetivo
na guerra. Se tardar a ser
alcançada, as armas
embotam-se e a moral baixa.”
—Sun Tzu
10. CLIENTE
PRINCÍPIOS
Origem, razão e foco dos trabalhos. Tudo
vai girar em torno da experiência dele
QUALIDADE
Pacto realizado com o cliente, que norteia
toda a relação e experiência
EXPERIÊNCIA
Sensações, impressões e sentimentos
obtimos por meio da prática e da vivência
AGILIDADE
Somos adeptos de práticas de gestão que
objetivam trazer rapidez, eficiência e
flexibilidade
EXPERIÊNCIA
DESEJADA
Satisfação, boa impressão, sentimento de
realização
COMPROMISSO
Acordo pactuado entre todas as partes
12. DEFINIÇÕES
QUALIDADE (ISO 9001)
Qualidade, segundo a ISO (International Standardization Organization), é a adequação e conformidade
dos requisitos que a própria norma e os clientes estabelecem. Em outras palavras, a qualidade é o nível
de perfeição de um processo, serviço ou produto entregue pela sua empresa.
PRINCÍPIOS DA GESTÃO DA QUALIDADE (ISO 9001)
● Foco no cliente
● Liderança
● Engajamento das pessoas
● Abordagem de processos
● Melhoria
● Tomada de decisão baseada em evidência
● Gestão de relacionamento
13. DEFINIÇÕES
REQUISITO (ISO 9000)
Segundo a ISO 9000, requisito é uma necessidade ou expectativa que é declarada, geralmente implícita
(subentendida) ou obrigatória.
Um requisito especificado é aquele que é declarado, por exemplo, em informação documentada.
Um qualificador pode ser usado para indicar um tipo específico de requisito, por exemplo, requisito do
produto, requisito de gestão da qualidade, requisito do cliente, requisito da qualidade.
Requisitos podem ser gerados pelas diferentes partes interessadas ou pela organização propriamente
dita.
Ele pode ser necessário para atingir uma alta satisfação do cliente, para atender a uma expectativa do
cliente mesmo que ela não esteja expressa nem implícita de forma geral ou obrigatória.
14. DEFINIÇÕES
REQUISITO (ISO 9000)
Segundo a ISO 9000, requisito é uma necessidade ou expectativa que é declarada, geralmente implícita
(subentendida) ou obrigatória.
Um requisito especificado é aquele que é declarado, por exemplo, em informação documentada.
Um qualificador pode ser usado para indicar um tipo específico de requisito, por exemplo, requisito do
produto, requisito de gestão da qualidade, requisito do cliente, requisito da qualidade.
Requisitos podem ser gerados pelas diferentes partes interessadas ou pela organização propriamente
dita.
Ele pode ser necessário para atingir uma alta satisfação do cliente, para atender a uma expectativa do
cliente mesmo que ela não esteja expressa nem implícita de forma geral ou obrigatória.
15. DEFINIÇÕES
TIPOS DE REQUISITO (ISO 9000)
● Requisitos com comportamento específico (extraídos das necessidades do cliente)
○ Definição documentada de uma propriedade ou comportamento que um produto deve atender
○ Os requisitos são a base para capturar e comunicar necessidades, gerenciar expectativas, priorizar e
atribuir trabalho, verificar e validar o sistema (aceitação) e gerenciar o escopo do projeto
● Requisitos de sistema que não representam um comportamento específico
○ Requisitos legais e regulamentários, assim como padrões de aplicação
○ Atributos de qualidade do sistema a ser construído, incluindo requisitos de usabilidade, confiabilidade,
desempenho e suportabilidade (Requisitos não funcionais)
○ Requisitos de interface para poder comunicar com sistemas externos
○ Restrições de design, tais como sistemas operacionais e ambientes e compatibilidade com outro software
17. DEFINIÇÃO
Não é uma norma certificadora,
mas um documento norteador
de processos de qualidade
ISO 9000
18. DEFINIÇÃO PILARES
Norma que promove a adoção da
abordagem de processo no
desenvolvimento, implementação
e melhoria da eficácia de um sistema de
gestão da qualidade, para aumentar a
satisfação do cliente
pelo atendimento aos requisitos do
cliente
Cliente, liderança, engajamento,
abordagem em processos,
melhoria, tomada de decisão
baseada em evidência e gestão de
relacionamento
ISO 9001
19. DEFINIÇÃO PILARES
Norma ISO para qualidade de
produto de software. Define
modelos de avaliação da qualidade
de software e sistemas.
Compreende 8 características de
qualidade, são elas: Adequação
funcional, Eficiência de
desempenho, compatibilidade,
usabilidade, confiabilidade,
segurança, manutenção e
portabilidade.
ISO 25010
21. Adequação
Funcional
Essa característica representa o
grau em que um produto ou
sistema fornece funções que
atendem às necessidades
declaradas e implícitas quando
usado sob condições
especificadas. Essa característica
é composta pelas seguintes
subcaracterísticas
● Completude funcional - Grau em que o conjunto de
funções cobre todas as tarefas especificadas e objetivos
do usuário.
● Correção funcional - Grau em que um produto ou
sistema fornece os resultados corretos com o grau de
precisão necessário.
● Adequação funcional - Grau em que as funções facilitam
a realização de tarefas e objetivos especificados.
22. Eficiência de
desempenho
Essa característica representa o
desempenho em relação à
quantidade de recursos utilizados
nas condições estabelecidas.
Essa característica é composta
pelas seguintes
subcaracterísticas:
● Comportamento do tempo - Grau em que os tempos de
resposta e processamento e as taxas de rendimento de
um produto ou sistema, ao executar suas funções,
atendem aos requisitos.
● Utilização de recursos - Grau em que as quantidades e
tipos de recursos usados por um produto ou sistema, ao
executar suas funções, atendem aos requisitos.
● Capacidade - Grau em que os limites máximos de um
parâmetro de produto ou sistema atendem aos
requisitos.
23. Compatibilidad
e
Grau em que um produto,
sistema ou componente pode
trocar informações com outros
produtos, sistemas ou
componentes e/ou desempenhar
suas funções necessárias
enquanto compartilha o mesmo
ambiente de hardware ou
software. Essa característica é
composta pelas seguintes
subcaracterísticas:
● Coexistência - Grau em que um produto pode
desempenhar suas funções requeridas de forma eficiente
enquanto compartilha um ambiente e recursos comuns
com outros produtos, sem impacto prejudicial em
qualquer outro produto.
● Interoperabilidade - Grau em que dois ou mais sistemas,
produtos ou componentes podem trocar informações e
usar as informações que foram trocadas.
24. Usabilidade
Grau em que um produto ou
sistema pode ser usado por
usuários específicos para atingir
objetivos específicos com
eficácia, eficiência e satisfação
em um contexto de uso
específico. Essa característica é
composta pelas seguintes
subcaracterísticas:
● Reconhecimento de adequação - Grau em que os usuários podem
reconhecer se um produto ou sistema é apropriado para suas
necessidades.
● Aprendizagem - Grau em que um produto ou sistema pode ser
usado por usuários específicos para atingir objetivos específicos
de aprender a usar o produto ou sistema com eficácia, eficiência,
livre de riscos e satisfação em um contexto de uso especificado.
● Operabilidade - Grau em que um produto ou sistema possui
atributos que o tornam fácil de operar e controlar.
● Proteção contra erros do usuário. Grau em que um sistema
protege os usuários contra erros.
● Estética da interface do usuário - Grau em que uma interface do
usuário permite interação agradável e satisfatória para o usuário.
● Acessibilidade - Grau em que um produto ou sistema pode ser
usado por pessoas com a mais ampla gama de características e
capacidades para atingir um objetivo específico em um contexto
de uso específico.
25. Confiabilidade
Grau em que um sistema,
produto ou componente executa
funções especificadas sob
condições especificadas por um
período de tempo especificado.
Essa característica é composta
pelas seguintes
subcaracterísticas:
● Maturidade - Grau em que um sistema, produto ou
componente atende às necessidades de confiabilidade
sob operação normal.
● Disponibilidade - Grau em que um sistema, produto ou
componente está operacional e acessível quando
necessário para uso.
● Tolerância a falhas - Grau em que um sistema, produto
ou componente opera conforme pretendido, apesar da
presença de falhas de hardware ou software.
● Recuperação - Grau em que, em caso de interrupção ou
falha, um produto ou sistema pode recuperar os dados
diretamente afetados e restabelecer o estado desejado
do sistema.
26. Segurança
Grau em que um produto ou
sistema protege informações e
dados para que pessoas ou
outros produtos ou sistemas
tenham o grau de acesso a dados
adequado aos seus tipos e níveis
de autorização. Essa
característica é composta pelas
seguintes subcaracterísticas:
● Confidencialidade - Grau em que um produto ou sistema
garante que os dados sejam acessíveis apenas para
aqueles autorizados a ter acesso.
● Integridade - Grau em que um sistema, produto ou
componente impede o acesso não autorizado ou a
modificação de programas ou dados de computador.
● Não repúdio - Grau em que se pode provar que as ações
ou eventos ocorreram de modo que os eventos ou ações
não possam ser repudiados posteriormente.
● Accountability - Grau em que as ações de uma entidade
podem ser rastreadas exclusivamente para a entidade.
● Autenticidade - Grau em que a identidade de um assunto
ou recurso pode ser comprovada como aquela
reivindicada.
27. Manutenibilida
de
Essa característica representa o
grau de eficácia e eficiência com
que um produto ou sistema pode
ser modificado para melhorá-lo,
corrigi-lo ou adaptá-lo às
mudanças no ambiente e nos
requisitos. Essa característica é
composta pelas seguintes
subcaracterísticas:
● Modularidade - Grau em que um sistema ou programa de
computador é composto de componentes discretos, de modo que
uma mudança em um componente tenha impacto mínimo em
outros componentes.
● Reutilização - Grau em que um ativo pode ser usado em mais de
um sistema ou na construção de outros ativos.
● Analisabilidade - Grau de eficácia e eficiência com que é possível
avaliar o impacto em um produto ou sistema de uma mudança
pretendida em uma ou mais de suas partes, ou diagnosticar um
produto quanto a deficiências ou causas de falhas, ou identificar
partes a serem analisadas. ser modificado.
● Modificabilidade - Grau em que um produto ou sistema pode ser
modificado de forma eficaz e eficiente sem introduzir defeitos ou
degradar a qualidade do produto existente.
● Testabilidade - Grau de eficácia e eficiência com que os critérios
de teste podem ser estabelecidos para um sistema, produto ou
componente e os testes podem ser realizados para determinar se
esses critérios foram atendidos.
28. Portabilidade
Grau de eficácia e eficiência com
que um sistema, produto ou
componente pode ser transferido
de um hardware, software ou
outro ambiente operacional ou de
uso para outro. Essa
característica é composta pelas
seguintes subcaracterísticas:
● Adaptabilidade - Grau em que um produto ou sistema pode ser
adaptado de forma eficaz e eficiente para hardware, software ou
outros ambientes operacionais ou de uso diferentes ou em
evolução.
● Instabilidade - Grau de eficácia e eficiência com que um produto
ou sistema pode ser instalado e/ou desinstalado com sucesso em
um ambiente especificado.
● Substitutibilidade - Grau em que um produto pode substituir outro
produto de software especificado para a mesma finalidade no
mesmo ambiente.
30. O QUE O SISTEMA DEVERÁ FAZER
Requisito: Cadastro de Clientes
● O sistema permitirá o cadastramento de usuários, contendo:
● Nome (obrigatório)
● CPF (obrigatório e válido)
● CEP (obrigatório)
● Endereço (obrigatório)
31. CRIANDO UMA HISTÓRIA
Requisito: Cadastro de Clientes
● O sistema permitirá o cadastramento de usuários, contendo:
● Nome (obrigatório)
● CPF (obrigatório e válido)
● CEP (obrigatório)
● Endereço (obrigatório)
História: Cadastrar-se como Cliente
● Como pretendente à cliente, o usuário poderá acessar a plataforma, onde deverá informar um nome,
deverá fornecer um CPF válido, inserir um CEP e fornecer um endereço.
32. CAMINHO DO TESTE, APÓS
DETALHAMENTO DO PROCESSO
REQ 001
REQ 002
REQ 003
REQ 004
O Pretendente à cliente poderá
acessar o link
O CPF deve ser validado pela
regra do Governo Federal
Os campos obrigatórios precisam
ser preenchidos
O cadastro deve sugerir o
endereço à partir do CEP
REQ 005
O cadastro deve ser salvo com os
dados digitados e validados
33. Cenários de Teste: Cenário 01
Passo Requisitos Descrição
01 REQ 001 Acessar: http://localhost:4200/tabs/tab1
02 REQ 002 Preencher o nome com “Jean-Pierre Vernant”
03 REQ 002/REQ
003
Preencher o CPF com “007.101.990-15”
04 REQ 002/REQ
004
Preencher o CEP com “01001000”
Efeito: O Campo endereço deve ser preenchido com “Praça
da Sé”
05 REQ 005 Clicar o botão Salvar para finalizer o cadastro.
Efeito: O objeto com os dados deve ser mostrado no console
34. Cenários de Teste: Cenário 02 (Nome Inválido)
Passo Requisitos Descrição
01 REQ 001 Acessar: http://localhost:4200/tabs/tab1
02 REQ 002 Deixar o nome em branco
Efeito: o campo deve ser sinalizado em vermelho
03 REQ 002/REQ
003
Preencher o CPF com “007.101.990-15”
04 REQ 002/REQ
004
Preencher o CEP com “01001000”
Efeito: O Campo endereço deve ser preenchido com “Praça
da Sé”
05 REQ 005 Clicar o botão Salvar para finalizer o cadastro.
Efeito: O objeto com os dados NÃO deve ser mostrado no
console
35. Cenários de Teste: Cenário 03 (CPF Inválido)
Passo Requisitos Descrição
01 REQ 001 Acessar: http://localhost:4200/tabs/tab1
02 REQ 002 Preencher o nome com “Jean-Pierre Vernant”
03 REQ 002/REQ
003
Preencher o CPF com “007.101.990-00”
Efeito: o campo deve ser sinalizado em Vermelho e deve ser
apresentada uma mensagem de CPF inválido
04 REQ 002/REQ
004
Preencher o CEP com “01001000”
Efeito: O Campo endereço deve ser preenchido com “Praça
da Sé”
05 REQ 005 Clicar o botão Salvar para finalizer o cadastro.
Efeito: O objeto com os dados NÃO deve ser mostrado no
console
40. Integração Contínua
A integração contínua é uma prática de DevOps
que automatiza a união de alterações de código
de vários desenvolvedores em um único projeto de
software.
Os desenvolvedores podem mesclar suas
alterações em um repositório central, onde
ferramentas automatizadas executam builds e
testes para garantir a correção do novo código
antes da integração.
Para garantir a qualidade do código, outras
verificações, como testes automatizados de
qualidade de código e análise de sintaxe, também
são realizadas juntamente com o uso de um
sistema de controle de versão.
41. A falta de integração contínua causa
problemas de coordenação e
comunicação entre os
desenvolvedores, equipes de
operações e toda a organização. Sem
ela, as equipes de produto precisam
coordenar manualmente a
contribuição de código para o produto
final, incluindo o lançamento
sequencial de recursos e correções e
a definição de responsabilidades dos
membros da equipe.
Surgimento da Necessidade
42. A falta de integração contínua pode
resultar em comunicação excessiva e
burocracia desnecessária, tornando a
sincronização de tarefas complexa e
aumentando o risco de erros e falhas
no código. Isso é especialmente
verdadeiro em equipes grandes e
projetos com grande base de código,
onde os riscos e custos associados
aumentam significativamente.
Surgimento da Necessidade
43. Sem um pipeline robusto de
integração contínua, pode haver
desconexão entre a equipe de
engenharia e o restante da
organização, dificultando a
comunicação e colaboração entre as
equipes. Isso pode levar a uma falta
de transparência sobre as mudanças
e a dificuldades para estimar o tempo
necessário para implementar
solicitações de recursos e correções,
pois o tempo de integração das
mudanças se torna um risco
desconhecido.
Surgimento da Necessidade
44. Objetivo
A integração contínua ajuda a escalar a contagem de
pessoas e a entrega de resultados das equipes de
engenharia. Ela permite que os desenvolvedores
trabalhem com autonomia em recursos paralelos e os
integrem rapidamente no produto final. A IC é uma prática
valiosa e amplamente adotada em organizações de
engenharia de software de alto desempenho.
45. Benefícios e desafios da integração
contínua
A integração contínua permite que as organizações dimensionem o tamanho das
equipes de engenharia, da base de códigos e da infraestrutura, removendo a
burocracia excessiva de integração de código e comunicação. Isso ajuda a criar
fluxos de trabalho ágeis e de DevOps, permitindo que cada membro da equipe
possa ser dono de uma nova alteração de código do início ao fim. Com a IC, os
desenvolvedores podem trabalhar em recursos isolados e ter a certeza de que o
código será integrado perfeitamente à base de códigos, sem depender de outras
equipes ou processos burocráticos. Isso possibilita a escalabilidade da equipe de
desenvolvimento de forma mais eficiente.
Permitir escalabilidade
46. Benefícios e desafios da integração
contínua
Outro efeito colateral poderoso da integração contínua é o feedback mais rápido
sobre decisões de negócios. As equipes de produto podem testar ideias e iterar os
desenhos de produtos com mais rapidez com uma plataforma de integração
contínua otimizada. As alterações podem ser enviadas e avaliadas com rapidez
para obter êxito. Bugs e outros problemas podem ser analisados e solucionados
com rapidez.
Melhorar o ciclo de feedback
47. Benefícios e desafios da integração
contínua
A integração contínua melhora a colaboração, comunicação, compartilhamento de
conhecimento e controle de qualidade em equipes de DevOps. O uso de
solicitações pull vinculadas a fluxos de trabalho da integração contínua permite que
os desenvolvedores colaborem de forma mais eficiente. Um pipeline de integração
contínua com cobertura de teste automatizado de alta confiança ajuda a proteger
contra regressões e garantir que os novos recursos correspondam às
especificações. No entanto, os desafios surgem ao passar de um projeto sem
integração contínua para integração contínua, mas a maioria dos projetos
modernos adotam a integração contínua desde o início para amenizar esses
desafios.
Aumentar a comunicação
48. Benefícios e desafios da integração
contínua
A integração contínua melhora a colaboração, comunicação, compartilhamento de
conhecimento e controle de qualidade em equipes de DevOps. O uso de
solicitações pull vinculadas a fluxos de trabalho da integração contínua permite que
os desenvolvedores colaborem de forma mais eficiente. Um pipeline de integração
contínua com cobertura de teste automatizado de alta confiança ajuda a proteger
contra regressões e garantir que os novos recursos correspondam às
especificações. No entanto, os desafios surgem ao passar de um projeto sem
integração contínua para integração contínua, mas a maioria dos projetos
modernos adotam a integração contínua desde o início para amenizar esses
desafios.
Aumentar a comunicação
49. Top 10 Ferramentas de Integração
Contínua
1. Bamboo: uma ferramenta de integração contínua da Atlassian, que oferece integração com outras ferramentas
da Atlassian, como Jira e Bitbucket.
2. CircleCI: uma plataforma de integração contínua em nuvem que oferece recursos de construção, teste e
implantação contínua.
3. GitLab CI/CD: uma ferramenta de integração contínua e entrega contínua incorporada ao GitLab, que permite a
automatização de tarefas de construção, teste e implantação.
4. Jenkins: um servidor de automação de código aberto que é frequentemente usado como uma ferramenta de
integração contínua.
5. Travis CI: uma plataforma de integração contínua em nuvem que é frequentemente usada para projetos open
source.
6. Codeship: uma plataforma de integração contínua em nuvem que oferece recursos de construção, teste e
implantação contínua para aplicativos web e móveis.
7. TeamCity: um servidor de automação de construção e integração contínua da JetBrains, que oferece recursos
avançados de integração com o IntelliJ IDEA e outras ferramentas da JetBrains.
8. Semaphore: uma plataforma de integração contínua em nuvem que oferece recursos de construção, teste e
implantação contínua para aplicativos web e móveis.
9. Bitrise: uma plataforma de automação de CI/CD em nuvem para aplicativos móveis nativos, que oferece
integração com uma variedade de ferramentas de desenvolvimento de aplicativos.
10. Azure DevOps: uma plataforma de gerenciamento de ciclo de vida de aplicativos da Microsoft, que oferece
recursos de integração contínua e entrega contínua integrados.
50.
51. CREDITS: This presentation template was created by Slidesgo,
including icons by Flaticon, infographics & images by Freepik
and illustrations by Stories
Thanks!
Professor Alexandre Montanha
Please keep this slide for attribution