Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Conteudista: Prof. Me. Artur Marques
Revisão Textual: Prof.ª Dra. Luciene Oliveira da Costa Granadeiro
Material Teórico
Material Complementar
Referências
Construção de Sistemas com Qualidade
Antes de iniciar um projeto de software, é essencial determinar as tarefas a serem executadas e
gerenciar adequadamente a alocação de tarefas entre os indivíduos envolvidos no
desenvolvimento do software. Portanto, o planejamento é importante, pois resulta em um
desenvolvimento de software e�caz.
Ao iniciar qualquer projeto de desenvolvimento de novos sistemas, é importante de�nir o
escopo do projeto e planejar como ele será desenvolvido, testado e mantido. Isso geralmente é
chamado de ciclo de vida de desenvolvimento de sistemas.
Embora existam variações de qual modelo seguir em um projeto de desenvolvimento, em
cascata, espiral, incremental, uni�cado, ágil ou lean, todos exigem muita re�exão e
investimento em planejamento.
Essa é a fase mais importante de qualquer projeto de desenvolvimento de software. Durante
esse estágio, você decidirá e avaliará exatamente o que deseja fazer e se um novo sistema é
1 / 3
Material Teórico
 Objetivo da Unidade:
Manter construções de software consistentes.
necessário como resultado ou se melhorias podem ser feitas caso esteja trabalhando em um
sistema existente. O que a maioria dos pro�ssionais entrantes na área não reconhece é que
essa é sempre uma fase longa, que requer muita análise e avaliação, além disso,
compartilhamento e tomada de decisão de forma coletiva.
Uma quantidade signi�cativa de tempo será gasta considerando o que o usuário �nal deseja
alcançar, quem usará o sistema, o que precisa ser inserido para obter a saída necessária e
entre outras coisas.
Todos os requisitos devem ser cuidadosamente documentados, incluindo as expectativas do
usuário �nal para garantir que todos os que trabalham no projeto tenham uma visão clara do
que desejam que o produto acabado faça. Isso é verdadeiro inclusive para projetos sob
qualquer framework ágil. Portanto, não siga a falácia da não necessidade de documentação
porque o desenvolvimento é ágil.
Pense da seguinte forma: quaisquer discrepâncias que não sejam explicadas ou de�nidas
nesse estágio podem ter repercussões em qualquer outro estágio posterior e podem adicionar
custos imprevistos que podem ameaçar qualquer projeto de desenvolvimento e, claro, ameaçar
o seu emprego, a�nal qual stakeholder – parte interessada – gosta de desperdiçar recursos e
dinheiro?
Uma estimativa sobre recursos internos e externos necessários e custos totais do projeto deve
ser fornecida para garantir que a melhor solução tenha sido escolhida. Portanto, de�na
claramente os objetivos para o projeto, estabeleça quais recursos e orçamento estão
disponíveis de forma honesta para todos, principalmente para sua equipe e, por �m, avalie
sempre soluções alternativas para garantir que a melhor proposta seja feita. Isso quer dizer
que você deverá ter o plano A, mas também o B, C, D etc.
Vamos falar um pouco disso agora.
Projeto e Manutenção de Software
É óbvio que, ao falar sobre design de software, surge uma pergunta: o que é esse design de
software a�nal? 
O design de software é basicamente um mecanismo de preparação de um plano, um layout para
estruturar o código de seu aplicativo de software. 
É algo simples de de�nir e difícil de executar com certeza!
O design de software é um conceito de vários estágios. O software em si é em si, algo
multicamadas e multidimensional e, portanto, seu design tem várias etapas intermediárias em
seus diferentes níveis.
Então, em linhas gerais, de que níveis nos referimos quando falamos de design de software?
Projeto de arquitetura: é a primeira etapa do projeto em nível de software. Trata-se da
construção de uma estrutura de software aplicativo para que haja a correta interconexão de
cada elemento do código de acordo com a função exigida. Portanto, usamos muito UML, qual
padrão de arquitetura se GoF, MVC, DAO, Camadas ou Cliente Servidor, também qual
framework, qual a linguagem, entre outros.
Projeto de alto nível: é a segunda etapa no projeto. Nessa etapa, o designer divide os conceitos
teóricos em várias entidades e garante que suas funções estejam inter-relacionadas para obter
um resultado ideal. Esse módulo identi�ca uma estrutura modular de diferentes entidades e
cria um design para interconectar todos os módulos para uma saída especí�ca. Usamos
diagramas de pacotes, interfaces em diagramas de classes, tipos de repositórios para
aproveitarmos reúso de módulos e funcionalidades por exemplo.
Projeto detalhado: é a terceira e última etapa. Envolve a compilação de todas as saídas
modulares e a disposição ou reorganização dos módulos funcionais para o resultado. Esse
nível de design de software determina mais de uma estrutura lógica de módulos construídos. A
parte de realização do resultado do software é o motivo do nível de design detalhado do
software. Aqui entram a escolha de componentes, diagrama de classes de persistência,
diagramas expandidos de caso de uso, diagramas de sequência e outros comportamentais. Por
�m, codi�ca-se, testa-se, corrige-se e integra-se até o término. 
Sabemos que, no desenvolvimento atual de software, sempre existe algum software para
reutilizar. Os componentes reutilizáveis são elementos que podem fornecer funcionalidade
especí�ca para o sistema que será produzido. Essa abordagem orientada para a reutilização se
baseia em uma grande base de componentes de software reutilizáveis e em alguma estrutura
de integração para esses componentes. 
As etapas do processo de software baseado em componentes são:
Análise de componentes: com base na especi�cação de requisitos, é feita uma busca por
componentes que possam implementar a especi�cação dada. Normalmente, não há
correspondência exata e os componentes que podem ser usados fornecem apenas algumas
das funcionalidades necessárias.
Modi�cação de requisitos: os requisitos são analisados a partir de informações sobre os novos
componentes. Os requisitos são então modi�cados para re�etir os serviços dos componentes
disponíveis.
Projeto de sistema com reutilização: a estrutura do sistema é projetada ou uma estrutura
existente é reutilizada. Os projetistas levam em consideração os componentes que são
reutilizados. Algum novo software pode ter que ser projetado se componentes reutilizáveis não
estiverem disponíveis.
Desenvolvimento e integração: o software que não pode ser adquirido externamente é
desenvolvido e os componentes e sistemas reutilizáveis são integrados para criar o sistema.
A engenharia de software baseada em componentes tem a vantagem óbvia de reduzir a
quantidade de software a ser desenvolvido e, assim, reduzir custos e riscos. Geralmente,
também leva a uma entrega mais rápida do software. No entanto, o comprometimento de
requisitos é inevitável e isso pode levar a um sistema que não atenda às necessidades reais dos
usuários.
Geralmente, as alterações são inevitáveis em todos os grandes projetos de software. Os
requisitos do sistema mudam à medida que a organização responde continuamente às
mudanças no ambiente e nas condições. 
As prioridades de gerenciamento podem mudar. Devido ao rápido progresso nas tecnologias,
os projetos e a implementação serão alterados. Isso signi�ca que as atividades do processo
são repetidas regularmente à medida que o sistema é retrabalhado em resposta aos requisitos
de mudança.
Os processos convencionais de desenvolvimento de software que são baseados na
especi�cação completa dos requisitos e, em seguida, projetar, construir e testar o sistema não
são aplicáveis ao desenvolvimento rápido de software. 
Conforme os requisitos mudam, o design ou implementação do sistema deve ser retrabalhado
e testado novamente. Como consequência, o processo de desenvolvimento costuma atrasar e
o software �nal é entregue ao cliente muito depois de ter sido originalmente especi�cado. Em
alguns casos, o motivo originalpara o desenvolvimento de software pode ter mudado tão
radicalmente que o software se torna efetivamente inútil quando é entregue. Portanto, os
processos de desenvolvimento, especialmente no caso de sistemas de negócios, devem se
concentrar no rápido desenvolvimento e entrega de software.
Veri�cação, Validação e Testes
O processo de teste geral começa com o teste de unidade de programa individuais, como
funções ou objetos. O objetivo do teste de componente é descobrir defeitos testando
componentes individuais do programa. 
Os componentes são geralmente integrados para formar subsistemas e, �nalmente, para o
sistema completo. O teste do sistema se concentra em estabelecer se o subsistema ou o
sistema completo atende aos seus requisitos funcionais e não funcionais e não se comporta
de maneiras inesperadas. O teste de componentes por desenvolvedores é baseado na
compreensão de como os componentes devem operar usando dados de teste. No entanto, o
teste de sistema é rigorosamente baseado em especi�cações de sistema escritas.
O processo de teste de software tem os seguintes objetivos principais:
Demonstrar que o software atende aos seus requisitos. Isso signi�ca que deve haver pelo
menos um teste para cada usuário e requisitos de sistema;
Descobrir falhas ou defeitos no software. O objetivo do teste de defeitos é a exploração e
eliminação de todos os tipos de comportamento indesejável do sistema, como
travamentos do sistema, interações indesejadas com outros sistemas, cálculos incorretos
e corrupção de dados.
O primeiro objetivo é chamado de teste de validação. Nesse caso, o sistema é testado por um
determinado conjunto de casos de teste que re�etem o uso esperado do sistema. Para o teste
de validação, um teste é considerado bem-sucedido se o sistema funcionar corretamente. 
O segundo objetivo leva ao teste de defeitos, no qual os casos de teste são projetados para
expor defeitos. Nesse caso, um teste bem-sucedido é aquele que expõe um defeito que faz com
que o sistema funcione incorretamente. Os casos de teste são especi�cações das entradas
para o teste, a saída esperada do sistema e uma declaração do que está sendo testado. Os
dados de teste são as entradas criadas para testar o sistema. O teste é baseado em um
subconjunto de casos de teste possíveis.   
Figura 1 – Modelo geral do processo de teste 
Vamos falar dos tipos de teste importantes.
Teste Unitário: é uma forma de testar a menor parte do código que pode ser isolada
logicamente em um sistema. Na maioria das linguagens de programação, isso é uma função,
uma sub-rotina, um método ou propriedade. Versões modernas de teste de unidade podem
ser encontradas em estruturas como JUnit ou ferramentas de teste como TestComplete,
lembre-se, automatize seus testes, pois, atualmente, é impossível fazer testes manuais com o
grau e complexidade que o software atingiu. Há, não se esqueça, o teste de unidade é feito
durante o desenvolvimento, ou seja, fase de codi�cação, de um aplicativo pelos
desenvolvedores. Ele garante que todo o código atenda aos padrões de qualidade antes de ser
implantado. Isso garante um ambiente de engenharia con�ável onde a qualidade é
fundamental. Ao longo do ciclo de vida de desenvolvimento do produto, o teste de unidade
economiza tempo e dinheiro e ajuda os desenvolvedores a escrever um código melhor e com
mais e�ciência.
Teste de Interface: em um sistema de software, muitos componentes não são funções ou
objetos simples, mas são componentes compostos que consistem em vários objetos em
interação. A funcionalidade desses componentes pode ser acessada por meio de sua interface
de�nida. O teste desses componentes compostos preocupa-se principalmente com o teste da
interface do componente composto criado pela combinação desses componentes. O teste de
interface é importante para o desenvolvimento orientado a objetos e baseado em
componentes. Objetos e componentes são de�nidos por suas interfaces e podem ser
reutilizados em combinação com outros componentes em diferentes sistemas.
Teste de Integração: Fowler (2018), um dos signatários do manifesto ágil, coloca esse tipo de
teste como os que determinam se as unidades de software desenvolvidas de forma
independente funcionam corretamente quando estão conectadas umas às outras. Muitas
pessoas presumem que os testes de integração são necessariamente amplos em escopo,
embora possam ser realizados de forma mais e�caz com um escopo mais restrito.
“Como costuma acontecer com essas coisas, é melhor começar com um pouco de história.
Quando aprendi sobre testes de integração, foi na década de 1980 e a cachoeira foi a in�uência
dominante do pensamento de desenvolvimento de software. Em um projeto maior, teríamos
uma fase de design que especi�caria a interface e o comportamento dos vários módulos do
sistema. Os módulos seriam então atribuídos aos desenvolvedores para programar. Não era
incomum para um programador ser responsável por um único módulo, mas isso seria grande
o su�ciente para levar meses para construí-lo. Todo esse trabalho foi feito isoladamente e,
quando o programador acreditasse que estava concluído, ele o entregaria ao controle de
qualidade para teste.
A primeira parte do teste seria o teste de unidade, que testaria aquele módulo por conta
própria, em relação à especi�cação que havia sido feita na fase de design. Depois de concluído,
passamos para o teste de integração, onde os vários módulos são combinados em todo o
sistema ou em subsistemas signi�cativos.
O objetivo do teste de integração, como o nome sugere, é testar se muitos módulos
desenvolvidos separadamente funcionam juntos conforme o esperado. Ele foi executado
ativando vários módulos e executando testes de nível superior em todos eles para garantir que
funcionassem juntos. Esses módulos podem ser partes de um único executável ou separados. 
O problema é que temos (pelo menos) duas noções diferentes do que constitui um teste de
integração.
Testes de integração estreitos: exercer apenas a parte do código em meu serviço que se
comunica com um serviço separado usa duplas de teste desses serviços, em processo ou
remotos, portanto, consistem em muitos testes de escopo restrito, muitas vezes não maiores
em escopo do que um teste de unidade (e geralmente executados com a mesma estrutura de
teste que é usada para testes de unidade)
Testes de integração amplos: exigem versões ao vivo de todos os serviços, exigindo um
ambiente de teste substancial e acesso à rede exercitar caminhos de código em todos os
serviços, não apenas no código responsável pelas interações. E há uma grande população de
desenvolvedores de software para os quais “teste de integração” signi�ca apenas “testes de
Teste Funcional: bem, começamos determinando qual é o comportamento aceitável para
“funcional” e o que não é. Portanto, isso está feito na própria especi�cação funcional ou nos
requisitos. Ali, veja bem, deveria estar escrito o que o usuário ou ator do sistema tem
“permissão” para fazer, assim podemos falar se algo está ou não em conformidade. Quais
cenários as premissas são verdadeiras, quais são falsas?
Podemos realizar testes de funcionalidade por dois meios:
Teste com base em requisitos: contém todas as especi�cações funcionais que formam a
base para todos os testes a serem realizados;
Teste com base em cenários de negócios: contém as informações sobre como o sistema
será percebido a partir de uma perspectiva de processos de negócios.
Teste e garantia de qualidade são uma grande parte do processo ciclo de vida do
desenvolvimento de software. Precisamos estar cientes de todos os tipos de teste, mesmo que
não estejamos diretamente envolvidos com eles diariamente.
Mas vamos entender que, quando falamos de teste de funcionalidade ou de funcionamento:
Teste de regressão: também faz parte da família de teste funcionais, é realizado para garantir
que a adição de novo código, melhorias, correção de bugs não está quebrando a
funcionalidade existente ou causandoqualquer instabilidade e ainda funciona de acordo com
- FOWLER, 2018, p. 2
integração amplos”, o que causa muita confusão quando se depara com pessoas que usam a
abordagem restrita.
Se seus únicos testes de integração forem amplos, você deve considerar explorar o estilo
restrito, pois é provável que melhore signi�cativamente a velocidade do teste, a facilidade de
uso e a resiliência. Como os testes de integração estreitos são limitados em escopo, eles
geralmente são executados muito rapidamente.”
as especi�cações. Os testes de regressão não precisam ser tão extensos quanto os testes
funcionais reais, mas devem garantir apenas a quantidade de cobertura para certi�car que a
funcionalidade é estável.
Teste de usabilidade: também é conhecido como o famoso Beta Teste ou teste de versão Beta
onde o produto é exposto ao cliente real em uma produção como um ambiente e eles testam o
produto. O conforto do usuário é derivado disso e o feedback é obtido. Isso é semelhante ao
teste de aceitação do usuário.
Portanto, quando criamos testes, pensamos nos mais diversos tipos de cenários, porém,
devemos entender que realizar todos os tipos de teste possíveis não vai garantir que o sistema
não tenha erros, mas podemos garantir que vai sair caro o su�ciente para assustar até o mais
experiente gerente de projeto ou agilista. Portanto, é imponderável realizar isso, mas é
importante para você saber qual é o esqueleto ou estrutura de um caso de teste:
Resumo do teste;
Pré-requisitos;
Etapas de teste;
Resultados esperados.
Re�ita 
A esta altura, você deve perguntar: “mas como é um caso de teste
funcional?”. Aqui você encontrará uma leitura bastante interessante.
Caso não consiga ler em inglês, poderá utilizar o Google Translator para
ler. Trata-se de leitura fácil e rápida. É importante você ler.
Selenium: popular ferramenta de teste funcional de código aberto – disponível em:
GURU99. Como escrever casos de teste: modelo de amostra com
exemplos. 2020. Disponível em: 
How to Write Test Cases: Sample Template with
Examples
A TEST CASE is a set of actions executed to verify a particular feature or functionality
of your software application. A Test Case contains test steps, test data, precondition,
postcondition developed for speci�c test scenario to verify any requirement.
LEIA MAIS GURU99 
Saiba Mais 
Aqui, temos algumas ferramentas para testes:
https://www.guru99.com/test-case.html
https://www.guru99.com/test-case.html
https://www.guru99.com/test-case.html
QTP: ferramenta de teste funcional muito amigável da HP – disponível em:
SELENIUM
Downloads
The Internet Explorer Driver Server This is required if you want to make use
of the latest and greatest features of the WebDriver InternetExplorerDriver.
Please make sure that this is available on your %PATH% in order for the IE
Driver to work as expected.
LEIA MAIS SELENIUM 
AUTOMATIONREPOSITORY
Download QTP Latest Version (v12.53) from HP -
XX - XX
0 Flares Twitter 0 Facebook 0 Google+ 0 LinkedIn 0 Email -- 0 Flares × Quick
Test Professional 12.53 can be downloaded from HP website. The trial version
of QTP is available as "UFT 12.53". The trail period for the software is 30 days.
1. Open this link.
https://www.selenium.dev/
https://www.selenium.dev/downloads/
https://www.selenium.dev/downloads/
http://www.automationrepository.com/
http://www.automationrepository.com/2011/08/download-qtp-11-trial-version-from-hp/
http://www.automationrepository.com/2011/08/download-qtp-11-trial-version-from-hp/
JUnit: usado principalmente para aplicativos Java e pode ser usado em testes de unidade e
sistema – disponível em:
soapUI: esta é uma ferramenta de teste funcional de código aberto, usada principalmente
para teste de serviço da web. Ele oferece suporte a vários protocolos, como HTTP, SOAP e
JDBC – disponível em: 
LEIA MAIS AUTOMATIONREPOSITORY 
SOURCEFORGE
JUnit
Download JUnit for free. We are deprecating our SourceForge installation. For
the latest information, downloads, and opportunities to contribute, please
visit http://junit.org.
LEIA MAIS SOURCEFORGE 
SOAPUI
Download REST & SOAP Automated API Testing
Tool | Open Source | SoapUI
Get the most advanced functional testing tool for REST, SOAP and GraphQL
APIs.
http://www.automationrepository.com/2011/08/download-qtp-11-trial-version-from-hp/
https://sourceforge.net/
https://sourceforge.net/projects/junit/
https://sourceforge.net/projects/junit/
https://sourceforge.net/projects/junit/
https://www.soapui.org/
https://www.soapui.org/downloads/soapui/
Watir: esta é uma ferramenta de teste funcional para aplicativos da web. Ele suporta
testes executados no navegador da web e usa uma linguagem de script Ruby – disponível
em: 
Garantia da Qualidade, Medição e Melhoria
Antes de iniciar um projeto de software, é essencial determinar as tarefas a serem executadas e
gerenciar adequadamente a alocação de tarefas entre os indivíduos envolvidos no
desenvolvimento do software. Portanto, o planejamento é importante, pois resulta em um
desenvolvimento de software e�caz.
LEIA MAIS SOAPUI 
WATIR
Watir Project
Watir 7.0.0.beta3 is now available on RubyGems. This update includes bug
�xes and things that were intended for the last release for Capabilities but
overlooked. Continue Reading... Watir 7.0.0.beta2 is now available on
RubyGems. This is all the additions and optimizations that were dependent on
removing the deprecated code in Beta 1.
LEIA MAIS WATIR 
https://www.soapui.org/downloads/soapui/
http://watir.com/
http://watir.com/
http://watir.com/
Para um planejamento de projeto e�caz, alguns princípios são seguidos:
O planejamento é necessário: o planejamento deve ser feito antes do início do projeto.
Para um planejamento e�caz, os objetivos e cronogramas devem ser claros e
compreensíveis;
Análise de risco: antes de iniciar o projeto, a alta administração e a equipe de
gerenciamento do projeto devem considerar os riscos que podem afetar o projeto. Por
exemplo, o usuário pode desejar mudanças nos requisitos enquanto o projeto está em
andamento. Nesse caso, a estimativa de tempo e custo deve ser feita de acordo com esses
requisitos (novos requisitos);
Acompanhamento do plano do projeto: uma vez que o plano do projeto é preparado, ele
deve ser rastreado e modi�cado de acordo;
Atender aos padrões de qualidade e produzir resultados de qualidade: o plano do projeto
deve identi�car os processos pelos quais a equipe de gerenciamento do projeto pode
garantir a qualidade do software. Com base no processo selecionado para garantir a
qualidade, estima-se o tempo e o custo do projeto;
Descrição da �exibilidade para acomodar mudanças: o resultado do planejamento do
projeto é registrado na forma de um plano do projeto, que deve permitir que novas
mudanças sejam acomodadas quando o projeto estiver em andamento.
Vamos descrever com maiores minúcias os  dois últimos, postos em evidência.
Quanto ao plano de garantia da qualidade, Thakur (2018) descreve a necessidade descritiva
dos métodos e estratégias que deverão ser seguidas para atingir os objetivos como manter “as
coisas” do projeto de software organizadas, garantir as entregas com o padrão de qualidade
padrão da empresa antes de serem entregues ao usuário. 
Isso envolve também os processos de veri�cação e validação cujos componentes de teste em
veri�cação foram expostos no subtítulo anterior e que envolvem:
Plano e procedimentos de teste do sistema: fornece informações sobre a estratégia de teste do
sistema, integração do banco de dados e integração do sistema da plataforma. Fornece uma
visão geral dos componentes necessários para a integração do banco de dados e garante que o
aplicativo seja executado em pelo menos duas plataformas especí�cas. O procedimento de
integração do banco de dados descreve como o banco de dados é conectado à Interface
Grá�ca do Usuário. O procedimento de integração do sistema de plataforma é executado em
diferentes sistemas operacionais para testar a validade da plataforma.Teste de aceitação e preparação para entrega: descreve como o teste de aceitação deve ser
executado no software para veri�car sua usabilidade, conforme necessário. Os critérios de
aceitação descrevem que o software será aceito apenas se todos os componentes, recursos e
funções forem testados, incluindo o teste de integração do sistema. Além disso, os critérios de
aceitação veri�cam se o software atende às expectativas do usuário. O procedimento de
instalação descreve as etapas de instalação do software de acordo com o sistema operacional
usado e as especi�cações mínimas de hardware necessárias.
Plano de Gerenciamento de Con�guração: de�ne o processo, que é usado para fazer mudanças
no escopo do projeto. Geralmente, o plano de gerenciamento da con�guração se preocupa
com a rede�nição dos objetivos existentes do projeto e das entregas que nada mais são que os
produtos de software que são entregues ao usuário/cliente após a conclusão do
desenvolvimento.
Quando falamos em modelos de qualidade de software, precisamos obrigatoriamente falar da
ISO – International Organization for Standardization, ou Organização Internacional para
Padronização.
O padrão ISO 9126 descreve um modelo de qualidade de software que a categoriza a em 6
características que são subdivididas em sub características. As características se manifestam
externamente quando o software é usado como consequência dos atributos internos
do software. Os atributos internos do software são medidos por meio de métricas internas, por
exemplo, monitoramento do desenvolvimento do software antes da entrega.
As características de qualidade são medidas externamente por meio de métricas externas.
Vejamos como são as subdivisões conforme a ISO para qualidade de software.
Quadro 1 – Itens do padrão ISO de qualidade de software
Funcionalidade
Aptidão;
Precisão;
Interoperabilidade;
Segurança;
Conformidade.
Con�abilidade 
Maturidade;
Tolerância ao erro;
Recuperabilidade;
Conformidade.
Usabilidade 
Compreensibilidade;
Aprendizagem;
Operabilidade;
Atratividade;
Conformidade.
Reutilização 
Compreensibilidade para
Reutilização;
Aprendizagem para
reutilização;
Operabilidade para
Reutilização –
Programação;
Atratividade para
Reutilização;
Conformidade para
Reutilização.
E�ciência 
Comportamento de
tempo;
Utilização de recursos;
Conformidade.
Capacidade de
Manutenção 
Analisabilidade;
Mutabilidade;
Estabilidade;
Testabilidade;
Conformidade.
Portabilidade 
Adaptabilidade;
Instalabilidade;
Coexistência;
Substitutibilidade;
Conformidade.
Fonte: Adaptado de RUGGIERI
Nos escritos de Anjos e Moura (2020), os aspectos técnicos para avaliação da qualidade do
produto de software estão alicerçados em três Normas:
ISO/IEC 9126: Características de Qualidade de Software como NBR-13596;
ISO/IEC 14598: Guias para Avaliação de Produto de Software como ISO-14598;
ISO/IEC 12119: Requisitos de Qualidade e Testes de Pacotes de Software como NBR-12119.
Especi�camente, a ISO 9126 possuI um conjunto de medidas e é apresentada em 4
documentos:
ISO/IEC 9126-1:2001 – Part 1: Modelo de Qualidade;
ISO/IEC TR 9126-2:2003 – Part 2: Métricas externas;
ISO/IEC TR 9126-3:2003 – Part 3: Métricas Internas.
ISO/IEC FDTR 9126-4:2004 – Part 4: Métricas de qualidade em uso
Leitura 
Nosso intuito, é que você conheça como elas são e como aplicá-las, é
um texto curto, mas de grande relevância, por isso é importante que
você leia como parte desTa unidade a seguinte leitura: 
ANJOS, L. A. M.; MOURA, H. P. Um Modelo para Avaliação de Produtos
de Software. 2020. Disponível em:
DOCPLAYER
https://docplayer.com.br/
Mas como garantir a qualidade?
A garantia de qualidade de software – SQA: Software Quality Assurance é um processo que
garante que todos os processos, métodos, atividades e itens de trabalho da engenharia de
software sejam monitorados e cumpram os padrões de�nidos.
O SQA incorpora todos os processos de desenvolvimento de software, desde a de�nição dos
requisitos até a codi�cação até o lançamento. Seu principal objetivo é garantir a qualidade.
Planejamento é tudo, por isso precisamos do plano de garantia de qualidade de software,
exatamente porque ele compreende os procedimentos, técnicas e ferramentas que são
empregadas para garantir que um produto ou serviço esteja alinhado com os requisitos
de�nidos na especi�cação de requisito de software. Ele identi�ca as responsabilidades da
equipe responsável pelo SQA, lista as áreas que precisam ser revisadas e auditadas, também
identi�ca os produtos de trabalho da qualidade.
Um Modelo para Avaliação de Produtos de
Software - PDF Download grátis
1 Um Modelo para Avaliação de Produtos de Software Lúcio André Mendonça
dos Anjos, Hermano Perrelli de Moura Centro de Informática - Universidade
Federal de Pernambuco (UFPE) Caixa Postal Recife PE Brazil Abstract. This
paper proposes a new evaluation model for software products, based on ISO
standards, standard software products evaluation process and usual
evaluation model of the market of software.
LEIA MAIS DOCPLAYER 
https://docplayer.com.br/2862875-Um-modelo-para-avaliacao-de-produtos-de-software.html
https://docplayer.com.br/2862875-Um-modelo-para-avaliacao-de-produtos-de-software.html
https://docplayer.com.br/2862875-Um-modelo-para-avaliacao-de-produtos-de-software.html
 O documento do SQA consiste nos seguintes itens:
Seção de propósito;
Seção de referência;
Seção de gerenciamento de con�guração de software;
Relatório de problemas e seção de ação corretiva;
Seção de ferramentas, tecnologias e metodologias;
Seção de controle de código;
Registros: seção de coleta, manutenção e retenção;
Metodologia de teste.
 Como podemos garantir a qualidade usando o SQA? Numa sequência de etapas:
“Criação de um Plano de Gerenciamento SQA: A atividade principal inclui estabelecer um plano
adequado sobre como o SQA será executado em seu projeto. Junto com a abordagem de SQA
que você vai seguir, quais atividades de engenharia serão realizadas, e inclui a garantia de que
você tenha uma combinação certa de talentos em sua equipe.
De�nir os pontos de veri�cação: A equipe SQA estabelece diferentes pontos de veri�cação de
acordo com os quais avalia a qualidade das atividades do projeto em cada ponto de
veri�cação/estágio do projeto. Isso garante inspeção de qualidade regular e funcionamento de
acordo com o cronograma.
Aplicar técnicas de engenharia de software: A aplicação de algumas técnicas de engenharia de
software ajuda um designer de software a obter especi�cações de alta qualidade. Para coletar
informações, um designer pode usar técnicas como entrevistas e FAST (Functional Analysis
System Technique). Posteriormente, com base nas informações coletadas, o designer de
software pode preparar a estimativa do projeto usando técnicas como WBS (estrutura analítica
do projeto), SLOC (linha de código de origem) e estimativa de FP (pontos de função).
Execução de revisões técnicas formais: Uma RTF é feito para avaliar a qualidade e o design do
protótipo. Nesse processo, é realizada uma reunião com a equipe técnica para discutir os reais
requisitos de qualidade do software e a qualidade do projeto do protótipo. Essa atividade ajuda
a detectar erros na fase inicial do SDLC e reduz o esforço de retrabalho nas fases posteriores.
Ter uma estratégia de multitestes: Por estratégia de multitestes, queremos dizer que não se
deve con�ar em nenhuma abordagem de teste única; em vez disso, vários tipos de teste
devem ser realizados para que o produto de software possa ser bem testado de todos os
ângulos para garantir melhor qualidade.
Reforçando a adesão ao processo: Esta atividade insiste na necessidade de aderência ao
processo durante o processo de desenvolvimento de software. O processo de desenvolvimento
também deve seguir os procedimentos de�nidos. Esta atividade é uma mistura de duas
subatividades que são explicadas em detalhes a seguir:
Avaliação do Produto: Esta atividade con�rma que o produto desoftware está
atendendo aos requisitos descobertos no plano de gerenciamento do projeto. Ele
garante que os padrões de�nidos para o projeto sejam seguidos corretamente;
Monitoramento de Processo: Esta atividade veri�ca se as etapas corretas foram
realizadas durante o desenvolvimento do software. Isso é feito comparando as
etapas realmente executadas com as etapas documentadas.
Mudança de controle: Nesta atividade, usamos uma combinação de procedimentos manuais e
ferramentas automatizadas para ter um mecanismo de controle de alterações. Ao validar as
solicitações de mudança, avaliando a natureza da mudança e controlando o efeito da mudança,
é garantido que a qualidade do software seja mantida durante as fases de desenvolvimento e
manutenção.
Medir o impacto da mudança: Se qualquer defeito for relatado pela equipe de SQA, a equipe em
questão corrigirá o defeito. Depois disso, a equipe de SQA deve determinar o impacto da
mudança trazida por essa correção de defeito. Eles precisam testar não apenas se a mudança
corrigiu o defeito, mas também se a mudança é compatível com todo o projeto. Para isso,
utilizamos métricas de qualidade de software que permitem aos gerentes e desenvolvedores
observar as atividades e mudanças propostas desde o início até o �nal do SDLC e iniciar ações
corretivas sempre que necessário.
Para que a SQA seja realizada, levamos em consideração 10 elementos, a saber: 
Padrões de engenharia de software;
Revisões técnicas e auditorias;
Teste de software para controle de qualidade;
Coleta e análise de erros;
Mudar a gestão;
Programas educacionais;
Gestão de fornecedores;
Gerenciamento de segurança;
Segurança;
Gerenciamento de riscos.
- STH, 2021, p. 6-7
Realização de auditorias SQA: A auditoria SQA inspeciona todo o processo SDLC real seguido
por compará-lo com o processo estabelecido. Também veri�ca se o que foi relatado pela
equipe nos relatórios de status foi realmente executado ou não. Esta atividade também expõe
quaisquer problemas de não conformidade.
Manutenção de registros e relatórios: É crucial manter a documentação necessária relacionada
ao SQA e compartilhar as informações necessárias do SQA com as partes interessadas. Os
resultados dos testes, resultados da auditoria, relatórios de revisão, documentação de
solicitações de mudança etc. devem ser mantidos para referência futura.
Gerenciar boas relações: Na verdade, é muito importante manter a harmonia entre o controle
de qualidade e a equipe de desenvolvimento. Frequentemente ouvimos que testadores e
desenvolvedores geralmente se sentem superiores uns aos outros. Isso deve ser evitado, pois
pode afetar a qualidade geral do projeto.”
 Além de todos os tipos de teste e auditorias, temos a �gura de garantia da qualidade chamada
inspeção de projeto de software e ela leva em consideração:
Requisitos gerais e design;
Especi�cações funcionais e de interface;
Convenções;
Rastreabilidade de requisitos;
Estruturas e interfaces;
Lógica;
Desempenho;
Tratamento e recuperação de erros;
Testabilidade, extensibilidade;
Acoplamento e coesão.
 É aqui que voltamos ao nosso ponto de páginas anteriores de nossa disciplina onde foi
escrito que há necessidade cada vez maior de documentação de software, essencial e
necessária.
Porque:
Os softwares estão cada vez mais complexos;
Os softwares não são feitos por uma só pessoa, mas diversas pessoas;
Os softwares não são mais desenvolvidos somente em seu país de origem, mas em
fábricas de software em locais muito distantes, muitas vezes, em outros continentes.
Como há múltiplas pessoas de locais e países diferentes falando idiomas diferentes, é
óbvio que devemos usar e dominar, por exemplo, a linguagem universal de especi�cação
e nesse caso é a UML.
Entende como a falácia da não necessidade de documentação, principalmente em métodos
ágeis, leva uma empresa ou um projeto de software à ruína ou então caso o software entre em
produção à perda de histórico e consequentemente a memória?
Essa é a importância da documentação!
Já imaginou você recebendo uma visita de seu cliente e ele pede os itens da listagem de 10
itens acima e você talvez, por sorte, tenha uma ou outra? Pois bem, você acabou de colocar o
contrato em risco.
Se você trabalha para uma organização que produz software, a qualidade do software que você
produz pode determinar algumas coisas importantes:
A receita da empresa para a qual você trabalha;
A prioridade do projeto ou produto no qual você está trabalhando dentro da organização;
A probabilidade de você ser promovido a um cargo sênior, rebaixado ou até demitido;
Seu salário.
Por �m, eis alguns exemplos atributos e métricas para qualidade e de que forma você pode
medi-la em um projeto de software. Nesse caso, dois aspectos que pesam muito para os
usuários (Con�abilidade e Desempenho):
Con�abilidade: ela é importante para reduzir e prevenir avarias ou interrupções graves e erros
que podem afetar os usuários e diminuir a sua satisfação. O software é melhor se falhar com
menos frequência e se recupera facilmente da falha quando ela acontece. Percebeu que
usamos o termo “falhar com menos frequência”? Sim, porque ele vai falhar! Como você pode
medir a con�abilidade?
Incidentes de produção: uma boa medida da con�abilidade de um sistema é o número de
bugs de alta prioridade identi�cados na produção;
Teste de con�abilidade: os tipos comuns de teste de con�abilidade são o teste de carga,
que veri�ca como o software funciona sob altas cargas, e o teste de regressão, que
veri�ca quantos novos defeitos são introduzidos quando o software passa por alterações.
Os resultados agregados desses testes ao longo do tempo podem ser uma medida da
resiliência do software;
Avaliação de con�abilidade: um teste aprofundado conduzido por especialistas que
constroem um ambiente operacional simulando o ambiente real no qual o software será
executado. Nesse ambiente simulado, eles testam como o software funciona em um
estado estável e com certo crescimento esperado (por exemplo, mais usuários ou maior
rendimento);
Taxa média de falha: mede o número médio de falhas por período, por unidade
implantada ou usuário do software;
Tempo médio entre falhas: uma métrica usada para medir o tempo de atividade ou a
quantidade de tempo que o software deve funcionar corretamente até a próxima falha
principal.
Desempenho: esse aspecto é conhecido como e�ciência. Normalmente, os elementos mais
importantes que contribuem para o desempenho de um aplicativo são como seu código-fonte
é escrito, sua arquitetura de software e os componentes dentro dessa arquitetura: bancos de
dados, servidores web etc. A escalabilidade também é fundamental para o desempenho:
sistemas que podem ser escalados para cima e para baixo podem se adaptar a diferentes níveis
de desempenho exigido. O desempenho é especialmente importante em campos, como
processamento algorítmico ou transacional, onde grandes quantidades de dados precisam ser
processadas muito rapidamente e até mesmo uma pequena latência pode causar problemas
signi�cativos. Mas hoje o desempenho está se tornando universalmente importante, pois os
usuários de aplicativos móveis e da web exigem alto desempenho e �cam rapidamente
frustrados se um sistema não responde rapidamente. Como você pode medir o desempenho?
Teste de carga: conduzido para entender o comportamento do sistema sob uma determinada
carga, por exemplo, com 1.000 usuários simultâneos.
Teste de estresse: compreender o limite superior de capacidade do sistema.
Teste de absorção: veri�ca se o sistema pode suportar uma determinada carga por um período
prolongado e quando o desempenho começa a diminuir.
Monitoramento de desempenho de aplicativos: esta é uma nova categoria de software que pode
fornecer métricas detalhadas de desempenho da perspectiva do usuário.
Indicações para saber mais sobre os assuntos abordados
nesta Unidade:
Sites
Técnicas de VV&T – Validação, Veri�cação e Teste 
Vamos apresentar os principais conceitosrelacionados à atividade de VV&T – Validação,
Veri�cação e Teste – enfatizando as técnicas de Leitura de Código, Teste Funcional, Teste
Estrutural e Baseada em Erros. 
FELIZARDO, K. R. Técnicas de VV&T - Validação, Veri�cação e Teste. 2012. Disponível em: 
2 / 3
Material Complementar
LINHADECODIGO
Técnicas de VV&T - Validação, Veri�cação e Teste
1 INTRODUÇÃO Engenheiros de software buscam qualidade (e desenvolvem
atividades de garantia de qualidade e de controle de qualidade) aplicando
métodos e medidas técnicas sólidas, conduzindo revisões técnicas formais e
efetuando teste de software bem planejado [Pressman, 2002]. A de�nição de
VV&T - Validação, Veri�cação e Teste - abrange muitas das atividades
relacionadas com a Garantia da Qualidade de Software, ou GQS.
LEIA MAIS LINHADECODIGO 
http://www.linhadecodigo.com.br/
http://www.linhadecodigo.com.br/artigo/492/tecnicas-de-vvampt-validacao-verificacao-e-teste.aspx
http://www.linhadecodigo.com.br/artigo/492/tecnicas-de-vvampt-validacao-verificacao-e-teste.aspx
http://www.linhadecodigo.com.br/artigo/492/tecnicas-de-vvampt-validacao-verificacao-e-teste.aspx
Vídeos
Software Testing Explained: How QA is Done Today 
Historicamente, o teste não era uma prioridade. Que tal hoje? Os testes tornaram-se mais do
que uma tarefa rotineira, merecendo o título de Garantia da Qualidade, que também abrange
planejamento, monitoramento e controle. E quanto às áreas de crescimento mais rápido em
controle de qualidade hoje?
Teste de Software – Plano de Teste
YOUTUBE
Software Testing Explained: How QA is Done Today
Historically, testing hadn't been a priority.In the 1960s, IBM introduced System/360, a
legendary mainframe computer built speci�cally to be modular and com...
VEJA EM YOUTUBE 
Software Testing Explained: How QA is Done Today
https://www.youtube.com/
https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FoLc9gVM8FBM%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DoLc9gVM8FBM&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FoLc9gVM8FBM%2Fhqdefault.jpg&key=40cb30655a7f4a46adaaf18efb05db21&type=text%2Fhtml&schema=youtube
https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FoLc9gVM8FBM%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DoLc9gVM8FBM&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FoLc9gVM8FBM%2Fhqdefault.jpg&key=40cb30655a7f4a46adaaf18efb05db21&type=text%2Fhtml&schema=youtube
https://www.youtube.com/watch?v=oLc9gVM8FBM
[Web.br 2016] Behaviour Driven Development, e eu com isso? 
Promovida pelo escritório brasileiro do World Wide Web Consortium (W3C Brasil) e realizada pelo
Núcleo de Informação e Coordenação do Ponto BR (NIC.br), a Conferência Web.br 2016
ocorreu em São Paulo, nos dias 13 e 14 de outubro, no Centro de Convenções Rebouças, sob a
temática Internet das Coisas na Web (IoTw). NICBRVIDEOS.
YOUTUBE
Teste de Software - Plano de Teste
Teste de Software - Plano de Teste
VEJA EM YOUTUBE 
Teste de Software - Plano de Teste
YOUTUBE
[Web.br 2016] Behaviour Driven Development, e eu com is…
http://youtube.com/
https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FoMzCQkPN3Ug&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DoMzCQkPN3Ug&image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FoMzCQkPN3Ug%2Fhqdefault.jpg&key=40cb30655a7f4a46adaaf18efb05db21&type=text%2Fhtml&schema=youtube
https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FoMzCQkPN3Ug&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DoMzCQkPN3Ug&image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FoMzCQkPN3Ug%2Fhqdefault.jpg&key=40cb30655a7f4a46adaaf18efb05db21&type=text%2Fhtml&schema=youtube
https://www.youtube.com/watch?v=oMzCQkPN3Ug
https://www.youtube.com/
https://www.youtube.com/watch?v=xpYe7Nj_gAY
[Web.br 2016] Behaviour Driven Development, e
eu com isso?
Palestra "Behaviour Driven Development, e eu com isso?" com Glaucimar
Aguiar.Promovida pelo escritório brasileiro do World Wide Web Consortium
(W3C Brasil) e...
VEJA EM YOUTUBE 
https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FxpYe7Nj_gAY%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DxpYe7Nj_gAY&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FxpYe7Nj_gAY%2Fhqdefault.jpg&key=40cb30655a7f4a46adaaf18efb05db21&type=text%2Fhtml&schema=youtube
https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FxpYe7Nj_gAY%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DxpYe7Nj_gAY&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FxpYe7Nj_gAY%2Fhqdefault.jpg&key=40cb30655a7f4a46adaaf18efb05db21&type=text%2Fhtml&schema=youtube
3 / 3
Referências
ANJOS, L. A. M.; MOURA, H. P. Um Modelo para Avaliação de Produtos
de Software. 2020. Disponível em:
<https://www.cin.ufpe.br/hermano/laps/download/laps-um-modelo-
para-avaliacao-de-produtos-de-software.pdf>. Acesso em: 29/03/2021.
FOWLER, M. Teste de Integração. 2018. Disponível em:
<https://martinfowler.com/bliki/IntegrationTest.html>. Acesso em:
29/03/2021.
 STH. O Que é Software Quality Assurance (SQA). 2021. Disponível em:
<https://www.softwaretestinghelp.com/software-quality-assurance/>
Acesso em: 29/03/2021.
 THAKUR, D. Planejamento de Projetos em Engenharia de Software.
2018. Disponível em: <https://ecomputernotes.com/software-
engineering/project-planning> Acesso em: 29/03/2021.
 RUGGIERI, R. Análise sobre a ISSO 9126 – NBR 13596. 2016. Disponível
em: <https://www.tiespecialistas.com.br/analise-sobre-iso-9126-nbr-
13596/>  Acesso em: 29/03/202

Mais conteúdos dessa disciplina