WBA0881_V2.
TESTE E INSPEÇÃO DE SOFTWARE:
TÉCNICAS E AUTOMATIZAÇÃO
2
Luís Otávio Toledo Perin
TESTE E INSPEÇÃO DE SOFTWARE: TÉCNICAS E
AUTOMATIZAÇÃO
1ª edição
Londrina
Editora e Distribuidora Educacional S.A.
2024
3
© 2024 por Editora e Distribuidora Educacional S.A.
Todos os direitos reservados. Nenhuma parte desta publicação poderá ser reproduzida ou transmitida de qualquer
modo ou por qualquer outro meio, eletrônico ou mecânico, incluindo fotocópia, gravação ou qualquer outro tipo
de sistema de armazenamento e transmissão de informação, sem prévia autorização, por escrito, da Editora e
Distribuidora Educacional S.A.
Diretora Sr. de Pós-graduação & OPM
Silvia Rodrigues Cima Bizatto
Conselho Acadêmico
Alessandra Cristina Fahl
Ana Carolina Gulelmo Staut
Camila Braga de Oliveira Higa
Camila Turchetti Bacan Gabiatti
Giani Vendramel de Oliveira
Gislaine Denisale Ferreira
Henrique Salustiano Silva
Juliana Schiavetto Dauricio
Juliane Raniro Hehl
Mariana Gerardi Mello
Nirse Ruscheinsky Breternitz
Coordenador
Juliana Schiavetto Dauricio
Revisor
Anderson Emidio de Macedo Gonçalves
Editorial
Beatriz Meloni Montefusco
Márcia Regina Silva
Paola Andressa Machado Leal
Rosana Silverio Siqueira
Dados Internacionais de Catalogação na Publicação (CIP)
_____________________________________________________________________________
Perin, Luís Otávio Toledo
P445t Teste e inspeção de software: técnicas e automatização
/ Luís Otávio Toledo Perin. – Londrina: Editora e
Distribuidora Educacional S.A., 2024.
32 p.
ISBN 978-65-5903-765-0
1. Cobertura de código. 2. Mocking. 3. Testes. I. Título.
CDD 005.14
_______________________________________________________________________________________
Evelyn Moraes – CRB 8/010289
2024
Editora e Distribuidora Educacional S.A.
Avenida Paris, 675 – Parque Residencial João Piza
CEP: 86041-100 — Londrina — PR
Homepage: [Link]
4
TESTE E INSPEÇÃO DE SOFTWARE: TÉCNICAS E
AUTOMATIZAÇÃO
SUMÁRIO
Apresentação da disciplina ___________________________________ 05
Conceituando Teste e Inspeção de Software __________________ 07
Técnicas de Teste de Software ________________________________ 19
Técnicas de Inspeção de Software ____________________________ 31
Processos e Casos de Testes automatizados _________________ 43
5
Apresentação da disciplina
Seja bem-vindo(a) à disciplina Teste e inspeção de software: técnicas e
automatização.
O curso é de extrema importância para sua formação como profissional
de tecnologia ou de áreas afins, e aborda conceitos de teste e inspeção
de software, que visam garantir a qualidade, a confiabilidade e a
segurança das soluções de software que se tornam cada vez mais
complexas e presentes em todas as atividades que realizamos.
Você provavelmente deve ter percebido como utilizamos as tecnologias
em praticamente todos os momentos de nossa vida, não é mesmo?
Tudo está interrelacionado e conectado, fazendo com que haja uma
exigência por software cada vez mais robusto, preciso e que apresente
menos problema possível. Dessa forma, essa demanda recai sobre a
indústria de software, que precisa utilizar inúmeras técnicas e práticas
de trabalho para evitar problemas no produto e satisfazer seu usuário.
Pois bem, depois dessa pequena introdução ao tema, acreditamos que
você tenha ficado empolgado e queira aprender mais, certo? Que bom!
Aproveite, pois este é um momento ímpar para você aprofundar seus
conhecimentos e buscar o que existe de mais atual em nosso meio.
Ao todo, você verá quatro conteúdos programáticos fascinantes, e cada
um abordará temas de relevância para a nossa era tecnológica. No
primeiro tema, vamos compreender o conceito de teste e inspeção de
software, apresentando seu significado e importância para a construção
do produto software, além de identificar suas diferenças, vantagens e
desvantagens.
6
No segundo conteúdo, as técnicas de teste de software serão o assunto,
e exploraremos as diferentes técnicas do mercado, além da sua correta
aplicação em cada etapa do desenvolvimento. Por fim, identificaremos
as particularidades e benefícios de cada uma das técnicas.
Para o terceiro conteúdo, o conceito de técnicas de inspeção de software
será trabalhado, assim como suas diferentes técnicas, apresentando, ao
final, as ferramentas de apoio para inspeção do software.
Por fim, o quarto conteúdo contempla os processos e casos de testes
automatizados, e veremos a aplicabilidade dos processos e as principais
ferramentas para que as atividades possam ser executadas.
Viu como tudo é interessante e atual? Você, não perde por esperar,
porque tudo foi desenvolvido pensando em você estudante! A disciplina
foi estruturada em formato dinâmico, com leituras digitais, aulas
gravadas com slides e dicas de leituras, enfim, uma gama de objetos de
aprendizagem diferenciados que tornarão seus estudos cada vez mais
agradáveis.
Bons estudos!
7
Conceituando Teste e Inspeção de
Software
Autoria: Luís Otávio Toledo Perin
Leitura crítica: Anderson da Silva Marcolino
Objetivos
• Compreender os conceitos fundamentais de teste e
inspeção de software.
• Identificar as vantagens e desvantagens na aplicação
de testes e inspeções de software.
• Reconhecer a importância dos testes e inspeção de
software no processo de desenvolvimento.
8
1. Introdução
O assunto tratado neste tema será o conceito de teste e inspeção
de software, que abordará sua evolução nesta fascinante leitura que
você está prestes a fazer. Então, fique ligado e não perca nenhum dos
próximos parágrafos. Vamos juntos!
A prática de teste e inspeção de software é essencial para garantir a
qualidade e confiabilidade de sistemas complexos e cada vez mais
integrados ao cotidiano. Hoje tudo está conectado, não é mesmo? A
inspeção de software tem o objetivo de detectar defeitos nas fases
iniciais do desenvolvimento, enquanto os testes asseguram que o
produto atenda aos requisitos e as expectativas do usuário. Tudo esse
processo torna-se indispensável para as equipes de desenvolvimento,
promovendo o aperfeiçoamento contínuo e melhor qualidade do
produto lógico, o software.
Compreender as vantagens e desvantagens da aplicação de testes
e inspeções é essencial para um planejamento adequado durante o
processo de desenvolvimento. A combinação de métodos de inspeção
e testes é uma das abordagens mais eficazes para prevenir erros
de desempenho e a experiência do usuário. Desse modo, explorar
essa abordagem possibilita uma visão ampla sobre a aplicabilidade e
limitações de cada método.
Importante ressaltar que os testes e inspeções de software atendem
a um mercado cada vez mais exigente e orientado à qualidade. Com
o crescimento da transformação digital, da utilização de aplicativos
e plataformas digitais no dia a dia das pessoas, a necessidade por
softwares robustos e seguros está elevada. Assim, este é um pilar
indispensável para garantir a integridade, a segurança e a performance
dos sistemas, sendo diferenciais competitivos e estratégicos para
empresas de todos os setores.
9
Por fim, utilizar técnicas de inspeção e testes durante o processo de
desenvolvimento influencia a qualidade e a satisfação do usuário.
Com a correta aplicação, essas práticas não só contribuem para a
redução de falhas, mas também para a melhoria contínua do software,
acompanhando as necessidades do mercado.
E aí, gostou do que leu até agora? Para os próximos capítulos trataremos
mais a fundo e teste e a inspeção de software, além de relacionar sua
importância ao processo de desenvolvimento. Por isso, não perca!
1. Conceito e teste e inspeção de software,
causas de defeito e o analista de teste
Quando falamos em qualidade de um produto, alguns processos
durante a sua concepção são lembrados, como é o caso do teste
e inspeção, neste caso de software. Mas o que eles realmente
representam antes, durante e após o processo de criação? Tudo isso e
muito mais será explorado nesta seção.
Durante o desenvolvimento do produto software, é necessário rever se
tudo aquilo que foi criado está realmente correto. Com isso, os testes de
software são fundamentais no processo de desenvolvimento, garantindo
que o produto atenda aos requisitos e funcione conforme o esperado.
Para Polo (2020), “Testes de software têm a finalidade de assegurar
que um programa atende às necessidades dos seus usuários, como
também servem para descobrir defeitos em seu funcionamento antes
de disponibilizá-lo para usos”. Ou seja, testar software é o processo
de verificar se os resultados de uma aplicação correspondem aos
resultados esperados em diversos cenários, assegurando que o software
esteja livre de defeitos, que são imperfeições no código ou nos artefatos
do software, ou falhas – que é a manifestação de um defeito quando o
10
sistema é executado, causando uma diferença entre o comportamento
esperado e o que realmente está acontecendo – que possam impactar
sua utilização.
Quando falamos na forma como eles podem ser testados, existem
os testes manuais ou automatizados, empregados para identificar
problemas desde a fase inicial, ou seja, a análise e planejamento do
projeto, até a entrega do produto ao cliente. Esse processo é destinado
à verificação de funcionalidades até o desempenho do software em
condições variadas, passando por diversos casos de teste, que são
cenários de uso, similares ou não ao uso real, pelo usuário (Delamaro;
Jino; Maldonado, 2016).
Ao tratar de inspeção de software, temos um método de verificação que
ocorre antes da execução do código, buscando identificar defeitos logo
nas fases iniciais do desenvolvimento. De acordo com Delamaro, Jino
e Maldonado (2016), a inspeção é uma revisão detalhada de artefatos
de software, que são os documentos criados durante o processo, como
documentos de requisitos, especificações técnicas e código-fonte, com
o objetivo de encontrar defeitos que possam ser corrigidos antes da
etapa do desenvolvimento. A inspeção se caracteriza por uma análise
minuciosa e colaborativa, com diferentes membros da equipe de
desenvolvimento.
Diante do que vimos, você entende a diferença entre teste e inspeção
de software? Pois bem, a principal diferença entre teste e inspeção de
software está na fase em que cada processo é aplicado e na forma como
são esses processos são realizados. Os testes ocorrem diretamente no
software em execução para avaliar seu comportamento e desempenho
em condições reais. A inspeção, por sua vez, ocorre antes da execução
e é focada na revisão de documentos e códigos, identificando erros em
artefatos ainda sem relação direta com o desenvolvimento da aplicação
(Félix, 2016).
11
Essa separação é importante, pois a inspeção permite que os erros
sejam detectados com antecedência, enquanto os testes verificam se o
software está funcionando conforme o esperado. Entendido?
Importante mencionar que os testes de software englobam atividades
de verificação e validação, ou VV, e estão associados a diversas técnicas,
como testes de unidade, integração, sistema e aceitação. A verificação
busca garantir que o software seja desenvolvido de acordo com as
especificações, enquanto a validação confirma se o software atende aos
requisitos do usuário (Delamaro; Jino; Maldonado, 2016).
2.2 Causas de defeito e o analista de teste
Os defeitos no software podem ocorrer por diversos motivos, sendo
as principais causas falhas de comunicação entre os membros da
equipe, interpretações incorretas dos requisitos e erros humanos na
codificação, por exemplo. Tais defeitos podem impactar negativamente
a funcionalidade do produto, além da confiabilidade, segurança e o
desempenho geral do sistema (Félix, 2016).
Revisar constantemente o software, por meio de inspeções e testes,
permite a identificação e correção de problemas ainda em estágio inicial,
favorecendo e minimizando os impactos que poderiam ocorrer caso
fossem descobertos apenas na fase de produção.
Um agente fundamental para que todo esse processo ocorra é o analista
de teste, que tem a função de assegurar a qualidade do software.
Esse profissional realiza verificações de funcionalidade, performance
e segurança, reportando erros e colaborando com a equipe de
desenvolvimento para que correções sejam aplicadas. Conforme Félix
(2016), o analista de teste atua como um “guardião” da qualidade, sendo
responsável pela implementação de métodos e estratégias de teste
para redução do risco de falhas, assegurando a entrega de um software
confiável e funcional.
12
A importância do analista de teste no mercado de tecnologia é cada vez
mais evidente, pois a demanda por produtos de software confiáveis
e seguros está em alta, o que exige mais da profissão. O profissional
especialista em teste e inspeção de software encontrará um mercado
aquecido, impulsionado pela transformação digital e pela exigência
de softwares de alta qualidade, em diferentes áreas, como bancos,
comércio eletrônico e telecomunicações.
Para Pressman (2016), o analista de teste é fundamental não apenas
na detecção de defeitos, mas também na construção de processos e
padrões que garantem a eficiência e a segurança dos sistemas. Este
papel é visto como estratégico, pois a qualidade do software reflete
diretamente na satisfação do cliente e na reputação das empresas no
mercado, o que está diretamente relacionado à sua permanência ou
não nos serviços prestados. Deste modo, a busca por profissionais
capacitados em automatização e ferramentas avançadas de teste coloca
o analista de teste em posição valorizada, sendo uma carreira com
grande potencial de crescimento e oportunidades.
Por fim, podemos compreender nesta leitura que testes e inspeções
são processos complementares, e quando aplicados de forma conjunta
contribuem para a construção de softwares de alta qualidade. Com o
uso dessas técnicas, é possível a criação de sistemas mais confiáveis
e seguros, beneficiando os desenvolvedores e o usuário, pois com
menor correção de problemas, o tempo pode ser direcionado para
aperfeiçoamento ou criação de novos produtos, por exemplo.
2. Vantagens e desvantagens em testes e
inspeções de software
Importante mencionar que softwares de qualidade, ou seja, aqueles
bem construídos, devem ter passado, no decorrer de seu processo de
13
desenvolvimento, por técnicas de testes e inspeções, oferecendo uma
abordagem sistemática para a detecção e correção de falhas antes
que o produto chegue ao usuário. Para Pressman (2016), a prática de
testes e inspeções ajuda a assegurar que o software funcione conforme
o planejado e que os requisitos sejam devidamente atendidos. Essa
prática é de extrema importância, pois os sistemas precisam lidar com
demandas cada vez mais complexas, o que reflete a demanda por
qualidade, confiabilidade e segurança.
Em relação aos benefícios dos testes e inspeções de software, podemos
citar como principal a capacidade de prevenir defeitos críticos e de
reduzir o risco de falhas durante o uso do sistema. De acordo com
Santos e Oliveira (2017), ao identificar problemas ainda nas fases iniciais,
esses métodos de verificação e testagem evitam que erros prossigam
para as demais etapas, nas quais o custo de correção é muito maior.
Com isso, o desenvolvimento torna-se mais eficiente e assertivo,
favorecendo a entrega de um produto mais seguro, robusto e com
menor chance de gerar falhas.
Outro ponto positivo em relação às vantagens dos testes e inspeções
de software é a melhoria da qualidade e a redução de custos a longo
prazo, já que problemas graves são corrigidos previamente. Segundo
Félix (2016), uma estratégia bem estruturada de testes e inspeções reduz
significativamente o número de defeitos em produção e aumenta a
satisfação do usuário, que é o maior afetado em todo esse processo.
Sabendo das vantagens, e sendo elas bem atrativas, devemos considerar
também algumas limitações, algo absolutamente normal em um
processo, pois mesmo que tudo seja bom e atrativo, sempre haverá
algum fator menos positivo e que deve ser considerado.
Em relação aos testes, um dos principais desafios é o custo e o tempo de
execução do processo, especialmente quando são necessários testes em
14
múltiplas fases e ambientes, o que pode trazer algumas dificuldades ao
projeto. De acordo com Aniche (2015), a automatização pode reduzir o
tempo, mas o investimento inicial em ferramentas e treinamento ainda
representa uma barreira para algumas empresas.
As inspeções, que demandam revisão detalhada e manual, exigem a
dedicação de profissionais especializados e podem não captar todos
os problemas de performance ou usabilidade, sendo estes revelados
apenas em condições reais de uso, ou seja, no dia a dia do usuário.
Concluindo, os testes e inspeções de software são ferramentas valiosas
para o desenvolvimento do projeto. Devem ser usados e implicam
diretamente o sucesso do projeto. Entretanto, seu uso deve ser
planejado e executado de maneira equilibrada, garantindo um melhor
aproveitamento de todas as possibilidades do projeto. Eles promovem
uma qualidade no produto e minimizam os riscos de falhas, assegurando
que o objeto atenda às expectativas do cliente e do usuário.
Gostou do que leu até agora? Interessante, não é? Pois bem, não saia daí
porque ainda tem muita coisa boa por vir!
3. Importância no processo de
desenvolvimento
Na engenharia de software, o processo de desenvolvimento e a construção
do software são pontos de extrema importância e fundamentais para
o sucesso do produto. Os testes e inspeções ao longo desse processo
desempenham um papel essencial na construção de produtos com
qualidade, que atendam às expectativas dos usuários, ou seja, que
os requisitos solicitados sejam contemplados. Para Delamaro, Jino e
Maldonado (2016), o uso dessas práticas é determinante para identificar
erros e evitar problemas que possam comprometer a funcionalidade
15
ou a segurança dos sistemas. Além de garantir que o software funcione
corretamente, esse processo contribui para a entrega de um produto mais
confiável, elevando o nível de satisfação e confiança do usuário.
No ciclo de desenvolvimento de software, as etapas de testes e
inspeções são distribuídas em diferentes fases, começando pela
verificação inicial de requisitos e especificações. Aniche (2015) destaca
que a inspeção é comum nas fases de planejamento e codificação, em
que problemas podem ser detectados antes mesmo da execução do
código, o que é positivo do ponto de vista financeiro, pois haverá menos
retrabalho e horas de programação. Em seguida, os testes ocorrem
na fase de construção e integração, e durante a validação, quando o
software é colocado em ambientes que simulam condições reais de uso,
permitindo verificar se o produto atende aos requisitos estabelecidos.
Quanto aos desenvolvedores e toda a equipe envolvida, a utilização de
testes e inspeções traz inúmeras vantagens, como a possibilidade de
detectar e corrigir erros de forma antecipada, o que resulta na economia
de tempo, de recurso financeiro e mão de obra ao longo do projeto.
As inspeções contribuem para um desenvolvimento mais assertivo,
evitando retrabalhos e atrasos causados por falhas que poderiam ter sido
evitadas desde o início, mas que foram detectadas em uma inspeção.
Para Félix (2016), com uma estratégia de verificação bem trabalhada, as
equipes conseguem se concentrar em entregar valor aos usuários, sem a
necessidade de interromper o projeto para corrigir defeitos inesperados.
A utilização dos testes e inspeções também gera benefícios para
o usuário, que se depara com um software mais estável, seguro e
funcional, já que tudo foi testado e inspecionado anteriormente ao seu
uso comercial. De acordo com Pressman (2016), um sistema que passa
por testes rigorosos e inspeções regulares oferece uma experiência mais
satisfatória e reduz o risco de falhas, tornando seu uso mais agradável.
Além disso, a implementação de testes de usabilidade permite que
16
o software seja ajustado para melhor atender às necessidades dos
usuários, garantindo uma interação entre as partes, tornando o
processo eficaz e com um tempo de resposta menor.
Os processos de verificação e inspeção promovem, em toda a equipe
envolvida, uma cultura de qualidade e preocupação com o produto a
ser entregue, garantindo que o processo de melhoria contínua possa se
estabelecer e se torne uma prática corriqueira. Santos e Oliveira (2017)
corroboram com isso e mencionam que uma equipe alinhada a essas
práticas tende a evoluir suas habilidades técnicas e seu conhecimento
sobre o produto, refletindo na capacidade de antecipar problemas e
de criar soluções mais inovadoras e confiáveis para os usuários, com a
garantia da qualidade.
Contudo, a importância dos testes e inspeções no desenvolvimento de
software vai além da simples detecção de erros, ou seja, eles asseguram
a entrega de produtos de alta qualidade que realmente agregam valor
ao usuário.
Pois bem, estudante, chegamos ao final de nosso conteúdo. Foi muito
bom estar contigo! Você pode entender que os testes e a inspeção
de software representam práticas essenciais no desenvolvimento
de sistemas, agregando valor e auxiliando na detecção de falhas,
garantindo a qualidade do produto entregue ao usuário. No decorrer
das leituras, exploramos os conceitos de teste e inspeção, destacando
suas principais diferenças e objetivos, assim como as vantagens e
desvantagens que cada método apresenta. Vimos também como o
processo de testes e inspeções se integra às etapas do desenvolvimento,
prevenindo falhas e minimizando custos a longo prazo.
Esperamos que tenha gostado de todo o conteúdo apresentado, que foi
preparado especialmente para você. Nos encontramos em uma nova
oportunidade. Até mais e bons estudos!
17
Conectando à Realidade: Exemplos Práticos
Situação: Aplicativo de delivery, testes e inspeção.
Imagine o lançamento de um aplicativo de delivery em uma grande
cidade, e qualquer falha pode resultar em pedidos atrasados ou
cobranças incorretas, afetando diretamente a experiência do usuário.
A equipe de desenvolvimento faz testes automatizados simulando
diferentes cenários, como aplicação de cupons e cálculos de frete, e
inspeciona o código para detectar possíveis vulnerabilidades e problemas
de desempenho.
Aplicabilidade:
• Os testes e inspeções permitiram que a equipe identificasse e
corrigisse problemas antes do lançamento, melhorando a eficiência
do aplicativo e garantindo uma experiência fluida para os usuários. A
prática desses processos de qualidade evita falhas críticas, reforça a
confiança dos consumidores e aumenta a competitividade do produto
no mercado, demonstrando a relevância da teoria na construção de
software confiável e de alta performance.
Referências
ANICHE, Mauricio. Testes automatizados de software: um guia prático. São Paulo,
SP: Casa do Código, 2015. E-book. Disponível em: [Link]
br. Acesso em: 18 out. 2024.
DELAMARO, Márcio; JINO, Mario; MALDONADO, José. Introdução ao teste de
software. 2 ed. Rio de Janeiro: Campus, 2016. 448p.
FÉLIX, Rafael (org.). Teste de software. São Paulo: Pearson, 2016. E-book. Disponível
em: [Link] Acesso em: 18 out. 2024.
POLO, Rodrigo Cantú. Validação e teste de software. São Paulo: Contentus, 2020.
E-book. Disponível em: [Link] Acesso em: 18 out. 2024.
18
PRESSMAN, Roger S. Engenharia de Software: uma abordagem profissional.
Tradução João Eduardo Nóbrega Tortello; revisão técnica Reginaldo Arakaki, Julio
Arakaki, Renato Manzan de Andrade. 8. ed. Porto Alegre: AMGH, 2016.
SANTOS, Luiz Diego Vidal, OLIVEIRA, Catuxe Varjão de Santana. Introdução à
garantia de qualidade de software. Timburi: Cia do eBook, 2017. 39p.
19
Técnicas de Teste de Software
Autoria: Luís Otávio Toledo Perin
Leitura crítica: Anderson da Silva Marcolino
Objetivos
• Explorar diferentes técnicas de teste de software.
• Aplicar corretamente as técnicas de teste a cada
etapa do desenvolvimento de software.
• Identificar as particularidades e benefícios de cada
técnica de teste de software.
20
1. Introdução
O assunto que será abordado neste tema versa a respeito de técnicas de
teste de software, trazendo um amplo conhecimento do assunto nesta
fascinante leitura que você está prestes a fazer. Então, fique ligado e não
perca nenhum dos próximos parágrafos. Bons estudos.
O desenvolvimento de software passa por um ciclo complexo e
dinâmico de atividades, que requer precisão e qualidade em cada etapa
para garantir um produto com garantia, estabilidade, segurança e, é
claro, qualidade. Nesse contexto, o teste de software é uma prática
fundamental para validar a funcionalidade e a confiabilidade dos
sistemas, minimizando possíveis falhas, que é a manifestação de um
defeito quando o sistema é executado, causando uma diferença entre
o comportamento esperado e o que realmente está acontecendo, que
possam comprometer a experiência do usuário ou a integridade dos
dados, que são ativos valiosos (Félix, 2016).
Esse processo engloba diversas técnicas, cada uma projetada para
detectar erros específicos e garantir que o software funcione conforme o
esperado, desde os primeiros estágios de desenvolvimento até a entrega
final. Portanto, compreender e aplicar as técnicas de teste de forma
adequada a cada etapa é essencial para assegurar um produto que
tenha qualidade, eficiência e segurança.
As técnicas de teste de software variam em abordagem e aplicabilidade,
podendo incluir testes de caixa branca, caixa preta, unitários, de
integração, de sistema e de aceitação. Mas não se preocupe, tudo isso
será visto detalhadamente mais adiante. Cada uma dessas técnicas
oferece um conjunto específico de práticas que ajudam a identificar e
corrigir diferentes tipos de falhas. A escolha de técnicas apropriadas
para cada fase de desenvolvimento é, portanto, um elemento estratégico
que pode impactar diretamente a qualidade e o custo do projeto final.
21
Aplicar as técnicas de teste adequadas em cada etapa do
desenvolvimento de software é mais do que uma boa prática; é uma
necessidade para garantir a eficiência dos processos de detecção e
correção de erros. Para Aniche (2015), os testes unitários, que focam
componentes isolados do sistema, são particularmente eficazes nas
fases iniciais do desenvolvimento, enquanto os testes de integração e de
sistema desempenham um papel crucial na fase de união de módulos
e na avaliação do produto como um todo. As técnicas adequadas
proporcionam maior controle e previsibilidade no desenvolvimento,
resultando em produtos com menor índice de defeitos e maior
aderência aos requisitos mapeados.
Por fim, as técnicas de teste de software contribuem diretamente para
a construção de produtos mais confiáveis e seguros. Além de garantir
a satisfação do cliente e a qualidade final do produto, elas minimizam
o custo associado à correção de falhas, já que corrigir problemas gera
um custo diferente em cada fase do projeto. Ao aplicar corretamente
cada técnica ao longo das etapas de desenvolvimento, a equipe de
desenvolvimento consegue garantir menos problemas e falhas ao
sistema, tornando o processo mais agradável e seguro para o usuário.
Gostou do que leu até agora? Nos próximos capítulos, trataremos mais a
fundo das técnicas de teste de software e seus benefícios. Fique tento.
2. Técnicas de teste de software
Entendemos o teste de software como um processo essencial
para a qualidade de sistemas, envolvendo a verificação e validação
dos componentes e funcionalidades, assegurando seu correto
funcionamento, conforme os requisitos estabelecidos. De acordo
com Pressman (2016), testar software envolve examinar e avaliar
um programa ou aplicativo para garantir que ele funcione conforme
22
esperado, em condições variadas, e que atenda aos padrões de
qualidade estabelecidos. Este processo é uma prática estruturada e
sistemática para minimizar riscos e prevenir defeitos, promovendo
maior confiabilidade e desempenho do produto ao usuário.
As técnicas de teste de software consistem em métodos e práticas
organizadas para avaliar cada aspecto do software, com foco em
identificar falhas antes que elas se tornem um problema para o usuário.
De acordo com Aniche (2015), tais técnicas variam entre abordagens que
examinam a lógica interna do código (testes de caixa branca) e outras
que se concentram nos resultados das entradas e saídas do sistema
(testes de caixa preta). Para Polo (2020), existem os testes de caixa cinza,
que combinam elementos das duas abordagens anteriores, permitindo
uma análise tanto interna quanto externa do software. Esse método
utiliza conhecimento parcial da estrutura interna para definir cenários
de teste mais completos, explorando tanto o comportamento quanto
a arquitetura do sistema. A Figura 1 mostra os testes de caixa preta,
branca e cinza.
Figura 1 – Testes de caixa preta, branca e cinza
Fonte: Polo (2020).
23
Cada técnica tem uma aplicação específica e deve ser escolhida conforme
a fase de desenvolvimento e os objetivos do projeto, permitindo uma
avaliação completa do software em suas diferentes camadas.
O teste unitário é uma técnica fundamental em que módulos
individuais do software são testados de forma isolada, garantindo sua
funcionalidade básica. Essa técnica é eficaz na detecção de erros nas
menores unidades do código, como funções e métodos, antes mesmo
de serem integradas ao restante do sistema (Delamaro; Jino; Maldonado,
2016). Executado geralmente pelos próprios desenvolvedores, o teste
unitário permite que falhas potenciais sejam identificadas e corrigidas
de forma rápida, reduzindo o custo de retrabalho e aumentando a
eficiência do desenvolvimento.
Outra técnica relevante é o teste de componentes, que envolve a
avaliação de um grupo de módulos relacionados, com o objetivo de
verificar a integração e a interação entre eles. Esse teste busca assegurar
que os componentes se comuniquem de maneira adequada, permitindo
o funcionamento correto do software quando seus módulos estão em
operação conjunta (Félix, 2016). O teste de componentes é uma etapa
crucial que antecede a integração total do sistema, garantindo que
partes críticas sejam avaliadas separadamente. Interessante, não é?
Por sua vez, o teste de sistema é uma técnica mais abrangente, que
avalia o software como um todo em um ambiente semelhante ao de
produção, ou seja, em uso pelo usuário. Este tipo de teste é executado
com a finalidade de verificar se o sistema atende aos requisitos e
comportamentos esperados em situações que simulam o uso real pelo
usuário (Polo, 2020). Além disso, o teste de sistema possibilita identificar
falhas que poderiam não ser detectadas em testes isolados, garantindo
uma visão completa e integrada do funcionamento do software.
O Quadro 1 exibe uma relação com as principais técnicas de testes de
software e sua descrição.
24
Quadro 1 – Principais técnicas de teste de software e suas descrições
Tipo de Teste Descrição
Testa componentes ou funções individuais do código, de
Teste Unitário forma isolada, garantindo que cada unidade funcione
corretamente. Geralmente realizado pelo desenvolvedor.
Avalia a interação entre diferentes módulos ou
Teste de Integração componentes do sistema para assegurar que eles
funcionem em conjunto, conforme o esperado.
Examina o sistema como um todo em um ambiente que
Teste de Sistema simula o real, verificando se ele atende aos requisitos
funcionais e não funcionais especificados.
Validado pelo cliente ou usuário para garantir
Teste de Aceitação que o sistema satisfaz os requisitos e é adequado
para uso em ambiente de produção.
Reavalia partes do sistema após modificações, garantindo
Teste de Regressão que novas alterações ou correções não gerem falhas
em funcionalidades já testadas e aprovadas.
Mede o desempenho do software em condições extremas
Teste de
e verifica sua resposta, estabilidade e escalabilidade
Performance
sob carga. Inclui testes de carga e estresse.
Avalia a proteção do software contra ameaças, verificando
Teste de Segurança
vulnerabilidades, controle de acesso e proteção de dados.
Focado na experiência do usuário, verifica a facilidade
Teste de Usabilidade de uso e a intuitividade da interface e funcionalidades
para garantir que o sistema seja acessível e útil.
Verifica a capacidade do software em operar em
Teste de
diferentes dispositivos, sistemas operacionais,
Compatibilidade
navegadores ou versões de hardware e software.
Analisa a estrutura interna do código para garantir que
Teste de Caixa
todos os caminhos e lógicas funcionam corretamente.
Branca
Geralmente utilizado em fases iniciais.
Testa o comportamento do software em relação às
Teste de Caixa Preta entradas e saídas sem conhecimento do código-fonte,
focando a funcionalidade e os requisitos externos
Combinação de teste de caixa branca e caixa preta,
Teste de Caixa Cinza permitindo uma análise do sistema baseada em
conhecimento parcial da lógica interna e externa
Fonte: Delamaro, Jino e Maldonado (2016).
25
Todas essas técnicas de teste de software auxiliam no desenvolvimento
de sistemas confiáveis, eficientes e de qualidade. Cada técnica apresenta
particularidades que devem ser aplicadas no momento e ambiente
certos, maximizando os resultados e minimizando as falhas.
3. Aplicando as técnicas de teste de software
A correta aplicação das técnicas de teste em cada fase do
desenvolvimento de software é fundamental para garantir que o
produto atenda aos requisitos e expectativas dos usuários. Segundo
Pressman (2016), cada técnica de teste é mais eficaz em etapas
específicas do ciclo de desenvolvimento, pois auxilia na identificação e
correção de defeitos de forma precoce e pontual. A utilização de técnicas
como o teste unitário e de integração, por exemplo, é recomendada
nas fases iniciais, para assegurar que os componentes funcionem de
maneira independente e em conjunto, evitando problemas nas próximas
etapas.
Na fase de desenvolvimento inicial, o teste unitário é feito para
verificar a funcionalidade de unidades individuais do código, como
métodos e classes. Já o teste de integração garante que os módulos
de código interajam corretamente entre si, evitando problemas de
compatibilidade. Em seguida, o teste de sistema é executado para
validar o software como um todo, em um ambiente que simula o
real, ou seja, o de produção, assegurando que todos os componentes
operem conforme o esperado (Delamaro; Jino; Maldonado, 2016). A
aplicação correta dessas técnicas, nesta fase, permite que erros sejam
identificados e corrigidos de forma mais rápida e barata.
A etapa de validação do produto é marcada pelo uso do teste de
aceitação, que avalia se o software atende aos requisitos especificados
26
e se está apto para o cliente. Já o teste de regressão é indispensável
após alguma modificação no código, garantindo que novas alterações
não afetem funcionalidades previamente testadas (Aniche, 2015). Nessa
fase, outros testes específicos, como os de usabilidade, segurança
e compatibilidade, são aplicados para verificar aspectos como a
experiência do usuário, a proteção contra ameaças e a capacidade de
adaptação a diferentes ambientes e dispositivos.
Além das técnicas já citadas, as abordagens de caixa branca, caixa
preta e caixa cinza desempenham papéis importantes ao longo de
todo o processo de desenvolvimento do software. O teste de caixa
branca avalia a lógica interna do software e é indicado para analisar o
funcionamento detalhado dos componentes, enquanto o teste de caixa
preta foca a validação de entradas e saídas, sendo útil em testes de
funcionalidade. O teste de caixa cinza, por sua vez, combina aspectos
das duas abordagens, utilizando um conhecimento parcial da estrutura
interna para otimizar os testes externos (Polo, 2020).
O Quadro 2 exibe uma relação com as principais técnicas de testes de
software e sua aplicação.
Quadro 2 – Principais técnicas de teste de software e sua aplicação
Técnica de Teste Aplicação
Verificação de componentes isolados nas
Teste Unitário
primeiras fases de desenvolvimento.
Teste de Integração Avaliação da interação entre módulos do sistema.
Teste de Sistema Validação do sistema completo em um ambiente de simulação.
Avaliação da conformidade do software com
Teste de Aceitação
os requisitos dos usuários finais.
Teste de Regressão Reavaliação de funcionalidades após modificações no código.
Teste de Medição da resposta e estabilidade do
Performance software em situações de carga.
27
Técnica de Teste Aplicação
Verificação das proteções contra vulnerabilidades
Teste de Segurança
e acessos não autorizados.
Teste de Usabilidade Avaliação da facilidade de uso e experiência do usuário.
Teste de Teste de operação do software em diferentes
Compatibilidade dispositivos, sistemas operacionais e configurações.
Teste de Caixa Análise da lógica interna do software. Aplicado
Branca em fases iniciais e intermediárias.
Avaliação das entradas e saídas do sistema
Teste de Caixa Preta
sem considerar a estrutura interna.
Combinação de caixa branca e preta, com foco
Teste de Caixa Cinza
em falhas estruturais e comportamentais.
Fonte: Polo (2020).
Dessa forma, a aplicação das técnicas de teste de software em cada fase
do desenvolvimento contribui para a verificação completa e profunda
das funcionalidades a serem desenvolvidas, garantindo maior controle
da segurança do sistema, e aumentando sua qualidade e confiabilidade
para o usuário.
4. Particularidades e benefícios das técnicas
de teste de software
As técnicas de teste de software contribuem significativamente para
a eficiência e a segurança do desenvolvimento, beneficiando tanto a
equipe desenvolvedora quanto o usuário. O teste unitário, que verifica
funcionalidades isoladas do código, permite que desenvolvedores
identifiquem erros de forma rápida, ainda nas fases iniciais, evitando que
falhas pequenas escalem e se tornem problemas complexos e custosos.
O teste de integração, por sua vez, foca a interação entre diferentes
partes do software, garantindo que os módulos funcionem bem juntos,
o que resulta em uma estrutura mais coesa e previsível (Aniche, 2015).
28
Esses testes aumentam a confiança da equipe no código e permitem um
desenvolvimento contínuo e seguro.
Para o usuário, o teste de sistema e o teste de aceitação representam
uma garantia de qualidade em termos de funcionalidade e usabilidade.
O teste de sistema simula o ambiente real para verificar se o software
opera conforme o esperado, enquanto o teste de aceitação é voltado
à avaliação das necessidades e expectativas do cliente (Félix, 2016). Já
o teste de regressão é um aliado das equipes de desenvolvimento em
momentos de atualização do código, assegurando que as mudanças não
afetem o desempenho e que o sistema continue estável e funcional em
todas as suas versões (Polo, 2020). O benefício direto para o usuário está
na experiência contínua e sem falhas, enquanto a equipe se beneficia pela
prevenção de retrabalho e suporte constante.
Além disso, os testes de performance e segurança são fundamentais para
a robustez e confiabilidade do sistema. Eles avaliam o comportamento sob
carga, garantindo que o software responda bem a diferentes condições
de uso, enquanto o teste de segurança visa detectar e prevenir possíveis
vulnerabilidades, protegendo dados sensíveis do usuário. Tais testes são
particularmente importantes em ambientes críticos, em que a proteção
de dados e a velocidade de resposta são indispensáveis. Já os testes
de usabilidade e compatibilidade asseguram que o software funcione
de maneira intuitiva e em diferentes dispositivos, resultando em uma
experiência de usuário mais satisfatória (Delamaro; Jino; Maldonado, 2016).
Para a equipe de desenvolvimento, o conjunto dos testes de caixa
branca, caixa preta e caixa cinza proporciona uma cobertura completa
do sistema, e cada técnica verifica diferentes aspectos. O teste de caixa
branca permite examinar o código em profundidade, identificando
falhas lógicas, enquanto o teste de caixa preta foca o comportamento do
sistema, simulando o que o usuário experimentaria. Já o teste de caixa
cinza combina elementos das duas abordagens, fornecendo uma visão
29
mais abrangente da aplicação. Em suma, as técnicas de teste de software
trazem benefícios que refletem diretamente na qualidade, segurança e
estabilidade do produto, atendendo tanto às necessidades da equipe de
desenvolvimento, quanto ao usuário final.
Pois bem, estudante, chegamos ao final de nosso conteúdo! Foi muito
bom estar contigo. Esperamos que tenha gostado de tudo o que foi
apresentado. Nos encontramos em uma nova oportunidade. Até mais e
bons estudos!
Conectando à Realidade: Exemplos Práticos
Situação: Aplicativo de compras on-line e suas técnicas de teste.
Uma equipe de desenvolvimento trabalha em um aplicativo de compras
on-line, com funcionalidades como visualizar produtos, adicionar ao
carrinho, aplicar descontos e finalizar a compra. Para garantir a qualidade
do aplicativo, eles decidem aplicar diferentes técnicas de teste de
software em cada etapa do desenvolvimento.
Aplicabilidade:
• A equipe realiza testes unitários para validar funções individuais,
como adicionar produtos ao carrinho. Depois, aplica o teste de
integração para garantir a interação entre módulos, como o carrinho
e o pagamento. Em seguida, realiza o teste de sistema para verificar
o funcionamento completo do aplicativo. Com o teste de aceitação,
usuários reais avaliam se o aplicativo atende às expectativas, e os
testes de segurança e performance garantem a proteção dos dados
e o bom desempenho, especialmente em horários de pico. Esses
testes ajudam a identificar e corrigir problemas antes do lançamento,
aumentando a confiabilidade e segurança do produto.
30
Referências
ANICHE, Mauricio. Testes automatizados de software: um guia prático. São Paulo,
SP: Casa do Código, 2015. E-book. Disponível em: [Link]
br. Acesso em: 18 out. 2024.
DELAMARO, Márcio; JINO, Mario; MALDONADO, José. Introdução ao teste de
software. 2 ed. Rio de Janeiro: Campus, 2016. 448p.
FÉLIX, Rafael (org.). Teste de software. São Paulo: Pearson, 2016. E-book.
Disponível em: [Link] Acesso em: 18 out. 2024.
POLO, Rodrigo Cantú. Validação e teste de software. São Paulo: Contentus, 2020.
E-book. Disponível em: [Link] Acesso em: 18 out. 2024.
PRESSMAN, Roger S. Engenharia de Software: uma abordagem profissional.
Tradução João Eduardo Nóbrega Tortello; revisão técnica Reginaldo Arakaki, Julio
Arakaki, Renato Manzan de Andrade. 8. ed. Porto Alegre: AMGH, 2016.
SANTOS, Luiz Diego Vidal, OLIVEIRA, Catuxe Varjão de Santana. Introdução à
garantia de qualidade de software. Timburi: Cia do eBook, 2017. 39p.
31
Técnicas de Inspeção de Software
Autoria: Luís Otávio Toledo Perin
Leitura crítica: Anderson da Silva Marcolino
Objetivos
• Compreender o conceito de inspeção de software.
• Explorar as diferentes técnicas de inspeção de
software.
• Apresentar as principais ferramentas de apoio para
inspeção de software.
32
1. Introdução
O assunto que será abordado é de grande importância e trata das
técnicas de inspeção de software, um conteúdo atual e preparado
especialmente para você! Então, esteja atento aos próximos parágrafos.
Vamos juntos! Bons estudos.
A inspeção de software é um processo fundamental para garantir a
qualidade, buscando identificar falhas e inconformidades ainda nas
etapas iniciais do desenvolvimento. Esse processo é uma forma de
revisão técnica que foca a análise detalhada de artefatos de software,
como código-fonte, documentos de requisitos e design, garantindo que
o produto atenda às especificações e padrões de qualidade esperados.
Segundo Pressman (2016), a inspeção é uma das técnicas mais eficazes
para reduzir defeitos antes mesmo que eles reflitam no cliente,
contribuindo, desse modo, para a confiabilidade e eficiência do software.
Essa prática tem ganhado importância em nossa atualidade, já que a
complexidade dos sistemas vem crescendo, em paralelo à evolução
constante da tecnologia e a demanda por produtos de alta qualidade.
As técnicas de inspeção de software continuam evoluindo com as
ferramentas de automatização, que auxiliam na redução de esforços
manuais e aumentam a precisão dos testes. Em um mercado no qual a
eficiência é tão cobrada, a inspeção por ferramentas se torna uma aliada
importante, integrando práticas ágeis e tradicionais de desenvolvimento
com o objetivo de obter um produto mais confiável desde as primeiras
fases de seu ciclo de vida.
Portanto, as técnicas de inspeção de software representam um conjunto
de práticas essenciais para o desenvolvimento de sistemas de alta
qualidade, trazendo benefícios tanto para os desenvolvedores quanto
33
para os usuários. Com elas, há um controle rigoroso na detecção e
correção de falhas, resultando em sistemas mais seguros e eficientes.
A seguir, trataremos mais a fundo das técnicas de inspeção de software
e seus benefícios.
2. Inspeção de software
A inspeção de software é uma prática estruturada que proporciona
a revisão minuciosa de artefatos desenvolvidos, como código-fonte,
documentos de requisitos e design, com o intuito de detectar problemas
antes da fase dos testes formais. Muito interessante, não é mesmo?
Diferente dos testes, que se concentram em avaliar o comportamento
de um software em execução, a inspeção busca identificar erros em
estágios iniciais de desenvolvimento, contribuindo para a qualidade e
confiabilidade do produto. De acordo com Delamaro, Jino e Maldonado
(2016), a inspeção de software promove um exame criterioso e
colaborativo que, além de detectar defeitos, também melhora o
entendimento sobre o projeto entre os envolvidos, ou seja, todo o time
conhece mais a fundo o que está desenvolvendo.
Para compreender a dinâmica da inspeção de software, é necessário
conceituar e explicar alguns termos da área, que muitas vezes são
mal compreendidos. As palavras erro, defeito e falha têm um peso
muito grande em todo o ciclo de desenvolvimento, cada uma com seu
significado. Vejamos no Quadro 1.
34
Quadro 1 – Erro, defeito e falha
Conceito Descrição
Ação ou decisão incorreta durante o desenvolvimento que
Erro
pode originar um defeito nos artefatos do software.
Imperfeição no código ou em qualquer artefato
Defeito
de software resultante de um erro.
Manifestação de um defeito durante a execução do
Falha
software, causando um comportamento inesperado.
Fonte: Pressman (2016).
Como visto, o erro ocorre quando há uma ação incorreta ou uma
decisão inadequada durante o desenvolvimento, podendo gerar um
defeito, que é uma imperfeição no código ou nos artefatos do software.
Uma falha, por sua vez, é a manifestação de um defeito quando o
sistema é executado, causando uma diferença entre o comportamento
esperado e o que realmente está acontecendo (Pressman, 2016). Desse
modo, identificar e eliminar defeitos antes de se transformarem em
falhas é um dos principais objetivos da inspeção de software.
No processo de inspeção, a especificação de requisitos é essencial
para garantir uma base sólida para a análise de qualidade. A clareza
e a precisão dos requisitos são de extrema importância para reduzir
ambiguidades e inconsistências no desenvolvimento, facilitando a
detecção de problemas nas fases iniciais do projeto. Como Polo (2020)
observa, requisitos bem definidos e estruturados são fundamentais para
que a inspeção seja eficaz, uma vez que eles orientam os inspetores
sobre o que buscar durante a revisão. Dessa forma, dedicar e investir
tempo e cuidado na fase de documentação de requisitos aumenta as
chances de sucesso na inspeção de software, que, por consequência,
favorece as demais etapas de desenvolvimento. Na Figura 1, podemos
verificar a inspeção de software nos diferentes artefatos.
35
Figura 1 – Testes de caixa preta, branca e cinza
Fonte: Kalinowski e Spínola (2008).
A inspeção também inclui várias práticas específicas, como a definição de
checklists, que orientam os revisores em pontos-chave a serem avaliados,
além de técnicas de leitura baseadas em cenários e perspectivas.
Os checklists, por exemplo, são úteis para padronizar o processo de
inspeção, garantindo que aspectos críticos, como usabilidade, segurança
e desempenho, sejam avaliados rigorosamente em diferentes projetos
(Félix, 2016). A leitura baseada em cenários coloca o inspetor em situações
práticas que o sistema enfrentará, contribuindo para uma análise mais
realista e detalhada.
Entre os principais benefícios da inspeção de software, destacam-se
a economia de tempo e de recursos financeiros, além do aumento da
qualidade do produto ao usuário. Ao identificar problemas nas fases
iniciais, o custo de correção é significativamente menor, evitando
retrabalhos e atrasos, o que compromete todo o cronograma. Diante
disso, o processo de inspeção contribui para o alinhamento entre as
equipes de desenvolvimento e qualidade, promovendo uma cultura de
melhoria contínua (Aniche, 2015). Outro benefício é o aprendizado, pois
os profissionais envolvidos ganham uma visão mais crítica e aprofundada
sobre a engenharia de software, podendo ser mais criteriosos e com
propriedade na argumentação.
Por fim, a inspeção de software representa uma prática essencial na
garantia da qualidade dos produtos desenvolvidos, abordando desde
36
a revisão de requisitos até a detecção de defeitos antes que se tornem
falhas perceptíveis aos usuários. Com uma abordagem colaborativa e
estruturada, a inspeção reduz custos e eleva a eficiência, promovendo
resultados duradouros e uma melhor experiência ao usuário.
3. Técnicas de inspeção de software
A inspeção de software é uma técnica minuciosa que visa identificar
e corrigir defeitos em artefatos de desenvolvimento, como código,
documentação e requisitos, antes da etapa de testes propriamente
dita. Essa prática assegura que o produto atenda aos critérios de
qualidade exigidos e evita problemas futuros que poderiam impactar
negativamente a experiência do usuário, bem como sua integridade.
Segundo Delamaro, Jino e Maldonado (2016), a inspeção de software
representa uma abordagem sistemática que vai além da simples
verificação de funcionalidades, analisando detalhes que garantem um
produto mais confiável e eficaz. Ao utilizar técnicas variadas de inspeção,
as equipes conseguem ajustar o processo para diferentes necessidades
e contextos de desenvolvimento.
Dentre as principais técnicas de inspeção de software, temos: leitura
ad hoc, leitura baseada em checklists, leitura de cenários e leitura de
perspectivas.
A leitura ad hoc é informal e depende da experiência e do conhecimento
do revisor para detectar possíveis erros, sendo indicada para revisões
rápidas e pontuais. A leitura baseada em checklists, por outro lado,
oferece uma abordagem mais estruturada, em que o revisor segue uma
lista de verificação de aspectos específicos a serem analisados, como
usabilidade, segurança e performance (Félix, 2016).
37
Por outro lado, a leitura baseada em cenários busca simular condições
reais de uso, permitindo identificar problemas que poderiam ser
negligenciados em uma análise mais geral. A técnica de leitura baseada
em perspectivas complementa esse conjunto, promovendo uma visão
multidimensional do artefato de software. Com essa abordagem, o
revisor analisa o sistema sob diferentes ângulos, como o ponto de vista
do usuário, do desenvolvedor e do gerente de projeto, por exemplo.
Para Aniche (2015), a leitura baseada em perspectivas aumenta a
profundidade da análise, pois considera diferentes expectativas e usos
do software, o que pode revelar problemas menos evidentes. Cada uma
dessas técnicas traz vantagens distintas, permitindo que as equipes
escolham a que melhor se adapta ao projeto e as utilizem da melhor
forma possível.
O Quadro 2 apresenta as técnicas mencionadas acima, juntamente com
suas descrições e benefícios.
Tabela 2 – Técnicas de inspeção
Técnica de
Descrição Benefícios
Inspeção
Revisão informal baseada Rápida, ideal para
Leitura Ad Hoc
na experiência do revisor revisões pontuais
Revisão estruturada com
Leitura baseada Garantia de cobertura ampla e
listas de verificação para
em Checklists detalhada de critérios críticos
aspectos específicos
Identificação de problemas
Leitura baseada Revisão simulando
práticos, aproximação
em Cenários condições reais de uso
ao uso real
Análise mais profunda
Revisão sob múltiplos
e abrangente, maior
Leitura baseada pontos de vista,
alinhamento com
em Perspectivas considerando diferentes
as expectativas dos
stakeholders
diversos stakeholders
Fonte: Aniche (2015), Félix (2016) e Pressman (2016).
38
A aplicação das técnicas de inspeção de software proporciona benefícios
importantes ao processo de desenvolvimento. Desse modo, temos a
redução de custos como mais evidente, pois a correção de problemas
nas fases iniciais do desenvolvimento é significativamente menos custosa
financeiramente do que a resolução de falhas após o lançamento do
produto, ou seja, já com o cliente e/ou usuário. De acordo com Polo
(2020), a detecção precoce de defeitos reduz o retrabalho, garantindo
um processo de desenvolvimento mais ágil e eficiente. Além disso, a
inspeção promove uma cultura de qualidade e uma colaboração mais
próxima entre as equipes de desenvolvimento e controle de qualidade,
contribuindo para um produto mais robusto e mais bem elaborado.
Quando falamos em qualidade de software, estamos nos referindo a
um processo sistemático de análise que visa não só identificar falhas,
mas também assegurar que o software atenda às especificações
funcionais e de segurança estabelecidas em suas análises iniciais. Para
que essa verificação seja eficaz, é crucial que as práticas de inspeção
estejam integradas desde as fases iniciais do projeto. Segundo Pressman
(2016), a inspeção, além de detectar defeitos, contribui para uma maior
conformidade com os padrões de qualidade esperados, agregando valor
ao processo e ao produto.
Outro ponto fundamental é a especificação dos requisitos, uma prática
essencial no processo de inspeção, pois define os critérios que orientarão
todo o desenvolvimento. Requisitos bem especificados permitem
uma verificação mais precisa e uma inspeção mais eficaz, reduzindo
ambiguidades e garantindo um alinhamento claro das expectativas do
projeto. De acordo com Félix (2016), a clareza dos requisitos facilita a
detecção de erros, além de contribuir para o desenvolvimento de um
produto que atenda às necessidades reais do usuário e dos stakeholders,
ou seja, todas as partes envolvidas do projeto.
Diante disso, podemos compreender que as técnicas de inspeção
de software formam um pilar importante na garantia da qualidade,
39
contribuindo para um desenvolvimento mais eficiente e menos
suscetível a falhas. A combinação de métodos de leitura, junto
com a especificação de requisitos, auxilia as equipes envolvidas a
desenvolverem produtos de alto padrão de confiabilidade e usabilidade.
4. Ferramentas de apoio para inspeção de
software
As ferramentas de apoio para inspeção de software desempenham
um papel crucial ao facilitar e otimizar o processo de revisão, análise e
identificação de defeitos em sistemas, especialmente os mais complexos.
Essas ferramentas ajudam na automação de etapas específicas e na
documentação e rastreabilidade de falhas, garantindo uma abordagem
mais organizada e precisa para a inspeção. Segundo Delamare, Jino e
Maldonado (2018), a implementação dessas ferramentas pode reduzir o
tempo e o esforço investidos, ao mesmo tempo que aumenta a precisão
na detecção de inconsistências nos códigos e artefatos de software.
Entre as principais ferramentas de apoio para inspeção de software
estão aquelas que oferecem suporte à análise estática do código, revisão
colaborativa e o gerenciamento de bugs e defeitos, características
essenciais que favorecem o andamento das atividades.
As ferramentas de análise estática, como o SonarQube, examinam o
código-fonte em busca de padrões inadequados, vulnerabilidades e
violações de padrões de codificação, sem a necessidade de execução
do software. Essa análise preliminar ajuda a identificar erros potenciais
antes mesmo da fase de testes, o que é importante para a construção de
sistemas mais robustos (Polo, 2020).
Outra ferramenta de apoio essencial é a de revisão colaborativa de código,
como o GitHub e o Gerrit, que permite que equipes de desenvolvimento
revisem o código em conjunto, comentem linhas específicas e
40
acompanhem as alterações. Essa abordagem colaborativa, além de facilitar
a comunicação e a troca de conhecimento entre os membros da equipe,
também contribui para uma detecção mais rápida e eficiente de falhas,
pois múltiplas perspectivas são consideradas durante o processo de
inspeção (Delamaro; Jino; Maldonado, 2016).
Ferramentas para o gerenciamento de bugs e defeitos, como o Jira e o
Bugzilla, são igualmente fundamentais no apoio ao processo de inspeção
de software. Esses sistemas permitem catalogar e rastrear defeitos desde
a sua identificação até a resolução, garantindo uma visão clara do status
de cada problema. De acordo com Aniche (2015), essa rastreabilidade é
essencial para manter o controle do processo e assegurar que todos os
defeitos sejam devidamente resolvidos antes do lançamento do produto,
além de poder verificar com precisão algum item, por exemplo. O Quadro
3 traz um resumo de todas as ferramentas mencionadas, apresentando
suas funções principais e benefícios.
Quadro 3 – Ferramentas de gerenciamento de defeitos
Ferramenta Função Principal Benefícios
Detecção precoce de
SonarQube Análise estática de código vulnerabilidades e
inconsistências
Revisão colaborativa Facilita a colaboração e a
GitHub/Gerrit
de código comunicação entre equipes
Gerenciamento de Rastreabilidade e controle
Jira/Bugzilla
bugs e defeitos de resolução de problemas
Revisão de código
Fluxo de trabalho integrado
Crucible e integração com
e automação de tarefas
repositórios
Fonte: adaptado de Aniche (2015), Félix (2016) e Delamaro, Jino e Maldonado (2016).
Existem diversas ferramentas com recursos mais amplos, combinando
análise estática, gerenciamento de bugs e revisão de código em um único
ambiente. Como exemplo temos o Crucible, que facilita a colaboração
41
entre desenvolvedores e permite integrar o processo de inspeção com
repositórios de controle de versão, gerando um fluxo de trabalho mais
integrado e eficiente. Ao automatizar tarefas e integrar processos, essas
ferramentas ajudam as equipes a alcançarem melhores resultados em
menos tempo, o que é muito importante (Félix, 2016).
Contudo, as ferramentas de apoio para inspeção de software aprimoram
a qualidade do desenvolvimento, ao automatizar e organizar processos
cruciais para a inspeção. A escolha das ferramentas mais adequadas
dependerá das necessidades específicas de cada equipe e projeto, mas
todas têm o mesmo objetivo, que é facilitar a detecção e correção de
defeitos, além de otimizar o tempo do projeto.
Pois bem, estudante, chegamos ao final de nosso conteúdo! Foi muito bom
estar com você. Esperamos que tenha gostado de tudo o que foi apresentado.
Nos encontramos em uma nova oportunidade. Até mais e bons estudos!
Conectando à Realidade: Exemplos Práticos
Situação: o uso do checklist de inspeção.
Uma equipe de desenvolvimento usa checklists de inspeção para analisar
o código de um aplicativo financeiro e identifica uma vulnerabilidade
de segurança. Essa prática permite corrigir o erro antes do lançamento,
prevenindo potenciais riscos para os usuários.
Aplicabilidade:
• A inspeção de software, especialmente por meio de checklists, ajuda
a antecipar e corrigir problemas críticos, melhorando a qualidade e
segurança do produto, evitando custos adicionais associados a falhas
pós-lançamento.
42
Referências
ANICHE, Mauricio. Testes automatizados de software: um guia prático. São Paulo,
SP: Casa do Código, 2015. E-book. Disponível em: [Link]
br. Acesso em: 18 out. 2024.
DELAMARO, Márcio; JINO, Mario; MALDONADO, José. Introdução ao teste de
software. 2 ed. Rio de Janeiro: Campus, 2016. 448p.
FÉLIX, Rafael (org.). Teste de software. São Paulo: Pearson, 2016. E-book.
Disponível em: [Link] Acesso em: 18 out. 2024.
KALINOWSKI, Marcos; SPÍNOLA, Rodrigo. Introdução à Inspeção de Software –
Aumentando a Qualidade Através de Verificações Intermediárias. Engenharia
de Software Magazine, 2008. p. 68-74.
POLO, Rodrigo Cantú. Validação e teste de software. São Paulo: Contentus, 2020.
E-book. Disponível em: [Link] Acesso em: 18 out. 2024.
PRESSMAN, Roger S. Engenharia de Software: uma abordagem profissional.
Tradução João Eduardo Nóbrega Tortello; revisão técnica Reginaldo Arakaki, Julio
Arakaki, Renato Manzan de Andrade. 8. ed. Porto Alegre: AMGH, 2016.
SANTOS, Luiz Diego Vidal, OLIVEIRA, Catuxe Varjão de Santana. Introdução à
garantia de qualidade de software. Timburi: Cia do eBook, 2017. 39p.
43
Processos e Casos de Testes
automatizados
Autoria: Luís Otávio Toledo Perin
Leitura crítica: Anderson da Silva Marcolino
Objetivos
• Compreender os conceitos de processos e casos de
testes automatizados.
• Explorar a aplicabilidade de processos e casos de
testes automatizados.
• Apresentar algumas das principais ferramentas de
casos de testes automatizados.
44
1. Introdução
O assunto abordado é atual e interfere em toda a cadeia de software:
os processos e casos de testes automatizados. Eles são de grande
importância, e sem eles a qualidade e a verificação sofreriam impacto
negativo, especialmente no cronograma e na satisfação do usuário. Este
conteúdo foi preparado especialmente para você! Então, fique ligado e não
perca nenhum dos próximos parágrafos. Vamos juntos! Bons estudos.
No cenário tecnológico atual, a complexidade e o volume de
desenvolvimento de software aumentam significativamente a cada ano,
impulsionados pela transformação digital e pela demanda constante por
inovações. Basta observar o quanto consumimos de software.
Esse ambiente exige ferramentas e processos cada vez mais eficientes
para assegurar a qualidade dos produtos de software entregues ao
mercado. Nesse contexto, os testes automatizados ajudam a garantir
que os sistemas atendam aos requisitos de qualidade e funcionalidade,
enquanto possibilitam maior agilidade no desenvolvimento (Aniche,
2015). A automatização dos testes não apenas reduz o tempo e o custo
de desenvolvimento, mas também contribui para a precisa verificação, o
que manualmente não existe ou está abaixo do desejado.
O principal objetivo dos testes automatizados é minimizar erros
e aumentar a confiabilidade dos sistemas, o que é alcançado pela
execução de scripts que verificam automaticamente diferentes aspectos
do software. Interessante, não é mesmo?
Os processos de automação de testes variam conforme as necessidades
do projeto, mas geralmente incluem planejamento, desenvolvimento
de scripts, execução e análise dos resultados. Os casos de teste
automatizados são cenários predefinidos que avaliam se uma aplicação
responde corretamente a uma entrada ou condição específica.
45
Os testes automatizados também têm uma função estratégica nas
organizações, que é oferecer um produto estável e com menor tempo de
lançamento no mercado, haja vista que a concorrência é alta. A eficiência
desses testes possibilita a identificação e correção de defeitos mais
rapidamente, promovendo ciclos de desenvolvimento integrados e ágeis
(Félix, 2016).
Por fim, devemos compreender que os testes automatizados simplificam
o desenvolvimento de software e facilitam a manutenção e atualização
de sistemas complexos, proporcionando possibilidades de inovações
futuras e auxiliando as empresas a se manterem ágeis e competitivas.
A seguir, trataremos mais a fundo dos processos e casos de testes
automatizados.
2. Conceito
A automação dos processos de teste em software é um pilar essencial para
garantir a qualidade e o desempenho das aplicações em desenvolvimento
Em um ambiente de desenvolvimento de software, “processos” refere-se
ao conjunto estruturado de atividades que, quando seguidas, garantem a
execução eficiente e organizada das etapas de desenvolvimento e validação.
De acordo com Pressman (2016), um processo de teste bem-definido
abrange desde a identificação das necessidades do sistema até a execução
dos testes propriamente ditos, passando por etapas como planejamento,
análise e design dos testes. Seguir essas etapas garante uma estrutura bem
definida e permite uma visão clara da evolução dos testes ao longo do ciclo
de desenvolvimento, gerando visibilidade em todo o processo.
Já os casos de teste automatizados têm cenários específicos que definem
como uma aplicação deve responder a uma entrada ou a uma condição
preestabelecida. Esses casos, ao serem automatizados, permitem a
46
execução de verificações precisas e repetidas, sem a necessidade de
intervenção humana constante. Para Aniche (2015), os casos de teste
automatizados são desenvolvidos com base nos requisitos do sistema, o
que assegura que os resultados esperados e as condições de teste estejam
de acordo com os objetivos da aplicação, ou seja, é tudo preparado
conforme o projeto e seus requisitos. Esse processo facilita a detecção de
falhas de maneira mais rápida, pois um mesmo conjunto de casos de teste
pode ser reutilizado diversas vezes ao longo do desenvolvimento e em
atualizações futuras, além de sua execução a qualquer horário.
A automação de testes agiliza o processo de verificação e validação
em um cenário em que a velocidade de resposta é primordial em
projetos de metodologia ágil, por exemplo, os testes automatizados são
fundamentais para garantir que as atualizações constantes no software
não acarretem erros nas funcionalidades já implementadas, o que seria
um grande problema (Félix, 2016). Dessa forma, a automação permite
que equipes de desenvolvimento possam trabalhar com mais segurança
e eficiência, reduzindo o tempo e o esforço necessário para validar
novas implementações.
3. Benefícios de processos e casos de testes
automatizados
Quanto aos benefícios dos testes automatizados, o principal está na
possibilidade de ser escalável e reprodutível, características presentes
em sistemas complexos. Com isso, é possível que os mesmos casos de
teste sejam aplicados a diferentes partes do sistema e com diferentes
configurações. A reprodução garante que os testes produzam os mesmos
resultados em execuções repetidas, gerando maior segurança nos
resultados em comparação aos testes manuais. De acordo com Polo (2020),
esses atributos são vitais para sustentar a qualidade e confiabilidade dos
sistemas, especialmente em aplicações de grande escala e alta criticidade.
47
Outro ponto positivo que a automatização traz é a economia
de recursos, uma vez que há menos testes manuais, que são
mais demorados e sujeitos a erros humanos. Além disso, testes
automatizados oferecem resultados mais rápidos e detalhados,
permitindo a identificação e correção quase imediata de falhas. Segundo
Rios e Moreira (2013), a automação reduz custos e minimiza o tempo de
teste, o que gera maior competitividade para as empresas que precisam
responder rapidamente às mudanças do mercado.
Os processos e casos de testes automatizados facilitam a implementação
de uma abordagem de testes contínuos, o que é positivo para o projeto,
pois o código é validado em tempo real. Isso se diretamente relacionado
à tendência da entrega e da integração contínua, que requerem
feedback imediato sobre a qualidade do software. De acordo com
Delamaro, Jino e Maldonado (2016), ao adotar a automação, as equipes
de desenvolvimento conseguem manter o ritmo de lançamentos sem
comprometer a confiabilidade do produto ao usuário.
Os processos e casos de testes automatizados são ferramentas valiosas
para qualquer organização que busca desenvolver software com
qualidade, eficiência e segurança. Sua implementação proporciona
segurança para que os desenvolvedores possam inovar sem perder o
controle sobre a qualidade, favorecendo o produto e suas funcionalidades.
4. Aplicabilidade de processos e casos de
testes automatizados
A aplicabilidade é a capacidade de uma técnica, ferramenta ou processo
ser utilizada de maneira eficaz e adaptada aos objetivos específicos em
diferentes contextos ou situações. Nos testes automatizados, a aplicabilidade
está no uso de processos e casos de teste repetíveis e adaptáveis para avaliar
a funcionalidade e a qualidade de diversos tipos de software. Isso quer
48
dizer que os testes automatizados não são apenas eficientes, mas também
altamente versáteis, permitindo que sejam aplicados em diferentes etapas
do desenvolvimento de software e em diversos ambientes de aplicação
(Pressman, 2016). Portanto, a aplicabilidade é essencial para garantir que
a automação de testes traga benefícios reais para o desenvolvimento e
manutenção de sistemas complexos.
Os processos de testes automatizados são amplamente aplicáveis em
projetos que exigem validações frequentes, como sistemas críticos,
plataformas de comércio eletrônico, aplicações financeiras e ambientes
de desenvolvimento ágil, em que cada nova funcionalidade precisa ser
testada rapidamente e com qualidade antes de ser lançada. A prática
de casos de teste automatizados nessas áreas permite que as equipes
mantenham a estabilidade do sistema e a segurança dos dados, mesmo
em atualizações contínuas Para Aniche (2015), isso amplia o alcance e a
confiabilidade dos testes, facilitando a detecção de erros que poderiam
passar despercebidos em testes manuais.
Podemos perceber a aplicabilidade dos casos de testes automatizados
em ambientes de integração contínua, nos quais o software é
desenvolvido, testado e implantado de forma rápida e quase
simultânea. Nesses casos, a automação desempenha um papel
essencial ao assegurar que mudanças no código não causem
falhas em funcionalidades já validadas, já que tudo acontece muito
rapidamente. De acordo com Félix (2016), em sistemas com ciclos de
desenvolvimento rápido, a automação oferece o benefício de testagens
regulares e consistentes, tornando-se uma prática indispensável para
a implementação de DevOps, que é uma abordagem que combina
pessoas, processos e tecnologias para fornecer valor aos clientes de
forma contínua, e metodologias ágeis. Esse uso contínuo e repetitivo
mostra a aplicabilidade como positiva, pois permite que a fabricantes de
software respondam rapidamente as mudanças do mercado, mas sem
comprometer a qualidade do software em diferentes esperas.
49
Outra área em que a aplicabilidade dos processos e casos de testes
automatizados é importante envolve a personalização e a adaptação de
cenários de teste conforme o tipo de aplicação ou setor. Por exemplo,
em softwares de saúde, os testes precisam garantir a precisão dos
dados e a integridade das informações dos pacientes, enquanto
em sistemas de e-commerce, a ênfase pode estar na segurança das
transações e na experiência do usuário. Notou como cada segmento tem
as suas especificações e particularidades? De acordo com Polo (2020),
a flexibilidade dos testes automatizados permite customizações que
atendem essas demandas específicas, aumentando a confiabilidade dos
sistemas em diversas áreas de atuação.
Por fim, a aplicabilidade dos processos e casos de testes automatizados
traz inúmeras vantagens, como seu uso em variados contextos,
aumentando a eficiência e a confiabilidade do desenvolvimento
de software. Sua capacidade de adaptação a diferentes setores e
necessidades, bem como seu uso contínuo em ambientes de integração
e entrega contínuas, garantem que os testes automatizados sejam uma
prática essencial para a qualidade do software e indispensável quando
vivemos a era da tecnologia.
5. Principais ferramentas de casos de testes
automatizados
Ferramentas de testes automatizados são recursos tecnológicos que
permitem a criação, a execução e a gestão de casos de teste de maneira
eficiente e estruturada. Essas ferramentas facilitam o trabalho do
desenvolvedor e do analista de testes, pois automatizam processos
repetitivos e reduzem a necessidade de intervenção manual, garantindo
maior precisão e consistência nos testes (Peres, 2016). No caso dos
testes de software, uma ferramenta é mais do que um recurso técnico,
pois representa uma metodologia para verificar se as funcionalidades de
50
uma aplicação correspondem aos requisitos definidos. Interessante, não
é mesmo?
Entre as principais ferramentas de testes automatizados, o Selenium
destaca-se como uma das mais populares para automação de testes
de interfaces web. O Selenium permite que os desenvolvedores criem
scripts para testar funcionalidades em navegadores, reproduzindo
interações de usuários reais e verificando a resposta do sistema em
diferentes condições. A Figura 1 mostra a interface do Selenium IDE.
De acordo com Delamaro, Jino e Maldonado (2016), ela é amplamente
utilizada em projetos que precisam garantir a responsividade e a
usabilidade das interfaces de forma rápida e escalável, o que é ideal
para equipes que adotam metodologias ágeis.
Figura 1 – Interface Selenium IDE
Fonte: elaborada pelo autor.
Outra ferramenta relevante é o JUnit, especialmente utilizada em
projetos Java para automatizar testes unitários, garantindo que cada
pequena parte do código funcione corretamente. A importância do
JUnit está na sua capacidade de validar funções específicas de maneira
51
independente, o que permite detectar erros nas primeiras fases de
desenvolvimento, antes que eles possam comprometer outras partes
do sistema (Aniche, 2015). Assim, o JUnit é uma escolha atrativa e
frequentemente usada por desenvolvedores que trabalham com Java
e buscam uma forma eficiente de verificar a confiabilidade de suas
funcionalidades.
Quanto aos testes para APIs, ou Application Programming Interface, que
significa interface de programação de aplicativos no Brasil, o Postman
é uma das ferramentas mais utilizadas para validar o funcionamento
das comunicações entre sistemas. Com ele é possível enviar e receber
dados de APIs, simulando interações de diferentes clientes e verificando
se as respostas estão de acordo com o esperado. Polo (2020) destaca
o Postman como uma ferramenta essencial em projetos que utilizam
arquitetura de microsserviços, pois a automação dos testes de APIs
garante que os diferentes componentes do sistema se comuniquem
corretamente, mesmo em atualizações frequentes. A Figura 2 mostra a
interface da ferramenta.
Figura 2 – Interface Postman
Fonte: elaborada pelo autor.
Para projetos mais complexos, que envolvem diversos tipos de testes
automatizados, o Jenkins é uma opção que permite a integração
contínua com diversas ferramentas de automação, como Selenium, JUnit
e Postman. Com o Jenkins, as equipes de desenvolvimento conseguem
automatizar a execução de testes sempre que novas atualizações
52
são realizadas, garantindo uma validação contínua de todo o sistema
(Delamaro; Jino; Maldonado, 2016). Dessa forma, o Jenkins se destaca
em ambientes de desenvolvimento ágil, em que a entrega de novas
versões é constante. A Figura 3 mostra a interface da ferramenta.
Figura 3 – Interface Jenkins
Fonte: [Link] Acesso em: 3 dez.
2024.
O Quadro 1 apresenta todas as ferramentas citadas anteriormente, com
sua descrição e principais uso.
Quadro 1 – Principais ferramentas de casos de testes
automatizados
Ferramenta Descrição Principais Usos
Automação de testes
Selenium Testes de interfaces web
em navegadores
Framework de teste
JUnit Testes unitários
para aplicações Java
Plataforma para Testes de comunicação
Postman
testes de APIs entre APIs
Ferramenta de
Jenkins Automação de testes e builds
integração contínua
Fonte: adaptado de Aniche (2015); Delamaro, Maldonado e Vincenzi (2018); Peres (2016); Polo
(2020).
53
As ferramentas de casos de testes automatizados desempenham um
papel crucial no desenvolvimento de software, ajudando as equipes a
garantirem a qualidade e a eficiência dos softwares. Cada ferramenta
tem seu foco e especialidade, mas todas contribuem para que as
validações ocorram de maneira rápida, eficiente e consistente.
Pois bem, estudante, chegamos ao final de nosso conteúdo! Foi muito
bom estar contigo. Esperamos que tenha gostado de tudo o que foi
apresentado. Nos encontramos em uma nova oportunidade. Até mais e
bons estudos!
Conectando à Realidade: Exemplos Práticos
Situação: Testar funções alteradas anteriormente.
Imagine uma empresa de e-commerce que precisa garantir que funções
como login, pesquisa de produtos e checkout funcionem corretamente,
mesmo após atualizações. Com o uso de ferramentas de testes
automatizados, como Selenium para simular interações de usuário e
JUnit para testes unitários, a equipe pode rapidamente verificar se cada
nova funcionalidade está integrada ao sistema sem causar falhas. Esse
processo não só acelera a identificação de erros, mas também permite
que a empresa lance atualizações com segurança e eficiência, resultando
em uma experiência de usuário mais confiável.
Aplicabilidade:
• Os testes automatizados são amplamente aplicáveis em contextos
que requerem validações contínuas e frequentes, como em sistemas
de e-commerce, instituições financeiras e saúde. Eles permitem
simulações realistas e repetitivas, reduzindo custos e aumentando
a precisão e a rapidez na detecção de falhas. Ferramentas como
Selenium, JUnit e Postman oferecem flexibilidade e versatilidade,
adaptando-se facilmente a diferentes ambientes e garantindo que,
ao adicionar novas funcionalidades, a estabilidade e a qualidade do
sistema sejam mantidas, independentemente do setor de aplicação.
54
Referências
ANICHE, Mauricio. Testes automatizados de software: um guia prático. São Paulo,
SP: Casa do Código, 2015. E-book. Disponível em: [Link]
br. Acesso em: 18 out. 2024.
DELAMARO, Márcio; JINO, Mario; MALDONADO, José. Introdução ao teste de
software. 2 ed. Rio de Janeiro: Campus, 2016. 448p.
FÉLIX, Rafael (org.). Teste de software. São Paulo: Pearson, 2016. E-book.
Disponível em: [Link] Acesso em: 18 out. 2024.
KALINOWSKI, Marcos; SPÍNOLA, Rodrigo. Introdução à Inspeção de Software -
Aumentando a Qualidade Através de Verificações Intermediárias. Engenharia
de Software Magazine. 2008. P. 68-74.
KAWAGUCHI, Kohsuke. User Interface Refresh. Jenkins, 11 ago. 2014. Disponível
em: [Link] Acesso em: 4
nov. 2024.
PERES, Hugo. Automatizando Testes de Software Com Selenium. Rio de Janeiro:
Simplíssimo Livros Ltda, 2016.
POLO, Rodrigo Cantú. Validação e teste de software. São Paulo: Contentus, 2020.
E-book. Disponível em: [Link] Acesso em: 18 out. 2024.
PRESSMAN, Roger S. Engenharia de Software: uma abordagem profissional.
Tradução João Eduardo Nóbrega Tortello; revisão técnica Reginaldo Arakaki, Julio
Arakaki, Renato Manzan de Andrade. 8. ed. Porto Alegre: AMGH, 2016.
SANTOS, Luiz Diego Vidal, OLIVEIRA, Catuxe Varjão de Santana. Introdução à
garantia de qualidade de software. Timburi: Cia do eBook, 2017. 39p.
55