0% acharam este documento útil (0 voto)
4 visualizações48 páginas

Teste e Inspeção

A disciplina de Teste e Inspeção de Software aborda conceitos e práticas de testes manuais e automatizados, destacando a importância de realizar testes desde a concepção do sistema para reduzir custos e retrabalhos. O documento explora técnicas de inspeção, validação e verificação, além de apresentar ferramentas como Junit e Selenium para automação de testes. A ênfase é na qualidade do software e na identificação precoce de erros, visando a criação de sistemas confiáveis e eficientes.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
4 visualizações48 páginas

Teste e Inspeção

A disciplina de Teste e Inspeção de Software aborda conceitos e práticas de testes manuais e automatizados, destacando a importância de realizar testes desde a concepção do sistema para reduzir custos e retrabalhos. O documento explora técnicas de inspeção, validação e verificação, além de apresentar ferramentas como Junit e Selenium para automação de testes. A ênfase é na qualidade do software e na identificação precoce de erros, visando a criação de sistemas confiáveis e eficientes.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

WBA0881_v4.

APRENDIZAGEM EM FOCO

TESTE E INSPEÇÃO DE SOFTWARE:


TÉCNICAS E AUTOMATIZAÇÃO
APRESENTAÇÃO DA DISCIPLINA
Autoria: Stella Marys Dornelas Lamounier
Leitura crítica: Marcilyanne Moreira Gois

A disciplina tem como objetivo apresentar os principais conceitos


na teoria e prática para a execução de testes de software, tanto
de forma manual quanto automatizados. Além disso, serão
apresentadas as principais técnicas, métodos e ferramentas
existentes no mercado, que visam auxiliar futuros testadores nas
práticas de validação e verificação de software.

Além disso, destaca a importância de se realizar testes, desde


o início, na concepção do sistema, mostrando que essa prática
possibilita a redução de custos e retrabalhos.

Outra abordagem apresentada são as técnicas de Inspeções,


mostradas na teoria e prática. São abordadas as etapas de inspeção
de software, o papel e responsabilidade de cada envolvido em
cada uma destas etapas e, posteriormente, a aplicação na prática
de técnicas como: AD-HOC, perspectiva baseada em leitura. Além
disso, é apresentada a importância do controle de versões e uma
das ferramentas muito utilizadas, o GIT.

Por fim, serão apresentadas ferramentas para a automação de


testes de forma prática e intuitiva, utilizando o framework Junit para
testes automatizados de Unidade; a Selenium, para usabilidade,
compreenderá a utilização da ferramenta Postman para testes de
Interface (GUI)

Testes de software têm sido utilizados, frequentemente, nas


empresas. Hoje, os gestores já têm consciência da sua importância
na criação de sistemas com qualidade, portanto, compreender o uso
destas técnicas, bem como as principais ferramentas utilizadas hoje,
2
dará a você um maior conhecimento que poderá ser aplicado ao
longo de sua carreira profissional.

INTRODUÇÃO

Olá, aluno (a)! A Aprendizagem em Foco visa destacar, de maneira


direta e assertiva, os principais conceitos inerentes à temática
abordada na disciplina. Além disso, também pretende provocar
reflexões que estimulem a aplicação da teoria na prática
profissional. Vem conosco!

3
INÍCIO TEMA 1 TEMA 2 TEMA 3 TEMA 4

TEMA 1

Introdução a Testes de Software


______________________________________________________________
Autoria: Stella Marys Dornelas Lamounier
Leitura crítica: Marcilyanne Moreira Gois
DIRETO AO PONTO

Sabemos que o software está presente em praticamente todas


as atividades da sociedade, auxiliando profissionais/ usuários
de diferentes áreas. Isso desde a Medicina, com a utilização
de algoritmos de Inteligência Artificial, que auxilia médicos em
complexos procedimentos cirúrgicos, podendo salvar vidas, e
também em transações financeiras, que, se houver presença de um
erro mínimo pode levar o gestor a prejuízos milionários, acarretando
sua falência no mercado financeiro. Com o passar dos anos, por
meio da melhoria contínua das tecnologias, profissionais da área
têm buscado cada vez mais sistemas seguros, corretos ou com o
mínimo de erros possíveis.

Esse modelo de software confiável só teve ênfase por volta da


década de 1970, onde foi criada a famosa Crise do Software. Nessa
época, houve uma enorme demanda por softwares, mas realizar
a manutenção nesses sistemas era quase impossível, o que
ocasionou sistemas obsoletos, entregues fora do tempo estipulado,
orçamentos estourados e cheios de erros graves que não estavam
de acordo com os requisitos levantados, gerando uma enorme
insatisfação dos clientes.

Portanto, foi nesta década que se começou a falar em testar


software como mecanismo de encontrar possíveis erros em
qualquer tipo de sistemas.

De acordo com Tonini (2012), autores como Dijkstra (1975) e Glen


Myers (1979) relataram que a principal funcionalidade dos testes
de software é processar um sistema, de modo que seja possível
encontrar erros ou defeitos e não a ausência desses erros, como
muitos outros profissionais das áreas pensavam.

5
Um aspecto fundamental e importante, nos testes de software,
é que quanto mais cedo começar as atividades de testes, menos
retrabalho e menos dispendiosos os sistemas ficam. Descobrir
falhas em um software, no início da concepção do sistema, pode
evitar erros que são capazes de impactar até a vida das pessoas.
Podemos observar na Figura 1, ao se realizar testes nos requisitos,
ou seja, identificar se os requisitos levantados estão de acordo com
o que o cliente deseja, torna seu custo muito menor, ao contrário
do que acontece na fase de manutenção, que pode chegar a ser no
mínimo 40 vezes maior.

Figura 1 - Custo relativo para corrigir um defeito

Fonte: adaptado de Pressman (2011, p. 367).

A Figura 1 relata, em forma de gráfico de barras, que quanto


mais o software se desenvolve, mais seu custo, com a correção
de erros, aumenta. Além disso, que no início do levantamento
de requisitos, sua correção de erros é bem pequena e tende a
aumentar nas seguintes fases: projeto, aumento entre três a seis
vezes; codificação, mais de dez vezes; na fase de testes, entre dez
a quarenta vezes; e, na última etapa de manutenção, a taxa de
aumento pode chegar de quarenta a mil vezes.

6
Como é feita essa descoberta de erros, seja nas fases iniciais
ou no decorrer da criação do sistema? Isso é possível utilizando
ferramentas e técnicas de testes de software.

Técnicas, como de validação e verificação, são comumente utilizadas


durante todo o processo de ciclo de vida do software, são capazes
de avaliar códigos, documentos, manuais, artefatos, entre outros, a
fim de detectar possíveis erros e controlar a qualidade do sistema.

A verificação tem como funcionalidade realizar testes para encontrar


erros, verificando se o software, que está sendo desenvolvido,
está de acordo com os requisitos funcionais ou não funcionais
levantados, a fim de sanar a pergunta: estamos construindo o
produto da maneira correta?

A validação se preocupa em assegurar se o sistema atende


expectativas do cliente, ou seja, se o software está de acordo com
o que o cliente deseja, e obter a resposta para a pergunta: estamos
construindo o produto certo?

O processo de Verificação e Validação, também conhecido como V &


V pode ainda ser dividido em análise estática e dinâmica: a primeira
é responsável pela garantia do software e não se preocupa com o
sistema executável; e a segunda já trabalha com a fase de execução
do sistema, verificando se as entradas estão de acordo com a saída
desejada.

Em teste de software é preciso lembrar que o profissional da área


deverá saber diferenciar defeito, erro e falha. O defeito reflete
a imperfeição ou inconsistência do sistema e, nesse contexto,
pode-se dizer que é algo que foi implementado no software de
maneira incorreta, como, por exemplo: dados que são tratados de
forma errônea ou não tratados. O erro é fruto da ação humana,
produzindo um resultado incorreto ou uma falha na escrita do

7
código e, por fim, a falha é caracterizada como um comportamento
inesperado do sistema, sendo um comportamento inconsistente,
como, por exemplo, uma tela de aviso ao usuário.

Por fim, a inspeção de software é utilizada para testar diversos tipos


de artefatos de um software e não apenas seu código fonte. Esses
artefatos podem ser: atas de reuniões, diagramas da UML, modelos
de dados, documentação do próprio software. Essa técnica é
amplamente utilizada para detector de erros por meio de processos
bem definidos pela equipe de testes, e é caracterizado como uma
técnica de análise estática, que tem como propriedade verificar
a qualidade do sistema de forma rigorosa e bem definida para
sanar problemas que podem vir a atingir novos produtos, auxiliar
conjuntamente na comunicação entre a equipe, diminuindo o custo
econômico do sistema.

Referências bibliográficas
NETO, A.; DIAS, C. Introdução a teste de software. Engenharia de Software
Magazine, v. 1, p. 22, 2007.
PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7. ed.
Porto Alegre: McGraw-Hill; BookMan, 2011.
TONINI, A. C. Organização das operações de testes independentes de
software: proposta de um modelo conceitual. Tese de Doutorado. São
Paulo: Universidade de São Paulo, 2012. Disponível em: [Link]
[Link]/teses/disponiveis/3/3136/tde-24122013-112156/publico/Tese_
ANTONIOCARLOSTONINI_unprotected.pdf. Acesso: 27 jun. 2021.

PARA SABER MAIS

Não se pode falar em testes de software sem mencionar o conceito


de qualidade, desse modo, podemos dizer que a qualidade é algo
extremamente relativo e subjetivo. Um exemplo disso seria um
automóvel que, para certo usuário, uma pessoa da cidade, um

8
modelo do tipo utilitário pode servir muito bem, mas para um
homem do campo, não, ou seja, dependerá de como o usuário
deseja utilizar e qual sua serventia.

Nesse mesmo contexto, segue o software. Talvez um sistema


robusto, cheio de funcionalidade e telas pode não ser tão útil,
uma vez que o cliente pode precisar de um sistema que possa
apenas facilitar seu controle de mercadoria. Como medir este
conceito de qualidade? Como um software deve ser dotado de
qualidade? A resposta é simples, primeiramente, deve estar de
acordo com as necessidades do cliente, pois de nada adianta criar
um sistema grande, complexo, se, ao final, nem a própria equipe
que o desenvolveu é capaz de utilizá-lo ou mesmo realizar a entrega
no tempo e custo esperado. Além disso, o usuário não consegue
arcar com seu valor, mas o mais importante para se ter um sistema
com qualidade é que independente da sua complexidade, deverá,
obrigatoriamente, apresentar o mínimo de erros possíveis.

A qualidade já é empregada há séculos, desde a época das


pirâmides do Egito, onde foram construídas com alto rigor de
planejamento, execução e controle, e pode-se, então, concluir a obra
com eficácia. Outro exemplo é a muralha da China, que, por meio de
sua força de trabalho, pode finalizar sua construção mesmo depois
de muitos anos.

Entretanto, tudo isso só teve repercussão na década de 1970, que


culminou na famosa Crise do Software. Nessa época, os softwares
evoluíam rapidamente, junto com a complexidade dos problemas
gerados, pois não havia técnicas específicas para identificar os
erros ocasionados por sistemas desenvolvidos sem nenhum tipo
de padronização, os softwares eram criados de forma informal,
sistemas importantes eram entregues com muitos atrasos, que
chegavam, por muitas vezes, a anos, com custo elevado, sem
confiabilidade. Não havia se quer atendimento aos requisitos
9
levantados. A partir desse marco, foram criadas novas formas de
métodos de desenvolvimento e padronização, isto é, a Engenharia
de Software passa a fazer parte na criação e padronização
de sistemas e começam a surgir os testes de software e suas
técnicas, a fim de sanar esses problemas, como também a figura
do profissional de teste que detém competências técnicas para
descobrir a presença de erros, caracterizando o sistema com mais
qualidade.

Portanto, sanar erros é primordial para manter a qualidade dos


sistemas. Isso só é possível, utilizando técnica apropriadas e
atentar que estes testes vieram para mostrar os erros no sistema
e quanto mais cedo os erros forem identificados, menos tempo de
desenvolvimento é gasto, originando um sistema de qualidade e de
acordo com o planejado.

Referências bibliográficas
PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. 7. ed.
Porto Alegre: McGraw-Hill; BookMan, 2011.

TEORIA EM PRÁTICA

O profissional de testes de software só ganhou notoriedade a


partir da década de 1970, antes disso mal se falava em Engenharia
de Software. Imagine, então, teste de software ou profissionais
responsáveis por testes.

Por esta razão, muitos projetos se tornavam dispendiosos, com


tempo de entrega muito maior que o planejado, resultando, por sua
vez, em sistemas que continham uma série de erros, frustrando o
usuário final.

10
Com o passar dos tempos e com advento de novas tecnologias,
esse profissional se tornou peça muito importante para a criação
de sistemas com o mínimo de erros possíveis, porém, ainda hoje,
sistema são passíveis de erros.

Reflita sobre a importância de se ter um profissional responsável


apenas para testes de software em uma empresa e se precisaria
ser um profissional que entendesse de testes e, ao mesmo tempo,
de codificação, designer, banco de dados etc. Seria benéfico para a
empresa um profissional multitarefas ou um que seja responsável
apenas por testar, aquele que saiba fielmente utilizar de forma
correta ferramentas e técnicas que reduzem os erros de um
software? Qual profissional você contrataria para sua empresa?

Para conhecer a resolução comentada proposta pelo professor,


acesse a videoaula deste Teoria em Prática no ambiente de
aprendizagem.

LEITURA FUNDAMENTAL
Indicações de leitura

Prezado aluno, as indicações a seguir podem estar disponíveis


em algum dos parceiros da nossa Biblioteca Virtual (faça o log
in por meio do seu AVA), e outras podem estar disponíveis em
sites acadêmicos (como o SciELO), repositórios de instituições
públicas, órgãos públicos, anais de eventos científicos ou
periódicos científicos, todos acessíveis pela internet.

Isso não significa que o protagonismo da sua jornada de


autodesenvolvimento deva mudar de foco. Reconhecemos
que você é a autoridade máxima da sua própria vida e deve,

11
portanto, assumir uma postura autônoma nos estudos e na
construção da sua carreira profissional.

Por isso, nós o convidamos a explorar todas as possibilidades da


nossa Biblioteca Virtual e além! Sucesso!

Indicação 1

O capítulo 4 tem como objetivo relatar conceitos importantes


sobre testes de software, aborda temas, como: fundamentos, casos
de teste, depuração, teste estrutural, teste funcional. Também é
demonstrado, na prática, como se realiza os principais testes de
software.

Para realizar a leitura, acesse nossa plataforma Biblioteca Virtual e


busque pelo título da obra.

MAITINO NETO, R. Engenharia de software. Londrina: Editora e


Distribuidora Educacional S.A., 2016.

Indicação 2

O capítulo 5 tem como objetivo relatar os princípios gerais de testes,


abordando conceitos de validação e verificação, como são realizadas
as atividades de testes e, por fim, a aplicação das principais técnicas.

Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e


busque pelo título da obra.

FALBO, de A..; R. Engenharia de software: notas de aulas


problemas e soluções. Espírito Santo: Universidade Federal do
Espírito Santo (UFES), Intersaberes, 2014.

12
QUIZ

Prezado aluno, as questões do Quiz têm como propósito a


verificação de leitura dos itens Direto ao Ponto, Para Saber
Mais, Teoria em Prática e Leitura Fundamental, presentes neste
Aprendizagem em Foco.

Para as avaliações virtuais e presenciais, as questões serão


elaboradas a partir de todos os itens do Aprendizagem em Foco
e dos slides usados para a gravação das videoaulas, além de
questões de interpretação com embasamento no cabeçalho
da questão.

1. Existe uma técnica muito importante para detecção de erros, de


forma rigorosa e precisa, verificando e revisando os artefatos
de softwares, de modo que seja melhorada a produtividade do
sistema, pois estes erros são encontrados nestes artefatos que
muitas vezes estão isolados. Essa técnica é conhecida como:

a. Qualificação de software
b. Testes de software.
c. Validação de software.
d. Verificação de software.
e. Inspeção de software.

2. Inúmeras são as técnicas de testes de softwares, que têm


como finalidade diminuir ao máximo possível a quantidade
de erros em um software. Entre elas, pode-se citar a
responsável por analisar o código fonte de um software,
mas sem a necessidade da execução do software. Essa
técnica é conhecida como:

13
a. Técnica de leitura baseada em perspectivas.
b. Técnica de leitura baseada em cenários.
c. Análise estática.
d. Análise dinâmica.
e. Inspeção de software.

GABARITO

Questão 1 - Resposta E
Resolução: A técnica de Inspeção de software é utilizada
para verificar os artefatos de software, seja em um código
fonte ou até mesmo em sua própria documentação. Sua
responsabilidade é manter a qualidade do sistema, a fim de
estar de acordo com que o cliente realmente necessita.
Questão 2 - Resposta C
Resolução: A análise estática está relacionada com a verificação
do software, sem que seja executado, utilizando ferramentas
automatizadas ou até mesmos manuais, que verifiquem, por
exemplo: erros de sintaxe, falhas de segurança, práticas ruins
entre outros, auxiliando na busca de erros nos caminhos
de execução para que seja descoberto o mais rapidamente
possível.

14
INÍCIO TEMA 1 TEMA 2 TEMA 3 TEMA 4

TEMA 2

Técnicas de Teste de Software


______________________________________________________________
Autoria: Stella Marys Dornelas Lamounier
Leitura crítica: Marcilyanne Moreira Gois
DIRETO AO PONTO

Utilizar técnicas para testar software virou atividade obrigatória nas


empresas de desenvolvimento. Essas técnicas vieram para mostrar
o quão importante é, para o profissional de testes, sua aplicação
durante todos o processo de desenvolvimento de sistemas.

Sabemos que só há pouco tempo essas atividades foram


incorporadas seriamente nas empresas, pois, muitas vezes,
eram tachadas como caras e lentas. Entretanto, com a evolução
computacional, principalmente com o advento da Internet, foi
reconhecida a importância de aplicar técnicas aprimoradas para
detecção de erros, seja manual ou automatizada, desde que respeite
sua funcionalidade, que é a resolução de problemas ocasionados
pela presença de erros, atrapalhando, assim, a execução das regras
de negócios.

Técnicas manuais podem ser descritas como as mais primitivas


no mercado, mas isso não quer dizer que não são eficientes para
a detecção de erros, são caracterizadas como aquelas em que os
testadores realizam os testes de forma manual, com intervenção
humana, o que requer mais esforço e com mais tempo de execução,
elevando um gasto com profissionais. Seu objetivo é tentar cobrir
ao máximo o sistema, a fim de corrigir os erros que podem ser
apresentados, amplamente empregados, com testes funcionais e
não funcionais: primeiro, validando as funcionalidades do sistema
ou de um aplicativo; o segundo diz respeito a sua facilidade de uso,
aparência do sistema, velocidade, segurança etc.

Uma grande vantagem dessa técnica é o não conhecimento técnico


de outro tipo de software para realizar as atividades, mas, mesmo
assim, o testador deverá possuir habilidades necessárias para
conduzir os testes.

16
A técnica de teste ad hoc é mais adequada para a execução manual,
pois é utilizado quando não se tem um planejamento de testes, ou
seja, realizado informalmente, aleatório e desorganizado, sem a
preparação ou utilização de técnicas adequadas para conduzir todo
o processo de testes. Os erros são encontrados de forma inesperada
pelo testador, que deve ter conhecimento técnico um mínimo
curioso.

Os testes automatizados utilizam diferentes tipos ferramentas para


a condução das atividades, cada uma deve estar atrelada a tipos de
testes específicos. Com essas novas técnicas, pode-se economizar
tempo, custo e número de profissionais contratados, sem a
interferência dos desenvolvedores, pois uma vez que a ferramenta é
implementada, é muito mais fácil repetir sua execução.

Esses modelos são extremamente precisos, mas são aplicados, na


maioria das vezes, em sistemas grandes e complexos, e, mesmo
assim, com a utilização destas ferramentas é impossível cobrir todos
os softwares.

Os testes automatizados seguem os mesmos passos da Pirâmide de


Testes (Testes Unitários, Testes de Integração e Testes de Sistemas/
Testes de GUI), conforme demonstrado na Figura 1, garantindo
menos esforço para encontrar erros ou defeitos que comprometam
a qualidade dos sistemas.

17
Figura 1 - Pirâmides de Testes de Software

Fonte: Bortoluci; Duduchi (p. 3, 2015 apud Cohn, 2013, [n. p.]).

Ferramentas que realizam os testes de automação são utilizadas


para detectar em classes, códigos e rotinas, problemas de sintaxe,
estruturas malfeitas, que podem comprometer o resultado
esperado.

Nos testes de integração que utilizam ferramentas automatizadas, é


possível, em se tratando de aplicação web, avaliar se as API’s estão
em funcionamento conforme pretendido. Uma boa característica a
respeito dessa automação é que pode ser aplicada sem que haja o
apoio da interface gráfica.

Por último, as ferramentas que cobrem os Testes de Sistemas são


capazes de responder questões de interface gráfica do sistema, ou
seja, se as interações do usuário com o software estão sendo feitas
de forma clara e amigável, atingindo o resultado esperado, também
podem testar simulações que acontecem de forma não muito
frequentes, como, por exemplo, toques ou cancelamentos.

18
Quando se fala em testes automatizado, a equipe deverá ter
capacidade de avaliar qual a melhor ferramenta a ser utilizada
naquele tipo de teste. No mercado, são inúmeras ferramentas
voltadas para essa resolução, algumas de código aberto e outras
pagas, mas com o mesmo fim, que é auxiliar os profissionais nos
mais diversos tipos de desenvolvimentos.

Em testes de regressão, é comum a utilização de ferramentas


automatizadas, pois são responsáveis por reduzir o esforço
da equipe e encontrar erros que, por muitas vezes, passam
desapercebidos pelas técnicas manuais.

Independente do modelo adotado, é imprescindível a utilização


de um Plano de Testes, documento que guiará os profissionais da
área de testes de maneira organizada e colaborativa. O que se deve
buscar é a que atenda as demandas enfrentadas.

Referências bibliográficas
BORTOLUCI, R.; DUDUCHI, M. Um estudo de caso do processo de testes
automáticos e manuais de software no desenvolvimento ágil. X Workshop
de Pós-Graduaçao e Pesquisa do Centro Paula Souza. São Paulo, 2015.

PARA SABER MAIS

Técnicas de testes de software ajudam, muitas vezes, a sanar


dúvidas dos clientes, mas para que sejam obtidas as respostas
certas, o testador deve possuir conhecimento das técnicas a serem
utilizadas, suas premissas e seus processos. Além disso, também é
de fundamental importância colocar em prática a execução destas
técnicas, levando, assim, um conhecimento quase natural de todo o
sistema a ser entregue ao usuário, demonstrando que o sistema foi
bem feito e bem executado.

19
Muitas vezes, testar software não é sinônimo de qualidade,
simplesmente ser conhecedor destas técnicas e utilizá-las de forma
eficiente não significa que todos os critérios forem atendidos. É
preciso explorar e estudar os testes, de modo que, seja executada
todo o ciclo de planejamento, desenvolvimento, execução e
manutenção dos sistemas, por meio de técnicas que correspondem
particularmente a cada uma destas fases.

Todas as fases passam por um rigoroso planejamento, é impossível


testar qualquer sistema sem que os analistas de testes ou até
mesmo os testadores de softwares tenham em mãos documentos
que possam auxiliá-los na melhor tomada de decisão. São vários
documentos que norteiam estes profissionais e, entre eles, pode-se
destacar como os mais utilizados os Plano de testes, suíte de testes
e casos de testes.

O Plano de Teste tem como finalidade compor o escopo de testes,


nele é possível encontrar informações a respeito das estratégias
a serem utilizadas no processo, informações uteis, cronograma,
configurações do ambiente a ser trabalhado, guia de comunicação
entre os stakeholders e pode ser empregado, tanto em metodologias
tradicionais quanto na metodologia Ágil, que, por sinal, é mais
utilizada em empresas que se destacam no mercado de tecnologia.

Esse plano deverá ser desenvolvido e pelo gerente de testes, que


é quem tem a responsabilidade de planejar as atividades a serem
executadas, estabelecer métricas, planejar e acompanhar o processo
de teste. Em geral, esse modelo deve conter: uma introdução com
a identificação clara do projeto, escopo, objetivos principais, os
requisitos e itens a serem testados, quais os testes deverão ser
realizados, critérios de avaliação e cronograma de atividades.

No mesmo sentido, temos a suíte de testes, que trata de uma


coleção de casos de testes e é dividida de acordo com as

20
funcionalidades do sistema ou o tipo de teste a ser realizado,
facilitando a organização e o gerenciamento dos testes, isto é,
devido à grande quantidade de testes realizados, muitas vezes,
o testador se sente perdido com a quantidade de detalhes
apresentados.

Um exemplo típico da utilização de uma suíte de testes é a


representação de uma transação com quatro casos de testes, como
mostrado abaixo:

• Casos de Teste 1: Efetuar Login.

• Casos de Teste 2: Incluir cadastramento de aluno.

• Casos de Teste 3: Finalizar cadastramento.

• Casos de Teste 4: Efetuar Logout.

Como é demonstrado, nota-se a presença de quatro casos que


testes, que representam um fluxo para verificar o comportamento
do sistema.

Portanto, além da realização de técnicas de testes, é imprescindível


a criação de um Plano de Testes claro, objetivo, que demonstre os
passos a serem seguidos pelos profissionais da área.

TEORIA EM PRÁTICA

A criação de um Plano de Teste é de extrema importância para


a execução dos testes a serem realizados ao longo de todas
as fases de desenvolvimento de um software. Este documento
deve ser escrito de forma clara, que apresente informações que
direcionarão a equipe para a execução correta de testes, bem como
quais ferramentas deverão ser utilizadas e seu cronograma de
21
execução. Geralmente, quem cria e conduz é o gerente de testes.
De acordo com a explicação mencionada acima, imagine que você
é o (a) gerente de testes e tem como responsabilidade a criação de
plano de testes para um software de cadastro de alunos de uma
universidade. Elabore este documento, de forma sucinta, com as
principais informações que auxiliarão a equipe na realização de
testes.

Para conhecer a resolução comentada proposta pelo professor,


acesse a videoaula deste Teoria em Prática no ambiente de
aprendizagem.

LEITURA FUNDAMENTAL
Indicações de leitura

Prezado aluno, as indicações a seguir podem estar disponíveis


em algum dos parceiros da nossa Biblioteca Virtual (faça o log
in por meio do seu AVA), e outras podem estar disponíveis em
sites acadêmicos (como o SciELO), repositórios de instituições
públicas, órgãos públicos, anais de eventos científicos ou
periódicos científicos, todos acessíveis pela internet.

Isso não significa que o protagonismo da sua jornada de


autodesenvolvimento deva mudar de foco. Reconhecemos
que você é a autoridade máxima da sua própria vida e deve,
portanto, assumir uma postura autônoma nos estudos e na
construção da sua carreira profissional.

Por isso, nós o convidamos a explorar todas as possibilidades da


nossa Biblioteca Virtual e além! Sucesso!

22
Indicação 1

A revista Engenharia de Software traz várias abordagens em sua


área de concentração, em especial uma edição que aborda as
principais características e funcionalidades de testes de software,
como também as técnicas mais usadas.

Para realizar a leitura, acesse a Internet e procure por revista


Engenharia de Software - Qualidade de software - Edição especial.

ENGENHARIA DE SOFTWARE MAGAZINE. Qualidade de Software –


Entenda os principais conceitos sobre teste e inspeção de software.
Revista Engenharia de Sotware, edição especial, v. 1. Rio de
Janeiro, 2007.

Indicação 2

O capítulo 4, da obra indicada, traz conceitos práticos e


teóricos sobre as principais técnicas de testes de software.
Também é possível conhecer o Test-Driven Development (TDD) e a
implementação de alguns testes.

Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e


busque pelo título da obra.

MAITINO NETO, R. Engenharia de software. Londrina: Editora e


Distribuidora Educacional S.A., 2016.

QUIZ

Prezado aluno, as questões do Quiz têm como propósito a


verificação de leitura dos itens Direto ao Ponto, Para Saber

23
Mais, Teoria em Prática e Leitura Fundamental, presentes neste
Aprendizagem em Foco.

Para as avaliações virtuais e presenciais, as questões serão


elaboradas a partir de todos os itens do Aprendizagem em Foco
e dos slides usados para a gravação das videoaulas, além de
questões de interpretação com embasamento no cabeçalho
da questão.

1. Teste Funcional ou de Caixa Preta é uma técnica muito comum


aplicada em testes de software, sua funcionalidade é testar se os
requisitos dos sistemas foram atingidos, neste modelo podemos
destacar a técnica de Valor Limite.
Analise o problema abaixo e demonstre, por meio da Técnica de
Valor Limite, sobre quais os valores que o testador usaria.
Um campo de entrada de dados que aceita valores de 1990 a
2021.

a. 0, 1998, 1999, 2021


b. 1989, 0 2020,2021.
c. 1989, 1991, 2021, 0.
d. 1989, 1990, 2020, 0.
e. 1979, 1990, 2020, 2021.

2. Testes Estruturais ou de Caixa Branca são utilizados


para testar a parte interna do sistema, isto é, o código
fonte do software. Este modelo aborda a Complexidade
Ciclomática, que tem como funcionalidade garantir que
todos os caminhos foram testados. Analise o gráfico abaixo,
aplique a técnica da complexidade Ciclomática e assinale a
alternativa que demonstra corretamente a quantidade de
caminhos a serem percorridos pelo testado.

24
Figura 1 - Testes do Caminho Básica – Complexidade Ciclomática.

Fonte: elaborada pela autora.

a. 4.
b. 3.
c. 6.
d. 2.
e. 7.

25
GABARITO

Questão 1 - Resposta E
Resolução: A técnica de análise de valor limite faz uso dos
valores: mínimo inválido, mínimo válido, máximo válido e
máximo inválido, onde 1989 é o valor mínimo inválido, 1990
valor mínimo válido, 2020 valor máximo válido e 2021 valor
máximo inválido.
Questão 2 - Resposta B
Resolução: O cálculo da Complexidade Ciclomática é feito a
partir da equação matemática: V(G) = arestas – nós + 2. Na
figura, temos oito arestas representadas pelas setas e sete nós
representados pelo círculo. Aplicando a fórmula, temos: 8 – 7 +
2 = 3.

26
INÍCIO TEMA 1 TEMA 2 TEMA 3 TEMA 4

TEMA 3

Técnicas de Inspeção de Software


______________________________________________________________
Autoria: Stella Marys Dornelas Lamounier
Leitura crítica: Marcilyanne Moreira Gois
DIRETO AO PONTO

Vimos sobre a importância de executar a inspeção de software


durante o processo de desenvolvimento de sistemas, tendo como
principal objetivo testar defeitos de maneira antecipada.

A inspeção não se limita apenas a métodos tradicionais de


desenvolvimento, como os modelos Cascatas, Espiral, Prototipação,
entre outros, que trazem uma abordagem mais engessada de como
é conduzida a criação de sistemas.

Com o passar dos tempos e a evolução computacional, as empresas


de desenvolvimento tiveram que se adaptar, sair destes modelos
complexos, criados por volta da década de 1970, para modelos mais
rápidos, que atendessem os clientes de forma ágil e segura, mas
sem perder a qualidade desejada.

Segundo Prikladnicki et al. (2014, p. 5), foi por volta de 2001 que
surgiram os primeiros passos para a criação da Metodologia Ágil,
que, em seu contexto teórico, torna possível realizar todas as
mudanças em requisitos, mesmo que tardiamente. Trata-se de
métodos flexíveis, onde os requisitos podem sofrer alterações
durante o desenvolvimento, sem estar amarrado a contratos que
não podem ser alterados.

Seu surgimento trouxe outra perspectiva na criação do software,


um novo paradigma. Seus criadores concordaram que os métodos
tradicionais de desenvolvimento já não conseguiam atender
as regras de negócios que se tornavam cada dia mais flexíveis,
passíveis de mudanças. Desse modo, foi criado o Manifesto Ágil
(2000), seguindo cindo princípios básicos: coragem, comunicação,
simplicidade, feedback, respeito.

28
Muitos frameworks podem aplicar a Metodologia Ágil. Detacaremos
o Scrum, que tem como característica auxiliar no desenvolvimento
de projeto mais complexo, sendo um dos modelos de Metodologia
Ágil mais empregado em empresas. Seu pilar é composto
(transparência, inspeção e adaptação) conforme ilustrado na Figura
1.

Figura 1 - Pilares do Scrum

Fonte: adaptado de Botelho Junior (2021).

O primeiro Pilar do Scrum é a transparência, onde todo o trabalho


da equipe envolvida deve ser visível, a fim de proporcionar
melhores resultados a quem gerencia seus processos. O segundo
pilar é a inspeção, que significa que todo trabalho deve ser
inspecionado com a frequência necessária para garantir a qualidade
na primeira tentativa, isto é, os artefatos contidos no Scrum devem
ser revisados quantas vezes forem necessárias, para a detecção de
defeitos, mas o inspetor responsável por realizar a inspeção deve
tomar o cuidado necessário para que não atrapalhe a execução das
tarefas e, desse modo, o profissional deve ser dotado de experiência
em técnicas de verificar artefatos.

29
Os testes são incorporados na Metodologia Ágil, seguindo as
diretrizes de seu Manifesto, envolvendo a perspectiva do cliente o
mais cedo possível, sempre responder as mudanças o mais rápido
possível, tendo em vista que a equipe, denominada como time, seja
capaz de lidar com situações novas que ocorrem a todo momento,
identificar incertezas se adaptar a essas mudanças ocorridas.

Dentro do Scrum, a inspeção é tão importante para o sucesso do


projeto que se pode adotar diferentes técnicas para sua execução.
Seu papel é tão forte que os testes estão inseridos dentro deste
pilar, garantindo que a qualidade esteja sendo produzida a cada
Sprint, ao invés controlar apenas ao final do projeto.

A inspeção se dá, geralmente, para a verificação de erros para


antecipar correções, durante reuniões de revisões, diariamente
quando se terminar uma história, portanto, pode-se notar que
processos que envolvem inspeção estão envolvidos também
durante todo o ciclo de vida da metodologia Scrum e não apenas em
métodos tradicionais de desenvolvimento de software.

Quais ferramentas usar? As mais diversificadas possíveis, porém,


deve-se procurar por técnicas que não atrasarão o desenvolvimento
do projeto. Um bom exemplo é a técnica AD HOC, pois as reuniões
são sempre marcadas por conversas AD HOC, ou seja, não possuem
algum tipo de formalidade, planejamento ou estratégia, que limite o
pensamento do time.

Uma outra abordagem Ágil muito usada em empregas, que se


assemelha ao Scrum, é o Extreme Programming (XP), mas com
uma diferença particular: seu foco está mais ligado às práticas de
engenharia e em desenvolvimento para pequenas e médias equipes.
Ambas executam testes de software, só que o Scrum os realiza
paralelamente ao processo de implantação e o XP, como é orientado
a testes, é escrito antes das funcionalidades implementadas e usam,

30
em seu processo de confecção de código, a programação em pares.
Essa técnica é caracterizada pela produção do código em duplas,
ou seja, existe a presença do piloto, responsável pela codificação
e o co-piloto, que faz a verificação e inspeção do software. Ambos
são de extrema importância para que o sistema seja entregue com
a qualidade esperada, mas tem o papel crucial de revisar o que
foi digitado e apontar os erros não percebidos pelo programador
aconselhando uma possível solução.

Portanto, trabalhar com metodologias tradicionais para o


desenvolvimento de software é importante, mas as empresas, hoje,
têm procurado novas alternativas que trazem rapidez e flexibilidade
nas mudanças que ocorrem a todo o momento, bem como
assegurar um produto de qualidade que requer, além de muita
determinação, flexibilidade a mudanças e revisões constantes para
que, ao final, o software a ser entregue possua, além de rapidez,
qualidade. Isso é o que esses modelos, que utilizam a metodologia
Ágil, querem demonstrar.

Referências bibliográficas
PRIKLADNICKI, R.; WILLI, R.; MILANI, F. Métodos ágeis para desenvolvimento
de software. Porto Alegre: Bookman, 2014.
BOTELHO JUNIOR, G. Scrum Path+: seu caminho para a agilidade. 1. ed. 2021.

PARA SABER MAIS

compreensão de documentos e artefatos, com objetivos de


encontrar defeitos antes mesmo da execução do sistema. Os
desenvolvedores já possuem, no seu dia a dia, técnicas de escrita
de código, documentos, levantamento de requisitos e criação
de diagramas da UML, porém, muitos destes profissionais ainda
possuem certa limitação ao interpretar um documento ou artefato.
31
Uma solução apresentada é criar o hábito de técnicas baseada em
leitura, sendo um conjunto de instruções que levam o inspetor a
compreender de forma mais claro e objetiva os artefatos.

Existem técnicas que guiam os usuários a um entendimento sobre


como olhar e entender um produto, identificando possíveis erros.
Uma delas, muito curiosa, é a Ad-hoc.

Este modelo não utiliza nenhuma técnica formal de entendimento


de leitura. Por exemplo, em uma equipe com vários leitores, cada
um, de forma individual, lê e interpreta o documento a seu modo,
como bem entende, por meio de sua perspectiva e experiência.
Pode soar de maneira estranha essa técnica, mas é comum sua
utilização em empresas de software, principalmente, naquelas que
adotam a Metodologia Ágil.

Na leitura Ad-Hoc, o inspector utiliza apenas seu conhecimento para


realizar a inspeção, não é seguido nenhum protocolo ou técnica,
suas considerações são feitas de forma informal, sem que haja
algum tipo de reunião de planejamento com os membros da equipe.

Como tantas empresas podem adotar essa técnica? Realmente dá


certo?

Para alcançar bons resultados, o profissional deverá ser dotado de


muita experiência para realizar as atividades de inspeção, utilizam
todos seus conhecimentos para tentar encontrar o número máximo
de defeitos. Seguindo esses paradigmas, é possível alcançar
excelentes resultados.

No entanto, utilizar está técnica pode ser um tanto quanto


perigoso dependendo do grau de conhecimento do inspetor,
pois muitos defeitos podem passar de forma despercebida, sem
que o profissional detecte. Outra questão é que como não existe

32
procedimento ou padrões a serem seguidos é uma técnica que não
é passível de melhoria, pois, assim que o inspetor termina aquela
atividade, rapidamente já passa para uma posterior.

Muitas vezes, a técnica de leitura Ad-Hoc pode se tornar um tanto


quanto cara, ou seja, será preciso elevar o custo do projeto, pois
contratar profissionais mais experientes pode ser mais dispendioso
para o projeto quando se comparado a contratação de profissionais
menos experientes, que seguem determinados roteiros.

Nesse sentido, vale pensar nas vantagens e desvantagens da adoção


desta técnica de inspeção, se as melhorias implantadas trazem mais
benefícios que o valor a ser gasto.

TEORIA EM PRÁTICA

As técnicas de inspeção são fundamentais para a detecção de


defeitos nos artefatos de softwares, muitas delas são dotadas de
padrões e protocolos de devem ser guiados pelos profissionais, a
fim de se obter um bom resultado final. Uma dessas técnicas, muito
comum e simples, utilizadas em empresas de desenvolvimento
para a detecção destes defeitos, é a checklist, onde o revisor recebe
um documento descritos em forma de checklist para capturar
informações importantes, enumerar defeitos e, principalmente,
propor questões que auxiliam na correção de defeitos. Neste
contexto, elabore um modelo de checklist simples, porém, objetivo,
que contenha informações a serem inspecionadas de forma fictícia
em uma tela de cadastro de clientes. Esse material deve auxiliar o
revisor a encontrar possíveis defeitos em artefatos.

Para conhecer a resolução comentada proposta pelo professor,


acesse a videoaula deste Teoria em Prática no ambiente de
aprendizagem.
33
LEITURA FUNDAMENTAL
Indicações de leitura

Prezado aluno, as indicações a seguir podem estar disponíveis


em algum dos parceiros da nossa Biblioteca Virtual (faça o log
in por meio do seu AVA), e outras podem estar disponíveis em
sites acadêmicos (como o SciELO), repositórios de instituições
públicas, órgãos públicos, anais de eventos científicos ou
periódicos científicos, todos acessíveis pela internet.

Isso não significa que o protagonismo da sua jornada de


autodesenvolvimento deva mudar de foco. Reconhecemos
que você é a autoridade máxima da sua própria vida e deve,
portanto, assumir uma postura autônoma nos estudos e na
construção da sua carreira profissional.

Por isso, nós o convidamos a explorar todas as possibilidades da


nossa Biblioteca Virtual e além! Sucesso!

Indicação 1

No capítulo 3, é feita uma abordagem bem clara sobre testes de


software, seus tipos e principais funcionalidades. Também destaca-
sea inspeção de software, exatamente na página 76, onde é possível
fazer uma leitura de suas principais áreas e verificar como é
realizado o processo de inspeção.

Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e


busque pelo título da obra.

GALLOTI, G. M. A. Qualidade de software. São Paulo: Pearson


Education do Brasil, 2016.

34
Indicação 2

A obra relata os principais aspectos que norteiam a Engenharia


de Software, dando ênfase aos seus fundamentos, métodos ágeis,
qualidade e testes. Neste contexto, em uma obra com tantos
requisitos, não poderia deixar de citar as inspeções de softwares,
localizadas na seção 3.4, abordando as principais técnicas e sua
empregabilidade.

Para realizar a leitura, acesse a nossa plataforma Biblioteca Virtual e


busque pelo título da obra.

MAITINO NETO, R. Engenharia de Software. Londrina: Editora e


Distribuidora Nacional S.A., 2016. 216p.

QUIZ

Prezado aluno, as questões do Quiz têm como propósito a


verificação de leitura dos itens Direto ao Ponto, Para Saber
Mais, Teoria em Prática e Leitura Fundamental, presentes neste
Aprendizagem em Foco.

Para as avaliações virtuais e presenciais, as questões serão


elaboradas a partir de todos os itens do Aprendizagem em Foco
e dos slides usados para a gravação das videoaulas, além de
questões de interpretação com embasamento no cabeçalho
da questão.

35
1. Inspeções de softwares são utilizadas para a correção
precocemente de defeitos em artefatos, técnicas que podem
ser usadas tanto em metodologias de desenvolvimento
tradicionais quanto em metodologias ágeis. Um dos modelos
ágeis muito comuns é o Scrum, que, em sua essência,
emprega a inspeção de artefatos de acordo com seu pilar.
Neste contexto, assinale e alternativa que demonstra
corretamente o pilar que se concentra a Inspeção.

a. Transparência, codificação, adaptação.


b. Transparência, inspeção, melhoria contínua.
c. Transparência, inspeção, adaptação
d. Transparência, inspeção, codificação.
e. Inspeção, codificação, adaptação.

2. Técnicas baseadas em leitura em inspeção de software tem


como característica guiar inspetores e, com sua utilização,
é possível selecionar um conjunto de perspectivas para
revisar requisitos. Uma dessas técnicas de leituras, muito
conhecida, é a AD-HOC, sendo sua finalidade analisar
individualmente os artefatos de software, sendo um dos
métodos mais empregados no mercado, atualmente.
Assinale a alternativa correta, que demonstra uma
característica desta técnica.

a. É uma técnica informal, onde a inspeção dos artefatos é feita


de acordo com a experiência do revisões.
b. É uma técnica muito usada por qualquer tipo de profissional,
desde os menos experientes até os mais experientes e, por
isso, é amplamente utilizada no mercado.

36
c. Os documentos criados durante a utilização da AD-HOC
devem ser rigorosamente inspecionados por todos os
membros da equipe.
d. AD-HOC segue protocolos de inspeção que, ao final, é capaz
de garantir toda a correção em diferentes modelos de
artefatos.
e. Suas reuniões são marcadas por planejamentos estratégicos,
que auxiliam os gestores na tomada de decisão.

GABARITO

Questão 1 - Resposta C
Resolução: Esses pilares são responsáveis pela criação
de sistemas de forma ágil e segura. Ser transparente quer
dizer que todos os processos devem estar visíveis a todos
os responsáveis, a inspeção (ponto-chave da questão), quer
dizer que deve se realizar, constantemente, inspeções para
detecções de possíveis erros e, finalmente, a adaptação, que
representa os ajustes nos processos que foram alterados
durante as modificações feitas na inspeção.
Questão 2 - Resposta A
Resolução: A técnica é dita como muito utilizada, pois a maioria
das empresas de desenvolvimento utilizam métodos ágeis para
desenvolvimento de software, o que tem como características
reuniões informais para a detecção de erros nos artefato.

37
INÍCIO TEMA 1 TEMA 2 TEMA 3 TEMA 4

TEMA 4

Processos e Casos de Testes


automatizados
______________________________________________________________
Autoria: Stella Marys Dornelas Lamounier
Leitura crítica: Marcilyanne Moreira Gois
DIRETO AO PONTO

Testes de software vem ganhando cada dia mais espaço nas


empresas de desenvolvimento e organizações. Trabalhar com
testes não é uma tarefa fácil como muitos podem pensar, é preciso
entender qual a melhor técnica a ser utilizada e a que mais se
aproxima para resolver a necessidade do cliente.

É preciso saber que, a cada momento, os sistemas computacionais


têm se tornado mais complexos, com mais funcionalidades, sendo
necessárias tomadas de decisões precisas.

Nesse contexto, é valido ressaltar que encontrar erros o mais


precocemente possível no software, pode auxiliar empresas de
desenvolvimento a alcançar altos níveis de confiabilidade em seus
produtos de softwares.

As etapas de desenvolvimento de software, no percorrer dos anos,


sofreram grandes mudanças organizacionais. Foram deixados para
trás processos, ditos como rígidos, repletos de documentação,
sendo que, em muitas vezes, alterar um requisito era algo
impossível para um novo paradigma de criar sistemas baseados em
métodos mais flexíveis, dinâmicos, onde o que importa é entregar
o projeto funcionando de forma eficaz, rápida e com qualidade,
com adaptações ,sempre que necessário, executando o mais rápido
possível, buscando melhoria contínua.

Independente da empresa adotar métodos tradicionais ou ágeis,


é importante ressaltar as principais diferenças entres os tipos de
testes existentes.

Os testes manuais são aplicados utilizando ações humana e, por


isso, são considerados lentos e com maior risco de algum erro/

39
defeito, passar desapercebido. Sua realização é feita totalmente por
um usuário que pode não identificar o erro e, por isso, é importante
que o testador tenha muita experiência.

Já os testes automatizados são rápidos e não há interferência


humana para sua execução, são dotados de funcionalidades capazes
de detectar e avisar o erro em questão de segundos, sugerindo
possíveis correções em determinados casos, o que gera menor custo
e maior precisão em sua execução. Sua funcionalidade é comparar
dados/ resultados obtidos com esperados, auxiliando o testador
a verificar se um determinado software tem ou não o resultado
esperado.

Alguns pontos dos dois tipos de testes, que podem ser destacados,
são os seguintes:

Quadro 1 - Testes manuais versus testes automatizados

Fonte: elaborado pela autora.

40
Quando usar testes manuais e quando usar automatizados?

Os testes manuais são mais indicados quando se tem uma


documentação muito vaga, ou seja, todos os requisitos ainda não
foram especificados. Nesse momento, é notória a presença de um
analista de qualidade que tenha experiência e boa intuição para
bom entendimento dos documentos apresentados.

Testes de usabilidade são realizados com base na experiência do


usuário, de diferentes perfis, são baseados na observação humana
quanto ao uso de uma função específica para grupos de usuários.

Ainda é algo muito complexo e, nesse contexto, adotar esta técnica


pode ser a melhor, pois o usuário que realizará o teste tem uma
visão mais próxima do usuário final que um teste automatizado.

Quando não se tem nenhum planejamento já estabelecido, sem


criação ou execução de regras, padrões ou outro tipo de sequência,
é melhor aplicar testes manuais.

A respeito de testes automatizados, é melhor sua aplicação


quando um sistema sofre alterações frequentes de atualizações,
e se trabalha com times grandes e de diferentes áreas, exigindo
testes frequentes, que são os chamados testes de regressão, que
tem como finalidade assegurar que as alterações feitas estão
funcionando e de acordo com o requisitado.

Em teste de carga também se utiliza muito a automatização de


testes, auxiliando a determinar o comportamento de um sistema
em condições reais, como, por exemplo, capacidade de acesso,
processamento, entre outros.

Por fim, não existe regra que demonstre se este teste é voltado às
metodologias mais tradicionais ou ágeis, algumas tem maior ênfase
para métodos mais flexíveis. A equipe de testesprecisa ter em
41
mente que independente da técnica ser manual ou automatizada,
o que deve ser determinada é a entrega rápida de um software
com menor quantidade de erros possíveis e custo de acordo com o
orçamento do cliente.

PARA SABER MAIS

A automação de testes surgiu por meio da necessidade de criar


modelos de testes que atendessem com mais precisão os testadores
que sempre desejaram otimizar tempo, diminuindo o custo e
aumentando a qualidade do software. É um campo relativamente
novo, mas que já traz benefícios muito bem vistos pela comunidade
de testadores, uma vez que os testes podem ser aplicados em
cenários diferentes, o que pode acarretar a descoberta mais que
prematura de um defeito no sistema que está sendo implementado.
Desse modo esses problemas são corrigidos rapidamente e entregas
feitas com menos erros, uma vez que testar todos os possíveis
cenários de forma manual ou testar as alterações realizadas, pode
dar muito trabalho para a equipe de testes.

Existem ferramentas muito novas no mercado, mas que já estão


sendo utilizadas pelas empresas de desenvolvimento que utilizam
a metodologia Ágil de implantação de software, como o caso
da Capybara, que gera Testes de Aceitação, uma ferramenta de
automação de testes para aplicações via web, ou seja, testes no
browser, com uma característica importante, que é ser de código
aberto. Sua funcionalidade é testar aplicações web, simulando como
um usuário real se comporta diante de determinada situação.

Como é realizado o teste com esse framework? É realizado por


meio de drivers e frameworks capazes de controlar os navegadores,
tornando possível simular, por exemplo, um cadastro de usuário

42
ou a compra de algum produto eletrônico, com a utilização de
comandos específicos, como, por exemplo: visit:, para visitar uma
URL; o visible, que verifica se determinado elemento da página está
visível; e o click_button, que verifica o clique em um botão.

Outra ferramenta que está se tornando muito popular é o Rspec,


que executa testes automatizados em linguagem Ruby. Seu
desenvolvimento é orientado a testes, ou seja, muito antes de
serem desenvolvidos os códigos, os testes são realizados. Outra
característica interessante é a criação dos testes utilizando a
tendência de DSL, que significa criar scripts mais próximos de
linguagem mais natural, como o inglês, ficando bem fácil para
entender o teste que foi escrito por outro testador.

Portanto, são ferramentas novas, mas que já estão presentes nos


mais diversos tipos de sistemas, principalmente em aplicativos web.
Uma observação importante, que os frameworks atuais trazem, além
de agilidade e precisão, é melhor compreensão dos testes com a
utilização de escritas menos complexas, de acordo com seu domínio
particular.

TEORIA EM PRÁTICA

Testes automatizados possuem inúmeros benefícios que podem


auxiliar as empresas de softwares a criar sistemas com uma
qualidade muito maior do que utilizando apenas testes manuais. É
possível intercalar tanto uma como a outra, isso dependerá do que
deve ser testado, se é uma nova funcionalidade, parte do código ou
algum botão.

Quando essas automações são aplicadas a alguma metodologia Ágil,


sua performance se torna ainda melhor, devido a sua manutenção

43
flexível e com reuniões menos burocráticas, o que, por muitas vezes,
atrapalha o desenvolvimento do sistema.

Imagina que você esteja em um ambiente de desenvolvimento, qual


o tipo de metodologia Ágil aplicaria para a criação de sistemas que
poderiam utilizar os testes de software automatizados e a relação
desta metodologia com testes automatizados?

Para conhecer a resolução comentada proposta pelo professor,


acesse a videoaula deste Teoria em Prática no ambiente de
aprendizagem.

LEITURA FUNDAMENTAL
Indicações de leitura

Prezado aluno, as indicações a seguir podem estar disponíveis


em algum dos parceiros da nossa Biblioteca Virtual (faça o log
in por meio do seu AVA), e outras podem estar disponíveis em
sites acadêmicos (como o SciELO), repositórios de instituições
públicas, órgãos públicos, anais de eventos científicos ou
periódicos científicos, todos acessíveis pela internet.

Isso não significa que o protagonismo da sua jornada de


autodesenvolvimento deva mudar de foco. Reconhecemos
que você é a autoridade máxima da sua própria vida e deve,
portanto, assumir uma postura autônoma nos estudos e na
construção da sua carreira profissional.

Por isso, nós o convidamos a explorar todas as possibilidades da


nossa Biblioteca Virtual e além! Sucesso!

44
Indicação 1

O artigo indicado tem como objetivo informar a importância de


utilizar a automação de testes no desenvolvimento de sistema,
detalhar os benefícios trazidos por este modelo de testes e a
aplicação na abordagem Ágil.

Pesquise o título da obra na Internet, por meio do buscador Google


ou outro de sua preferência.

BERNARDO, P. C.; KON, F.. A importância dos testes automatizados.


Engenharia de Software Magazine, v. 1, n. 3, p. 54-57, 2008.

Indicação 2

A tese indicada mostra porque se deve utilizar testes automatizados


em desenvolvimento de software. Além disso, demonstra que, ao
contrário do que muitos pensam, pode trazer redução de custos,
ainda mais quando aplicados seus padrões a metodologias Ágeis.

Pesquise o título da obra na Internet, por meio do buscador Google


ou outro de sua preferência.

BERNARDO, P. C. Padrões de testes automatizados. Tese de


Doutorado, curso Ciência da Computação. São Paulo: Universidade
de São Paulo, 2011.

QUIZ

Prezado aluno, as questões do Quiz têm como propósito a


verificação de leitura dos itens Direto ao Ponto, Para Saber

45
Mais, Teoria em Prática e Leitura Fundamental, presentes neste
Aprendizagem em Foco.

Para as avaliações virtuais e presenciais, as questões serão


elaboradas a partir de todos os itens do Aprendizagem em Foco
e dos slides usados para a gravação das videoaulas, além de
questões de interpretação com embasamento no cabeçalho
da questão.

1. Testes automatizados foram criados para aumentar a


qualidade do software, dotados de ferramentas e frameworks
que podem substituir em algumas atividades os testes
manuais. Assinale a alternativa que não é uma característica
de testes automatizados.

a. Repetitivos.
b. Rápidos.
c. Dependência de linguagem natural..
d. Ações programadas.
e. Suscetíveis a pequenas mudanças.

2. Testes automatizados são amplamente utilizados em


empresas de desenvolvimento por trazer agilidade e facilidade
na sua execução. Essas empresas têm adotado também
ferramentas de automação que utilizam técnicas de DSL.
Assinale a alternativa correta, que demonstra a principal
característica de uma DSL.

a. Possui somente versões gratuitas.


b. Linguagem de fácil interpretação para o usuário.
c. Tradução de códigos mais complexos.
d. Baixo nível de abstração.

46
e. Alto nível de abstração.

GABARITO

Questão 1 - Resposta C
Resolução: A utilização de uma linguagem mais natural está
associada a testes manuais, por não utilizar nenhum sistema
computacional que realize as atividades de testes. O testador
responsável por sua execução, muitas vezes, utiliza sua
experiência e intuição para diagnosticar erros, evitando o uso
de técnicas computacionais.
Questão 2 - Resposta B
Resolução: A DSL, ou linguagem específica de domínio, permite
ao usuário interagir com o sistema e seus termos, não se utiliza
apenas de linguagem de programação, o que facilita muito a
interpretação por parte do usuário.

47
BONS ESTUDOS!

Você também pode gostar