SlideShare uma empresa Scribd logo
1 de 14
1
OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA
QUALIDADE DE PROJETOS
Luiz Paulo Ladeira*
Matheus Guedes**
RESUMO
Este trabalho descreve a importância do teste de software nas organizações e seus fundamentos.
Tal abordagem se justifica na demonstração dos fundamentos básicos do teste de software, para
aqueles que desejam aplicar seus fundamentos em projetos de software e os impactos que sua
falta pode causar nos negócios das organizações. A finalidade deste estudo é compreender os
conceitos de testes de software e seu processo fundamental como também projetar, priorizar, criar
e executar planos de teste de acordo com planos aprovados, escrever relatórios de incidentes de
acordo com técnicas estabelecidas como também demonstrar a importância da realização do teste
de software nas organizações. Este propósito será conseguido através de revisão bibliográfica,
onde serão pesquisados periódicos (livros, revistas, sites especializados, entre outros), para
compreender os conceitos e esclarecer quais são os fundamentos do teste de software. O estudo
demonstrou que o teste de software é muito importante para empresas, setores de
desenvolvimento e profissionais de tecnologia da informação por reduzirem o máximo número de
defeitos que se encontra em seus produtos fabricados ou vendidos. O impacto que a inexistência
do teste de software e a falta de profissionais qualificados podem causar enormes prejuízos como
perdas de mercados ou danos na imagem dos produtos, pois afeta diretamente sua usabilidade,
funcionalidade, segurança e confiabilidade nos sistemas.
Palavras-chave: Teste de Software. Qualidade de Sistemas. Programas confiáveis.
* Analista de Sistemas, graduação tecnológica em Análise e Desenvolvimento de Sistemas pelo Centro Universitário
do Sul de Minas e pós graduando em engenharia de software com desenvolvimento em JAVA.
luizpauloladeira@hotmail.com
**Professor orientador, especialista MBA em Gestão Estratégica e Inteligência em Negócios pelo Centro
Universitário do Sul de Minas. matheus.guedes@unis.edu.br
2
1 INTRODUÇÃO
Este trabalho demonstra a importância da realização de teste de softwares, seus
fundamentos e os impactos que sua falta pode causar nos negócios das organizações.
O teste de software é muito importante em empresas e setores de desenvolvimento de
software, por reduzirem grandes números de defeitos que afetam sua usabilidade, funcionalidade,
segurança e a confiabilidade dos sistemas. Sua falta tem impactos decisivos nos negócios,
resultando assim em enormes prejuízos como perdas de participação de mercado ou danos na
imagem dos produtos. Sabe-se também que um teste malfeito pode significar um caminho aberto
para diversos problemas graves como, por exemplo: fraudes, incorreções e outros. Muitas vezes
os usuários acabam abandonando o sistema ou site por insatisfação com sua usabilidade e/ou
funcionalidade, causando enormes prejuízos à imagem da organização e produto.
Tal abordagem se justifica na demonstração dos fundamentos básicos do teste de
software, sua importância para os negócios das organizações, quanto para aqueles que desejam
aplicar seus fundamentos em projetos de software.
É importante ressaltar também a contribuição para o público de tecnologia da informação
ou áreas afins que desejam ingressar como testadores de software ou obter a certificação CTFL.
A finalidade deste estudo é compreender os conceitos de testes de software e seu processo
fundamental como também projetar, priorizar, criar e executar planos de teste de acordo com
planos aprovados, escrever relatórios de incidentes de acordo com técnicas estabelecidas como
também demonstrar a importância da realização do teste de software nas organizações.
Este propósito será conseguido através de revisão bibliográfica, onde serão pesquisados
periódicos (livros, revistas, sites especializados, entre outros), para compreender os conceitos e
esclarecer quais são os fundamentos necessários para obtenção da certificação CTFL.
2 O QUE É TESTE DE SOFTWARE E QUAL A SUA IMPORTÂNCIA
Existem diversas definições para teste de software, mas segundo o glossário de termos
padrões da International Software Testing Qualifications Board (ISTQB) temos:
Teste é o processo que consiste em todas as atividades do ciclo de vida, tanto estáticas
quanto dinâmicas, voltadas para o planejamento, preparação e avaliação de produtos de
software e produtos de trabalho relacionados a fim de determinar se elas satisfazem os
requisitos especificados e demonstrar que estão aptas para sua finalidade e para a
detecção de defeitos. (GLOSSÁRIO..., 2011)
3
Muitas outras definições poderiam ainda ser citadas, porém seu aspecto essencial se
encontra no processo que visa à execução do software de forma controlada, tendo como objetivo
a avaliação do seu comportamento baseado no propósito que foi especificado. Sendo assim, a
execução dos testes é considerada um tipo de validação (RIOS; MOREIRA, 2013).
Segundo (RIOS; MOREIRA, 2013, p.10): “Na prática, não se pode testar um software por
completo e garantir que ele ficará livre de bugs1
. É quase impossível testar todas as possibilidades
de formas e alternativas de entrada de dados, bem como testar as diversas possibilidades e
condições criadas pela lógica do programador”.
Os softwares estão cada vez mais presentes em nossa vida, desde aplicações simples
(sistemas comerciais) até aplicações complexas (sistemas hospitalares). Por esse motivo, a
importância do teste de software se encontra em reduzir os riscos para o negócio, diminuir custos,
reduzir a probabilidade de defeitos, identificar falhas no desenvolvimento do software e corrigi-
las antes que o produto seja entregue para o cliente (ARAUJO, 2013).
Para que seja reduzido as vulnerabilidades "os testes devem ser integrados como uma das
atividades de garantia da qualidade (ex.: juntamente aos padrões de desenvolvimento,
treinamento e análise de defeitos)." (BASE..., 2005, p. 11-12)
Para dar continuidade neste artigo será abordado no próximo tópico os impactos que
soluções problemáticas podem causar nos negócios das organizações.
3 IMPACTOS QUE SOLUÇÕES PROBLEMÁTICAS PODEM CAUSAR NOS
NEGÓCIOS DAS ORGANIZAÇÕES
O ser humano está sujeito a cometer erros, que produz defeitos, no código, em um
software, sistema e outros. Os defeitos ocorrem porque existe pressão no prazo, códigos
complexos, complexidade na infra-estrutura, mudanças de tecnologias ou muitas interações de
sistema. Se um defeito no código for executado, o sistema falhará ao tentar fazer o que deveria ou
não ser realizado causando assim uma falha (BASE..., 2005, p. 11).
Segundo (MYERS, 1979) os defeitos encontrados nas fases iniciais da etapa de
desenvolvimento do software são mais baratos de serem corrigidos do que aqueles encontrados
na produção, isto é, quanto menos defeitos permanecerem no software menor será o custo da sua
manutenção no futuro.
1 Bugs são falhas ou erros encontrados emum programa computacional, que o impede de se comportar como
pretendido.
4
Diante disso, os testes de software alinhados a conceitos de qualidade, modelos de
melhoria de processos de teste e as boas práticas do Gerenciamento de Qualidade podem
aumentar as perspectivas de sucesso do projeto (ARAUJO, 2013).
Para dar continuidade neste artigo será abordada no próximo tópico sobre o ISTQB e a
certificação CTFL.
4 O ISTQB E A CERTIFICAÇÃO CTFL
O International Software Testing Qualifications Board (ISTQB) é uma entidade
internacional sem fins lucrativos, cujo objetivo é oferecer globalmente uma estrutura de
certificação em testes de software. Fundada em 2002 na Escócia e hoje tem sua sede estabelecida
na Bélgica (FARACO, 2011).
Para ajudar a divulgar as melhores práticas o ISTQB possui diversos parceiros no mundo
inteiro, inclusive no Brasil através do Brazilian Software Testing Qualifications Board (BSTQB)
que é responsável pela promoção das certificações e aplicações dos exames no país, assim pela
tradução de documentação oficiais da entidade para a língua portuguesa. Seu objetivo é definir e
manter padrões de conhecimento que permite aos testadores serem certificados baseando-se nas
melhores práticas que se encontram no mercado (MEDEIROS, 2014).
A certificação abordada nesse artigo é Certified Tester Foundation Level conhecida pela
sigla CTFL, trata-se da certificação de nível fundamental destinado a qualquer pessoa envolvida
em testes de softwares. Isto implica em pessoas que desenvolvem funções como testadores,
analistas, consultores, gerentes de teste e outros que deseja ter um entendimento básico de teste
de software (GUIA...,2013).
Os possuidores da certificação CTFL serão capazes de prosseguir para maiores níveis de
qualificação em teste de software pelo ISTQB. Basicamente as certificações estão organizadas
em três níveis sendo eles: Foundation (Fundamental ou Básico), Advanced (Avançado) e Expert
(Especialista). No nível Foundation encontra-se a certificação Certified Tester Foundation Level
(CTFL), no nível Advanced estão às certificações Technical Teste Analyst (CTAL-TTA), Test
Analyst (CTAL-TA), Test Manager (CTAL-TM) e no nível Expert estão às certificações Security
Testing (CTEL-ST), Test Automation (CTEL-TA), Test Management (CTEL-TM) e
Improvingthe Test Process (CTEL-ITP) (MEDEIROS, 2014).
5
O objetivo da CTFL consiste em garantir uma ampla compreensão dos fundamentos e
conceitos principais do teste de software, utilizando assim, uma linguagem comum para a
comunicação com outros testadores, compreender os conceitos de testes estabelecidos utilizando
o processo fundamental de teste, projetar, priorizar, executar os testes de acordo com os planos de
testes aprovados e escrever relatórios de incidentes (GUIA..., 2013?, p. 4).
Para dar continuidade neste artigo será abordada no próximo tópico as atividades do teste
de software e seus processos fundamentais.
4.1 As atividades do teste de software e seus processos fundamentais
As atividades de teste de software são compostas por elementos fundamentais que
auxiliam na formalização dessa atividade. Esses elementos são:
 Caso de teste: descreve uma condição privada a ser testada, ela é composta por valores
de entrada, condições que restringem sua execução e um conduta esperada (CRAIG e
JASKIEL, 2002).
 Procedimento de teste: descreve as partes necessárias para executar um caso ou grupo
de teste (CRAIG e JASKIEL, 2002).
 Critérios de teste: é um selecionador e avaliador dos casos de testes que contém o
objetivo de aumentar as possibilidades de provocar erros/falhas no software. Quando
não é encontrado nenhum erro é estabelecido um nível excessivo de confiança na
correção do produto. (ROCHA, MALDONADO; WEBER, 2001)
Os processos fundamentais do teste deve-se basear em uma metodologia firmemente
ligada ao processo de desenvolvimento, contendo profissionais qualificados, ambiente e
ferramentas adequadas (RIOS; MOREIRA, 2013).
A metodologia de teste deve ser o documento básico para organizar a atividade de testar
aplicações no contexto da empresa. Como o desenvolvimento de sistemas é indesejável sem uma
metodologia de desenvolvimento adequada, também acontece com a atividade de teste. O
desenho da figura abaixo 1.0 mostra as fases de um processo de teste (RIOS; MOREIRA,
2013).
6
Figura 1 - Fases de um processo
Fonte: RIOS; MOREIRA, 2013, p. 11.
Segundo (RIOS; MOREIRA, 2013) as fases de um processo são:
 Procedimentos iniciais: é elaborado um documento conhecido como Guia Operacional
de Testes (GOT), onde é estabelecido um acordo entre as partes envolvidas no projeto,
com o intuito de definir os objetivos, pessoas a serem envolvidas (equipes de
desenvolvimento, testes e usuários), as responsabilidades de cada um, plano preliminar
de trabalho, avaliação dos riscos, os níveis de serviços concordados entre os envolvidos
e qualquer item considerado relevante pelo responsável das atividades de testes.
 Planejamento: é realizado a elaboração e revisão das estratégias e plano de teste.
 Processo de preparação: é preparado o ambiente de teste, incluindo equipamentos,
redes, pessoas, softwares e ferramentas.
 Execução: são executados os testes planejados conforme os casos, scripts (caso utiliza
ferramentas de automação de testes) e dos roteiros ou cenários com os correspondentes
registros dos resultados obtidos e a execução dos mesmos de verificação da
documentação do sistema (testes estáticos).
 Entrega: é a conclusão do processo de teste com entrega do sistema para o ambiente de
produção.
Para dar continuidade neste artigo será abordado no próximo tópico os testes estáticos e
dinâmicos.
7
4.2 Teste Estático e Teste Dinâmico
Na literatura, foram encontradas muitas classificações para teste de software, entre elas
destaca-se a condição de execução em que o software se encontra. Assim, os testes podem ser
classificados em estáticos e dinâmicos.
O teste estático é aplicado quando o software não está em execução e compreende todas
as técnicas baseadas em inspeções de código (Hauget al., 2001; Peters&Pedrycz, 2001). As
técnicas mais comuns são as inspeções de código, walkthroughs (passo a passo) e teste de mesa,
quando o código é analisado por uma equipe de pessoas ou por uma pessoa com o objetivo de
encontrar erros.
A análise estática ou teste estático, segundo (Peters e Pedrycz 2001), divide-se em duas
classes:
1. Técnicas formais: fazem parte das técnicas formais as provas de correção e execução
simbólica. Nas provas de correção, o código é comparado com a sua especificação, e,
na execução simbólica, os valores numéricos são substituídos por símbolos,
procurando-se simular a execução do programa no computador;
2. Técnicas informais: são divididas em inspeções e revisões de código, onde uma
pessoa ou uma equipe analisa um projeto ou código.
Já os testes dinâmicos contemplam técnicas que tem como objetivo a analise da estrutura
e funcionalidade de um software quando está em execução (Hauget al., 2001).
Para dar continuidade neste artigo será abordado no próximo tópico sobre os tipos de
testes de software.
4.3 Tipos de Testes
O teste de software consiste em mais do que avaliar as funções, a interface e as
características de tempo de resposta de um objetivo do teste. Os testes adicionais devem-se
concentrar em características e atributos, contendo os objetivos do teste resistente a falhas, com
capacidade de ser executado em diferentes plataformas e de lidar com várias solicitações ao
mesmo tempo. Para que isso seja alcançado, vários tipos de teste são realizados, cada um com um
objetivo e uma técnica de suporte específico. O foco de cada técnica está em testar uma ou mais
características ou atributos do objetivo do teste (CONCEITOS..., 2001).
Segue alguns dos principais tipos de teste de sistema:
8
Tabela 1 – Principais Tipos de Teste de Sistema
Teste de Unidade
Teste em um nível de componente ou classe. É o teste cujo objetivo é um
“pedaço do código”.
Teste de
Integração
Garante que um ou mais componentes combinados (ou unidades) funcionam.
Podemos dizer que um teste de integração é composto por diversos testes de
unidade*1
Teste
Operacional
Garante que a aplicação pode rodar muito tempo sem falhar.
Teste Positivo-
negativo
Garante que a aplicação vai funcionar no “caminho feliz” de sua execução e
vai funcionar no seu fluxo de exceção. *2
Teste de
regressão
Toda vez que algo for mudado, deve ser testada toda a aplicação novamente.
Teste de caixa-
preta
Testar todas as entradas e saídas desejadas. Não se está preocupado com o
código, cada saída indesejada é visto como um erro.
Teste caixa-
branca
O objetivo é testar o código. Às vezes, existem partes do código que nunca
foram testadas.
Teste Funcional
Testar as funcionalidades, requerimentos, regras de negócio presentes na
documentação. Validar as funcionalidades descritas na documentação (pode
acontecer de a documentação estar inválida)
Teste de
Interface
Verifica se a navegabilidade e os objetivos da tela funcionam como
especificados e se atendem da melhor forma ao usuário.
Teste de
Performance
Verifica se o tempo de resposta é o desejado para o momento de utilização da
aplicação.
Teste de carga
Verifica o funcionamento da aplicação com a utilização de uma quantidade
grande de usuários simultâneos.
Teste de
aceitação do
usuário
Testa se a solução será bem vista pelo usuário. Ex: caso exista um botão
pequeno demais para executar uma função, isso deve ser criticado em fase de
testes. (aqui, cabem quesitos fora da interface, também).
Teste de Volume
Testar a quantidade de dados envolvidos (pode ser pouca, normal, grande, ou
além de grande).
Testes de stress
Testar a aplicação sem situações inesperadas. Testar caminhos, às vezes,
antes não previstos no desenvolvimento/documentação.
Testes de
Configuração
Testar se a aplicação funciona corretamente em diferentes ambientes de
hardware ou de software.
Testes de
Instalação
Testar se a instalação da aplicação foi OK.
Testes de
Segurança
Testar a segurança da aplicação das mais diversas formas. Utilizar os
diversos papéis, perfis, permissões, para navegar no sistema.
Fonte: Leonardo Molinari, 2012.
9
Vários outros tipos de testes são possíveis, mas é necessário saber quais são os requisitos
funcionais e não funcionais do negócio a ser tratado para que possa ser definido exatamente quais
os níveis de testes que pretende estabelecer para a aplicação, afinal testar demais é tão desprovido
quanto testar pouco (PALMA, 2012).
Para dar continuidade neste artigo será abordado no próximo tópico como planejar o teste
de software.
4.4 Planejamento, Casos de Teste e execução
Durante a etapa de projeto é necessário entender quais são as metas e objetivos do projeto
e do cliente, quais são os riscos e principalmente, qual é o escopo do projeto (quais
funcionalidades devem ser testadas e quais atividades devem ser realizadas para testar tais
funcionalidades). É nesta etapa que é criado o plano de teste (WEISS, 2011).
O plano de teste é um dos documentos produzidos na condução de um projeto. Nele estão
contidas informações importantes como pessoas envolvidas, objetivos do teste, módulos ou partes
do software a serem testados, os critérios de aceitação e os passos necessários para executar os
testes (ANDRADE; VIANA, 2012).
Segundo (SILVA FILHO, 2009), o plano de teste pode ser elaborado pelo gerente de
projeto ou gerente de testes, visando planejar as atividades a serem realizadas, definindo os
métodos a serem empregados, estabelecendo métricas e formas de acompanhamento do processo.
Um plano de teste deve definir:
 Os itens a serem testados contendo o escopo e os objetivos do plano que devem ser
estabelecidos no início do projeto;
 As atividades e recursos a serem empregados contendo as estratégias de testes,
recursos utilizados e qualquer restrição imposta sobre as atividades ou recursos;
 Os tipos de testes a serem realizados e a ordem cronológica de sua ocorrência são
estabelecidas no plano;
 Os critérios para avaliar os resultados obtidos utilizando métricas bem definidas para
acompanhar os resultados alcançados.
O caso de teste é uma descrição de um requisito a ser testado sendo compostas por valores
de entrada, condições que restringem sua execução e uma conduta esperado. O processo de
10
criação de casos de testes podem também ajudar a encontrar falhas de requisitos, ou seja,
identifica os cenários não tratados pelos requisitos do sistema (PIERRI, 2013).
Na fase da execução são executados os testes de acordo com o plano e casos. Aqui são
gerados os roteiros de teste com os resultados obtidos e scripts de teste caso seja utilizada alguma
ferramenta de automação (ROESSLER, 2011).
Para dar continuidade neste artigo será abordado no próximo tópico sobre os relatórios de
incidentes.
4.5 Relatórios de incidentes
Todo e qualquer resultado previsto e descoberto na execução dos casos de testes deve ser
enviado para os desenvolvedores (programadores de sistemas) com o máximo de detalhes
prováveis. Sendo assim é utilizado o relatório de incidentes, no qual são registrados todos os
defeitos encontrados durante toda a fase de execução (QUEZADA, 2009).
Segundo (QUEZADA, 2009) a norma Standard for Software Test Documentation (IEE
829) o relatório de incidentes deve ter as seguintes informações:
 Identificador do relatório: identificar único e específico para o relatório;
 Sumário da ocorrência: possui um resumo do incidente que aborda os seguintes itens:
1. Identificação dos itens de testes que estão relacionados apontando sua versão;
2. Acréscimo da referência na especificação do caso de teste, pois assim o
programador que for realizar as correções terá o apoio do documento de teste;
3. Documento de requisitos;
4. Relatório de registros de teste se necessário.
 Descrição do Incidente: fornece um resumo do incidente incluindo os seguintes itens:
entradas, resultados esperados, resultados encontrados, problemas, data e hora do
incidente, procedimentos para reproduzir o problema, ambiente, tentativas para
repetir os problemas, testadores e observadores.
 Impacto: indica qual foi o impacto que o incidente terá no plano de teste de execução.
Para dar continuidade neste artigo será abordada no próximo tópico, as considerações
finais.
11
5 CONSIDERAÇÕES FINAIS
O teste de software é uma das atividades mais complexas do processo de
desenvolvimento, pois engloba grande parte dos recursos de um projeto. A rigidez e o alto custo
agregado a esta atividade depende principalmente da complicação da aplicação a ser realizada.
Diferentes categorias de aplicações exigem um cuidado diferenciado com as atividades de teste.
Um ponto importante para que seja realizado a atividade de testar está em utilizar uma
infra-estrutura adequada. Afinal, realizar testes não é baseado simplesmente em gerar e executar
os casos de testes, ele envolve também nas questões de planejamento, gerenciamento e na análise
de resultados.
É importante evidenciar que diferentes tipos de aplicações possuem técnicas diferentes a
serem aplicadas, ou seja, testar uma aplicação web abrange tarefas diferentes comparados aos
testes de sistemas para desktop. Cada tipo de aplicação possui particularidades especificas que
devem ser respeitado no instante da realização do teste.
A certificação em teste de software pode trazer vários benefícios, desde ajudar na busca
por novas oportunidades de emprego, até em uma execução mais técnica de suas atividades
dentro do ciclo de vida de um processo de teste. A escolha da certificação depende do que deseje
ou pretende para o futuro de sua carreira. A partir daí, será possível definir o modelo de
certificação mais interessante para atender sua expectativa, mas é necessário primeiramente ter a
certificação CTFL para poder ascender para os níveis mais elevados.
Este trabalho permitiu observar que o teste do software é muito importante para empresas,
setores de desenvolvimento e profissionais de tecnologia da informação, por reduzirem o máximo
número de defeitos que se encontra em seus produtos fabricados ou vendidos. O impacto que a
inexistência do teste de software e a falta de profissionais qualificados podem causar enormes
prejuízos como perdas de mercados ou danos na imagem dos produtos, pois afeta diretamente sua
usabilidade, funcionalidade, segurança e confiabilidade nos sistemas. O teste também tem a
função de ajudar e medir a qualidade do software/sistema através dos tipos de teste, pois à
medida que os defeitos encontrados são corrigidos está sendo avaliados os requisitos funcionais e
não funcionais do sistema fornecendo assim a confiança no mesmo. Sabe-se também que os
testes bem planejados utilizando uma metodologia de desenvolvimento adequada, execuções do
plano de teste bem elaborado e priorizado reduzem os riscos dos softwares falharem evitando
assim o retrabalho e a insatisfação do cliente.
12
É possível concluir através deste estudo que os testes agregam valor ao produto de
software e que estes estão de forma direta ligada com os conceitos da qualidade, pois se a
qualidade esta em atender as necessidades do solicitante/cliente, testar é contribuir para que o
software desenvolvido esteja de acordo com as expectativas do mesmo.
Este estudo demanda uma maior pesquisa em qualidade de software, onde se pode
aprofundar nas questões de controle e garantia da qualidade de software. Sua abordagem se faz
necessária para evitar que produtos defeituosos sejam entregues aos clientes tendo o objetivo de
monitorar os processos e correção de defeitos com definições padronizadas.
THE FUNDAMENTALS OF SOFTWARE TESTING AND ITS IMPORTANCE IN THE
QUALITY OF PROJECTS
This work describes the importance of software testing in organizations and their pleas. This
approach is justified in the demonstration of basic foundations of software testing, for those who
want to apply their background in software projects and the impacts that their lack can cause in
business organizations. The purpose of this study is to understand the concepts of software testing
and its fundamental process as also design, prioritize, create and execute test plans in accordance
with approved plans, write incident reports in accordance with established techniques such as
also demonstrate the importance of the completion of the test of software in organizations. This
purpose will be achieved through a review of the literature, which will be searched journals
(books, magazines, specialized web sites, among others), to understand the concepts and clarify
what are the fundamentals of software testing. The study showed that the test of software is very
important for companies, sectors of development and information technology professionals by
reducing the maximum number of defects that if Is in its products manufactured or sold. The
impact that the lack of software testing and the lack of skilled professionals can cause huge losses
as losses of markets or damage the image of the products, because it directly affects its usability,
functionality, security and reliability of the systems.
Keywords: Software Testing. Quality Systems. Trusted programs.
13
REFERÊNCIAS
ANDRADE, A. P.; VIANA, P. Criação e Geração de Planos de Teste de Software. Online:
IBM, ago. 2012. Disponível em:
<http://www.ibm.com/developerworks/br/local/rational/criacao_geracao_planos_testes_software/
>. Acesso em: 05 out. 2014.
ARAUJO, L. D. A Importância do Teste de Software para a qualidade do Projeto. Online:
Centro Universitário UNA, [2013?]. Disponível em: <http://www.una.br/>
BASE de conhecimento para certificação em teste. v. 2005, Online: BSTQB, 2005. Disponível
em: <http://www.bstqb.org.br/?q=download>. Acesso em 05 de set. 2014.
CONCEITOS: tipos de teste. Online: WThreeX, 2001. Disponível em:
<http://www.wthreex.com/rup/portugues/process/workflow/test/co_tytst.htm>. Acesso em: 11
out. 2014.
CRAIG, R. D.; JASKIEL, S. P. Systematic Software Testing. Boston: Artech House Publishers,
2002.
FARACO, P. Certificações ISTQB. Online: Um, Dois, Três, Testando. - Insights sobre Testes
de Software, 24 maio 2011. Disponível em: <http://testing.faraco.net/2011/05/24/certificacoes-
istqb/>. Acesso em: 03 out. 2014.
FILHO, A. M. D. S. Plano de Teste - Um Mapa Essencial para Teste de Software. Online:
DEVMEDIA, 03 ago. 2009. Disponível em: <http://www.devmedia.com.br/plano-de-teste-um-
mapa-essencial-para-teste-de-software/13824>. Acesso em: 05 out. 2014.
GLOSSÁRIO standard de termos usados em Testes de software. Online: BSTQB, 2011.
Disponível em: <http://www.pstqb.pt/ficheiros/PSTQB_Glossario_v2.1pt.pdf>. Acesso em: 03
ago. 2014.
GUIA do candidato Brazilian software testing qualifications board. Online: BSTQB, 2013.
Disponível em: <http://www.bstqb.org.br/uploads/docs/guiadocandidato.pdf>. Acesso em: 29 set.
2014.
14
MEDEIROS, H. Fundamentos do Teste de Software para Certificação CTFL. Online:
DEVMEDIA, 26 maio 2014. Disponível em: <http://www.devmedia.com.br/fundamentos-do-
teste-de-software-para-certificacao-ctfl/30708>. Acesso em: 10 out. 2014.
HAUG, M.; OLSEN, E.W.; CONSOLINI, L. Software quality approaches: testing,
verification, and validation: software best practice 1. Berlin: Springer, 2001.
PALMA, F. Testes De Software. Online: Teste de Software, 21 junho 2012. Disponível em:
<http://testesdesoftware.blogspot.com.br/2009/09/tipos-de-teste.html>. Acesso em: 11 out. 2014.
PIERRI, F. Planejamento de testes de sistema. Online: Matera Systems, 29 julho 2013.
Disponível em: <http://www.matera.com/br/2013/07/29/planejamento-de-testes-de-sistema/>.
Acesso em: 18 out. 2014.
QUEZEDA, G. Execução e Relatório de Teste. Online: Falando em Teste e Qualidade de
Software, 13 agosto 2009. Disponível em: <http://gustavoquezada.blogspot.com.br/2009/08/para-
continuar-com-o-assunto-relatorio.html>. Acesso em: 18 out. 2014.
RIOS, E.; MOREIRA, T. Teste de Software 3ª Edição revisada e ampliada. Rio de Janeiro:
Alta Books, 2013.
ROCHA, A. R. C.; MALDONADO, J. C.; WEBER, K. C. E. A. Qualidade de software –
Teoria e prática. São Paulo: Prentice Hall, 2001.
ROESSLER, R. G. Derivando casos de teste a partir de casos de uso. Online: DEVMEDIA, 10
de outubro 2011. Disponivel em:
<http://www.devmedia.com.br/websys.5/webreader.asp?cat=48&artigo=3975&revista=esmagazi
ne_41#a-3975>. Acesso em: 18 out. 2014.
WEISS, K. Fundamentos em Teste de Software. Online: TI.EXAMES, 2011. Disponível em:
<http://www.tiexames.com.br/curso_Teste_Software_CTFL.php>. Acesso em: 05 out 2014.

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Tehnici de testare
Tehnici de testareTehnici de testare
Tehnici de testare
 
Anemia falciforme
Anemia falciformeAnemia falciforme
Anemia falciforme
 
Introducao swebok
Introducao swebokIntroducao swebok
Introducao swebok
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Modelo plano de_testes
Modelo plano de_testesModelo plano de_testes
Modelo plano de_testes
 
Verificação, Validação e Teste de Software
Verificação, Validação e Teste de SoftwareVerificação, Validação e Teste de Software
Verificação, Validação e Teste de Software
 
Modelo V
Modelo VModelo V
Modelo V
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)
 
Aula - Teste de Software
Aula - Teste de SoftwareAula - Teste de Software
Aula - Teste de Software
 
Anemias
AnemiasAnemias
Anemias
 
Programação Orientada a Objetos com Java
Programação Orientada a Objetos com JavaProgramação Orientada a Objetos com Java
Programação Orientada a Objetos com Java
 
John Von Neumann - Paula
John Von Neumann - PaulaJohn Von Neumann - Paula
John Von Neumann - Paula
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Software security testing
Software security testingSoftware security testing
Software security testing
 

Semelhante a Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS

Aula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxAula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxALEXANDRELISBADASILV
 
Aula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAlexandreLisboadaSil
 
11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicosFabricio Guimaraes Soares
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processocrc1404
 
Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxRoberto Nunes
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...Fábio Pio
 
Trabalho qualidade de_software
Trabalho qualidade de_softwareTrabalho qualidade de_software
Trabalho qualidade de_softwarestefaniak2004
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de softwareBruno Nascimento
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptxAnaKlyssia1
 
1 Qss
1 Qss1 Qss
1 Qsslcbj
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxRoberto Nunes
 

Semelhante a Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS (20)

Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Aula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptxAula 3 - Introdução ao Teste.pptx
Aula 3 - Introdução ao Teste.pptx
 
Aula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptxAula 5 - Introdução ao Teste.pptx
Aula 5 - Introdução ao Teste.pptx
 
11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos11 1 --teste_de_software_motivação_e_conceitos_basicos
11 1 --teste_de_software_motivação_e_conceitos_basicos
 
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De ProcessoUma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
Uma Metodologia Para Teste De Software No Contexto Da Melhoria De Processo
 
Aula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptxAula 8 - Plano de Teste.pptx
Aula 8 - Plano de Teste.pptx
 
Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptx
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Como os processos de testes ajudam na obtenção de melhores resultados
Como os processos de testes  ajudam na obtenção de melhores resultadosComo os processos de testes  ajudam na obtenção de melhores resultados
Como os processos de testes ajudam na obtenção de melhores resultados
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
UM ESTUDO SOBRE ABORDAGENS DE TESTE E SUAS CONTRIBUIÇÕES PARA A QUALIDADE NO ...
 
Trabalho qualidade de_software
Trabalho qualidade de_softwareTrabalho qualidade de_software
Trabalho qualidade de_software
 
Banco de questões qualidade de software
Banco de questões qualidade de softwareBanco de questões qualidade de software
Banco de questões qualidade de software
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx01 UNIDADE I -  Princípios, pilares e modelos de teste de software.pptx
01 UNIDADE I - Princípios, pilares e modelos de teste de software.pptx
 
1 Qss
1 Qss1 Qss
1 Qss
 
Testes Funcionais
Testes FuncionaisTestes Funcionais
Testes Funcionais
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptx
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 

Mais de Luiz Ladeira

OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS
OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOSOS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS
OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOSLuiz Ladeira
 
E commerce - magento - produto simples e configuravel
E commerce - magento - produto simples e configuravelE commerce - magento - produto simples e configuravel
E commerce - magento - produto simples e configuravelLuiz Ladeira
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português BrLuiz Ladeira
 
Redes arquitetura de redes rm osi e tcp_ip
Redes  arquitetura de redes rm osi e tcp_ipRedes  arquitetura de redes rm osi e tcp_ip
Redes arquitetura de redes rm osi e tcp_ipLuiz Ladeira
 
Resumo a lógica matemática para concursos
Resumo a lógica matemática para concursosResumo a lógica matemática para concursos
Resumo a lógica matemática para concursosLuiz Ladeira
 
Resumo a lógica matemática para concursos
Resumo a lógica matemática para concursosResumo a lógica matemática para concursos
Resumo a lógica matemática para concursosLuiz Ladeira
 

Mais de Luiz Ladeira (6)

OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS
OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOSOS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS
OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS
 
E commerce - magento - produto simples e configuravel
E commerce - magento - produto simples e configuravelE commerce - magento - produto simples e configuravel
E commerce - magento - produto simples e configuravel
 
Documentação CakePHP - Português Br
Documentação CakePHP -  Português BrDocumentação CakePHP -  Português Br
Documentação CakePHP - Português Br
 
Redes arquitetura de redes rm osi e tcp_ip
Redes  arquitetura de redes rm osi e tcp_ipRedes  arquitetura de redes rm osi e tcp_ip
Redes arquitetura de redes rm osi e tcp_ip
 
Resumo a lógica matemática para concursos
Resumo a lógica matemática para concursosResumo a lógica matemática para concursos
Resumo a lógica matemática para concursos
 
Resumo a lógica matemática para concursos
Resumo a lógica matemática para concursosResumo a lógica matemática para concursos
Resumo a lógica matemática para concursos
 

Artigo - OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS

  • 1. 1 OS FUNDAMENTOS DE TESTE DE SOFTWARE E SUA IMPORTÂNCIA NA QUALIDADE DE PROJETOS Luiz Paulo Ladeira* Matheus Guedes** RESUMO Este trabalho descreve a importância do teste de software nas organizações e seus fundamentos. Tal abordagem se justifica na demonstração dos fundamentos básicos do teste de software, para aqueles que desejam aplicar seus fundamentos em projetos de software e os impactos que sua falta pode causar nos negócios das organizações. A finalidade deste estudo é compreender os conceitos de testes de software e seu processo fundamental como também projetar, priorizar, criar e executar planos de teste de acordo com planos aprovados, escrever relatórios de incidentes de acordo com técnicas estabelecidas como também demonstrar a importância da realização do teste de software nas organizações. Este propósito será conseguido através de revisão bibliográfica, onde serão pesquisados periódicos (livros, revistas, sites especializados, entre outros), para compreender os conceitos e esclarecer quais são os fundamentos do teste de software. O estudo demonstrou que o teste de software é muito importante para empresas, setores de desenvolvimento e profissionais de tecnologia da informação por reduzirem o máximo número de defeitos que se encontra em seus produtos fabricados ou vendidos. O impacto que a inexistência do teste de software e a falta de profissionais qualificados podem causar enormes prejuízos como perdas de mercados ou danos na imagem dos produtos, pois afeta diretamente sua usabilidade, funcionalidade, segurança e confiabilidade nos sistemas. Palavras-chave: Teste de Software. Qualidade de Sistemas. Programas confiáveis. * Analista de Sistemas, graduação tecnológica em Análise e Desenvolvimento de Sistemas pelo Centro Universitário do Sul de Minas e pós graduando em engenharia de software com desenvolvimento em JAVA. luizpauloladeira@hotmail.com **Professor orientador, especialista MBA em Gestão Estratégica e Inteligência em Negócios pelo Centro Universitário do Sul de Minas. matheus.guedes@unis.edu.br
  • 2. 2 1 INTRODUÇÃO Este trabalho demonstra a importância da realização de teste de softwares, seus fundamentos e os impactos que sua falta pode causar nos negócios das organizações. O teste de software é muito importante em empresas e setores de desenvolvimento de software, por reduzirem grandes números de defeitos que afetam sua usabilidade, funcionalidade, segurança e a confiabilidade dos sistemas. Sua falta tem impactos decisivos nos negócios, resultando assim em enormes prejuízos como perdas de participação de mercado ou danos na imagem dos produtos. Sabe-se também que um teste malfeito pode significar um caminho aberto para diversos problemas graves como, por exemplo: fraudes, incorreções e outros. Muitas vezes os usuários acabam abandonando o sistema ou site por insatisfação com sua usabilidade e/ou funcionalidade, causando enormes prejuízos à imagem da organização e produto. Tal abordagem se justifica na demonstração dos fundamentos básicos do teste de software, sua importância para os negócios das organizações, quanto para aqueles que desejam aplicar seus fundamentos em projetos de software. É importante ressaltar também a contribuição para o público de tecnologia da informação ou áreas afins que desejam ingressar como testadores de software ou obter a certificação CTFL. A finalidade deste estudo é compreender os conceitos de testes de software e seu processo fundamental como também projetar, priorizar, criar e executar planos de teste de acordo com planos aprovados, escrever relatórios de incidentes de acordo com técnicas estabelecidas como também demonstrar a importância da realização do teste de software nas organizações. Este propósito será conseguido através de revisão bibliográfica, onde serão pesquisados periódicos (livros, revistas, sites especializados, entre outros), para compreender os conceitos e esclarecer quais são os fundamentos necessários para obtenção da certificação CTFL. 2 O QUE É TESTE DE SOFTWARE E QUAL A SUA IMPORTÂNCIA Existem diversas definições para teste de software, mas segundo o glossário de termos padrões da International Software Testing Qualifications Board (ISTQB) temos: Teste é o processo que consiste em todas as atividades do ciclo de vida, tanto estáticas quanto dinâmicas, voltadas para o planejamento, preparação e avaliação de produtos de software e produtos de trabalho relacionados a fim de determinar se elas satisfazem os requisitos especificados e demonstrar que estão aptas para sua finalidade e para a detecção de defeitos. (GLOSSÁRIO..., 2011)
  • 3. 3 Muitas outras definições poderiam ainda ser citadas, porém seu aspecto essencial se encontra no processo que visa à execução do software de forma controlada, tendo como objetivo a avaliação do seu comportamento baseado no propósito que foi especificado. Sendo assim, a execução dos testes é considerada um tipo de validação (RIOS; MOREIRA, 2013). Segundo (RIOS; MOREIRA, 2013, p.10): “Na prática, não se pode testar um software por completo e garantir que ele ficará livre de bugs1 . É quase impossível testar todas as possibilidades de formas e alternativas de entrada de dados, bem como testar as diversas possibilidades e condições criadas pela lógica do programador”. Os softwares estão cada vez mais presentes em nossa vida, desde aplicações simples (sistemas comerciais) até aplicações complexas (sistemas hospitalares). Por esse motivo, a importância do teste de software se encontra em reduzir os riscos para o negócio, diminuir custos, reduzir a probabilidade de defeitos, identificar falhas no desenvolvimento do software e corrigi- las antes que o produto seja entregue para o cliente (ARAUJO, 2013). Para que seja reduzido as vulnerabilidades "os testes devem ser integrados como uma das atividades de garantia da qualidade (ex.: juntamente aos padrões de desenvolvimento, treinamento e análise de defeitos)." (BASE..., 2005, p. 11-12) Para dar continuidade neste artigo será abordado no próximo tópico os impactos que soluções problemáticas podem causar nos negócios das organizações. 3 IMPACTOS QUE SOLUÇÕES PROBLEMÁTICAS PODEM CAUSAR NOS NEGÓCIOS DAS ORGANIZAÇÕES O ser humano está sujeito a cometer erros, que produz defeitos, no código, em um software, sistema e outros. Os defeitos ocorrem porque existe pressão no prazo, códigos complexos, complexidade na infra-estrutura, mudanças de tecnologias ou muitas interações de sistema. Se um defeito no código for executado, o sistema falhará ao tentar fazer o que deveria ou não ser realizado causando assim uma falha (BASE..., 2005, p. 11). Segundo (MYERS, 1979) os defeitos encontrados nas fases iniciais da etapa de desenvolvimento do software são mais baratos de serem corrigidos do que aqueles encontrados na produção, isto é, quanto menos defeitos permanecerem no software menor será o custo da sua manutenção no futuro. 1 Bugs são falhas ou erros encontrados emum programa computacional, que o impede de se comportar como pretendido.
  • 4. 4 Diante disso, os testes de software alinhados a conceitos de qualidade, modelos de melhoria de processos de teste e as boas práticas do Gerenciamento de Qualidade podem aumentar as perspectivas de sucesso do projeto (ARAUJO, 2013). Para dar continuidade neste artigo será abordada no próximo tópico sobre o ISTQB e a certificação CTFL. 4 O ISTQB E A CERTIFICAÇÃO CTFL O International Software Testing Qualifications Board (ISTQB) é uma entidade internacional sem fins lucrativos, cujo objetivo é oferecer globalmente uma estrutura de certificação em testes de software. Fundada em 2002 na Escócia e hoje tem sua sede estabelecida na Bélgica (FARACO, 2011). Para ajudar a divulgar as melhores práticas o ISTQB possui diversos parceiros no mundo inteiro, inclusive no Brasil através do Brazilian Software Testing Qualifications Board (BSTQB) que é responsável pela promoção das certificações e aplicações dos exames no país, assim pela tradução de documentação oficiais da entidade para a língua portuguesa. Seu objetivo é definir e manter padrões de conhecimento que permite aos testadores serem certificados baseando-se nas melhores práticas que se encontram no mercado (MEDEIROS, 2014). A certificação abordada nesse artigo é Certified Tester Foundation Level conhecida pela sigla CTFL, trata-se da certificação de nível fundamental destinado a qualquer pessoa envolvida em testes de softwares. Isto implica em pessoas que desenvolvem funções como testadores, analistas, consultores, gerentes de teste e outros que deseja ter um entendimento básico de teste de software (GUIA...,2013). Os possuidores da certificação CTFL serão capazes de prosseguir para maiores níveis de qualificação em teste de software pelo ISTQB. Basicamente as certificações estão organizadas em três níveis sendo eles: Foundation (Fundamental ou Básico), Advanced (Avançado) e Expert (Especialista). No nível Foundation encontra-se a certificação Certified Tester Foundation Level (CTFL), no nível Advanced estão às certificações Technical Teste Analyst (CTAL-TTA), Test Analyst (CTAL-TA), Test Manager (CTAL-TM) e no nível Expert estão às certificações Security Testing (CTEL-ST), Test Automation (CTEL-TA), Test Management (CTEL-TM) e Improvingthe Test Process (CTEL-ITP) (MEDEIROS, 2014).
  • 5. 5 O objetivo da CTFL consiste em garantir uma ampla compreensão dos fundamentos e conceitos principais do teste de software, utilizando assim, uma linguagem comum para a comunicação com outros testadores, compreender os conceitos de testes estabelecidos utilizando o processo fundamental de teste, projetar, priorizar, executar os testes de acordo com os planos de testes aprovados e escrever relatórios de incidentes (GUIA..., 2013?, p. 4). Para dar continuidade neste artigo será abordada no próximo tópico as atividades do teste de software e seus processos fundamentais. 4.1 As atividades do teste de software e seus processos fundamentais As atividades de teste de software são compostas por elementos fundamentais que auxiliam na formalização dessa atividade. Esses elementos são:  Caso de teste: descreve uma condição privada a ser testada, ela é composta por valores de entrada, condições que restringem sua execução e um conduta esperada (CRAIG e JASKIEL, 2002).  Procedimento de teste: descreve as partes necessárias para executar um caso ou grupo de teste (CRAIG e JASKIEL, 2002).  Critérios de teste: é um selecionador e avaliador dos casos de testes que contém o objetivo de aumentar as possibilidades de provocar erros/falhas no software. Quando não é encontrado nenhum erro é estabelecido um nível excessivo de confiança na correção do produto. (ROCHA, MALDONADO; WEBER, 2001) Os processos fundamentais do teste deve-se basear em uma metodologia firmemente ligada ao processo de desenvolvimento, contendo profissionais qualificados, ambiente e ferramentas adequadas (RIOS; MOREIRA, 2013). A metodologia de teste deve ser o documento básico para organizar a atividade de testar aplicações no contexto da empresa. Como o desenvolvimento de sistemas é indesejável sem uma metodologia de desenvolvimento adequada, também acontece com a atividade de teste. O desenho da figura abaixo 1.0 mostra as fases de um processo de teste (RIOS; MOREIRA, 2013).
  • 6. 6 Figura 1 - Fases de um processo Fonte: RIOS; MOREIRA, 2013, p. 11. Segundo (RIOS; MOREIRA, 2013) as fases de um processo são:  Procedimentos iniciais: é elaborado um documento conhecido como Guia Operacional de Testes (GOT), onde é estabelecido um acordo entre as partes envolvidas no projeto, com o intuito de definir os objetivos, pessoas a serem envolvidas (equipes de desenvolvimento, testes e usuários), as responsabilidades de cada um, plano preliminar de trabalho, avaliação dos riscos, os níveis de serviços concordados entre os envolvidos e qualquer item considerado relevante pelo responsável das atividades de testes.  Planejamento: é realizado a elaboração e revisão das estratégias e plano de teste.  Processo de preparação: é preparado o ambiente de teste, incluindo equipamentos, redes, pessoas, softwares e ferramentas.  Execução: são executados os testes planejados conforme os casos, scripts (caso utiliza ferramentas de automação de testes) e dos roteiros ou cenários com os correspondentes registros dos resultados obtidos e a execução dos mesmos de verificação da documentação do sistema (testes estáticos).  Entrega: é a conclusão do processo de teste com entrega do sistema para o ambiente de produção. Para dar continuidade neste artigo será abordado no próximo tópico os testes estáticos e dinâmicos.
  • 7. 7 4.2 Teste Estático e Teste Dinâmico Na literatura, foram encontradas muitas classificações para teste de software, entre elas destaca-se a condição de execução em que o software se encontra. Assim, os testes podem ser classificados em estáticos e dinâmicos. O teste estático é aplicado quando o software não está em execução e compreende todas as técnicas baseadas em inspeções de código (Hauget al., 2001; Peters&Pedrycz, 2001). As técnicas mais comuns são as inspeções de código, walkthroughs (passo a passo) e teste de mesa, quando o código é analisado por uma equipe de pessoas ou por uma pessoa com o objetivo de encontrar erros. A análise estática ou teste estático, segundo (Peters e Pedrycz 2001), divide-se em duas classes: 1. Técnicas formais: fazem parte das técnicas formais as provas de correção e execução simbólica. Nas provas de correção, o código é comparado com a sua especificação, e, na execução simbólica, os valores numéricos são substituídos por símbolos, procurando-se simular a execução do programa no computador; 2. Técnicas informais: são divididas em inspeções e revisões de código, onde uma pessoa ou uma equipe analisa um projeto ou código. Já os testes dinâmicos contemplam técnicas que tem como objetivo a analise da estrutura e funcionalidade de um software quando está em execução (Hauget al., 2001). Para dar continuidade neste artigo será abordado no próximo tópico sobre os tipos de testes de software. 4.3 Tipos de Testes O teste de software consiste em mais do que avaliar as funções, a interface e as características de tempo de resposta de um objetivo do teste. Os testes adicionais devem-se concentrar em características e atributos, contendo os objetivos do teste resistente a falhas, com capacidade de ser executado em diferentes plataformas e de lidar com várias solicitações ao mesmo tempo. Para que isso seja alcançado, vários tipos de teste são realizados, cada um com um objetivo e uma técnica de suporte específico. O foco de cada técnica está em testar uma ou mais características ou atributos do objetivo do teste (CONCEITOS..., 2001). Segue alguns dos principais tipos de teste de sistema:
  • 8. 8 Tabela 1 – Principais Tipos de Teste de Sistema Teste de Unidade Teste em um nível de componente ou classe. É o teste cujo objetivo é um “pedaço do código”. Teste de Integração Garante que um ou mais componentes combinados (ou unidades) funcionam. Podemos dizer que um teste de integração é composto por diversos testes de unidade*1 Teste Operacional Garante que a aplicação pode rodar muito tempo sem falhar. Teste Positivo- negativo Garante que a aplicação vai funcionar no “caminho feliz” de sua execução e vai funcionar no seu fluxo de exceção. *2 Teste de regressão Toda vez que algo for mudado, deve ser testada toda a aplicação novamente. Teste de caixa- preta Testar todas as entradas e saídas desejadas. Não se está preocupado com o código, cada saída indesejada é visto como um erro. Teste caixa- branca O objetivo é testar o código. Às vezes, existem partes do código que nunca foram testadas. Teste Funcional Testar as funcionalidades, requerimentos, regras de negócio presentes na documentação. Validar as funcionalidades descritas na documentação (pode acontecer de a documentação estar inválida) Teste de Interface Verifica se a navegabilidade e os objetivos da tela funcionam como especificados e se atendem da melhor forma ao usuário. Teste de Performance Verifica se o tempo de resposta é o desejado para o momento de utilização da aplicação. Teste de carga Verifica o funcionamento da aplicação com a utilização de uma quantidade grande de usuários simultâneos. Teste de aceitação do usuário Testa se a solução será bem vista pelo usuário. Ex: caso exista um botão pequeno demais para executar uma função, isso deve ser criticado em fase de testes. (aqui, cabem quesitos fora da interface, também). Teste de Volume Testar a quantidade de dados envolvidos (pode ser pouca, normal, grande, ou além de grande). Testes de stress Testar a aplicação sem situações inesperadas. Testar caminhos, às vezes, antes não previstos no desenvolvimento/documentação. Testes de Configuração Testar se a aplicação funciona corretamente em diferentes ambientes de hardware ou de software. Testes de Instalação Testar se a instalação da aplicação foi OK. Testes de Segurança Testar a segurança da aplicação das mais diversas formas. Utilizar os diversos papéis, perfis, permissões, para navegar no sistema. Fonte: Leonardo Molinari, 2012.
  • 9. 9 Vários outros tipos de testes são possíveis, mas é necessário saber quais são os requisitos funcionais e não funcionais do negócio a ser tratado para que possa ser definido exatamente quais os níveis de testes que pretende estabelecer para a aplicação, afinal testar demais é tão desprovido quanto testar pouco (PALMA, 2012). Para dar continuidade neste artigo será abordado no próximo tópico como planejar o teste de software. 4.4 Planejamento, Casos de Teste e execução Durante a etapa de projeto é necessário entender quais são as metas e objetivos do projeto e do cliente, quais são os riscos e principalmente, qual é o escopo do projeto (quais funcionalidades devem ser testadas e quais atividades devem ser realizadas para testar tais funcionalidades). É nesta etapa que é criado o plano de teste (WEISS, 2011). O plano de teste é um dos documentos produzidos na condução de um projeto. Nele estão contidas informações importantes como pessoas envolvidas, objetivos do teste, módulos ou partes do software a serem testados, os critérios de aceitação e os passos necessários para executar os testes (ANDRADE; VIANA, 2012). Segundo (SILVA FILHO, 2009), o plano de teste pode ser elaborado pelo gerente de projeto ou gerente de testes, visando planejar as atividades a serem realizadas, definindo os métodos a serem empregados, estabelecendo métricas e formas de acompanhamento do processo. Um plano de teste deve definir:  Os itens a serem testados contendo o escopo e os objetivos do plano que devem ser estabelecidos no início do projeto;  As atividades e recursos a serem empregados contendo as estratégias de testes, recursos utilizados e qualquer restrição imposta sobre as atividades ou recursos;  Os tipos de testes a serem realizados e a ordem cronológica de sua ocorrência são estabelecidas no plano;  Os critérios para avaliar os resultados obtidos utilizando métricas bem definidas para acompanhar os resultados alcançados. O caso de teste é uma descrição de um requisito a ser testado sendo compostas por valores de entrada, condições que restringem sua execução e uma conduta esperado. O processo de
  • 10. 10 criação de casos de testes podem também ajudar a encontrar falhas de requisitos, ou seja, identifica os cenários não tratados pelos requisitos do sistema (PIERRI, 2013). Na fase da execução são executados os testes de acordo com o plano e casos. Aqui são gerados os roteiros de teste com os resultados obtidos e scripts de teste caso seja utilizada alguma ferramenta de automação (ROESSLER, 2011). Para dar continuidade neste artigo será abordado no próximo tópico sobre os relatórios de incidentes. 4.5 Relatórios de incidentes Todo e qualquer resultado previsto e descoberto na execução dos casos de testes deve ser enviado para os desenvolvedores (programadores de sistemas) com o máximo de detalhes prováveis. Sendo assim é utilizado o relatório de incidentes, no qual são registrados todos os defeitos encontrados durante toda a fase de execução (QUEZADA, 2009). Segundo (QUEZADA, 2009) a norma Standard for Software Test Documentation (IEE 829) o relatório de incidentes deve ter as seguintes informações:  Identificador do relatório: identificar único e específico para o relatório;  Sumário da ocorrência: possui um resumo do incidente que aborda os seguintes itens: 1. Identificação dos itens de testes que estão relacionados apontando sua versão; 2. Acréscimo da referência na especificação do caso de teste, pois assim o programador que for realizar as correções terá o apoio do documento de teste; 3. Documento de requisitos; 4. Relatório de registros de teste se necessário.  Descrição do Incidente: fornece um resumo do incidente incluindo os seguintes itens: entradas, resultados esperados, resultados encontrados, problemas, data e hora do incidente, procedimentos para reproduzir o problema, ambiente, tentativas para repetir os problemas, testadores e observadores.  Impacto: indica qual foi o impacto que o incidente terá no plano de teste de execução. Para dar continuidade neste artigo será abordada no próximo tópico, as considerações finais.
  • 11. 11 5 CONSIDERAÇÕES FINAIS O teste de software é uma das atividades mais complexas do processo de desenvolvimento, pois engloba grande parte dos recursos de um projeto. A rigidez e o alto custo agregado a esta atividade depende principalmente da complicação da aplicação a ser realizada. Diferentes categorias de aplicações exigem um cuidado diferenciado com as atividades de teste. Um ponto importante para que seja realizado a atividade de testar está em utilizar uma infra-estrutura adequada. Afinal, realizar testes não é baseado simplesmente em gerar e executar os casos de testes, ele envolve também nas questões de planejamento, gerenciamento e na análise de resultados. É importante evidenciar que diferentes tipos de aplicações possuem técnicas diferentes a serem aplicadas, ou seja, testar uma aplicação web abrange tarefas diferentes comparados aos testes de sistemas para desktop. Cada tipo de aplicação possui particularidades especificas que devem ser respeitado no instante da realização do teste. A certificação em teste de software pode trazer vários benefícios, desde ajudar na busca por novas oportunidades de emprego, até em uma execução mais técnica de suas atividades dentro do ciclo de vida de um processo de teste. A escolha da certificação depende do que deseje ou pretende para o futuro de sua carreira. A partir daí, será possível definir o modelo de certificação mais interessante para atender sua expectativa, mas é necessário primeiramente ter a certificação CTFL para poder ascender para os níveis mais elevados. Este trabalho permitiu observar que o teste do software é muito importante para empresas, setores de desenvolvimento e profissionais de tecnologia da informação, por reduzirem o máximo número de defeitos que se encontra em seus produtos fabricados ou vendidos. O impacto que a inexistência do teste de software e a falta de profissionais qualificados podem causar enormes prejuízos como perdas de mercados ou danos na imagem dos produtos, pois afeta diretamente sua usabilidade, funcionalidade, segurança e confiabilidade nos sistemas. O teste também tem a função de ajudar e medir a qualidade do software/sistema através dos tipos de teste, pois à medida que os defeitos encontrados são corrigidos está sendo avaliados os requisitos funcionais e não funcionais do sistema fornecendo assim a confiança no mesmo. Sabe-se também que os testes bem planejados utilizando uma metodologia de desenvolvimento adequada, execuções do plano de teste bem elaborado e priorizado reduzem os riscos dos softwares falharem evitando assim o retrabalho e a insatisfação do cliente.
  • 12. 12 É possível concluir através deste estudo que os testes agregam valor ao produto de software e que estes estão de forma direta ligada com os conceitos da qualidade, pois se a qualidade esta em atender as necessidades do solicitante/cliente, testar é contribuir para que o software desenvolvido esteja de acordo com as expectativas do mesmo. Este estudo demanda uma maior pesquisa em qualidade de software, onde se pode aprofundar nas questões de controle e garantia da qualidade de software. Sua abordagem se faz necessária para evitar que produtos defeituosos sejam entregues aos clientes tendo o objetivo de monitorar os processos e correção de defeitos com definições padronizadas. THE FUNDAMENTALS OF SOFTWARE TESTING AND ITS IMPORTANCE IN THE QUALITY OF PROJECTS This work describes the importance of software testing in organizations and their pleas. This approach is justified in the demonstration of basic foundations of software testing, for those who want to apply their background in software projects and the impacts that their lack can cause in business organizations. The purpose of this study is to understand the concepts of software testing and its fundamental process as also design, prioritize, create and execute test plans in accordance with approved plans, write incident reports in accordance with established techniques such as also demonstrate the importance of the completion of the test of software in organizations. This purpose will be achieved through a review of the literature, which will be searched journals (books, magazines, specialized web sites, among others), to understand the concepts and clarify what are the fundamentals of software testing. The study showed that the test of software is very important for companies, sectors of development and information technology professionals by reducing the maximum number of defects that if Is in its products manufactured or sold. The impact that the lack of software testing and the lack of skilled professionals can cause huge losses as losses of markets or damage the image of the products, because it directly affects its usability, functionality, security and reliability of the systems. Keywords: Software Testing. Quality Systems. Trusted programs.
  • 13. 13 REFERÊNCIAS ANDRADE, A. P.; VIANA, P. Criação e Geração de Planos de Teste de Software. Online: IBM, ago. 2012. Disponível em: <http://www.ibm.com/developerworks/br/local/rational/criacao_geracao_planos_testes_software/ >. Acesso em: 05 out. 2014. ARAUJO, L. D. A Importância do Teste de Software para a qualidade do Projeto. Online: Centro Universitário UNA, [2013?]. Disponível em: <http://www.una.br/> BASE de conhecimento para certificação em teste. v. 2005, Online: BSTQB, 2005. Disponível em: <http://www.bstqb.org.br/?q=download>. Acesso em 05 de set. 2014. CONCEITOS: tipos de teste. Online: WThreeX, 2001. Disponível em: <http://www.wthreex.com/rup/portugues/process/workflow/test/co_tytst.htm>. Acesso em: 11 out. 2014. CRAIG, R. D.; JASKIEL, S. P. Systematic Software Testing. Boston: Artech House Publishers, 2002. FARACO, P. Certificações ISTQB. Online: Um, Dois, Três, Testando. - Insights sobre Testes de Software, 24 maio 2011. Disponível em: <http://testing.faraco.net/2011/05/24/certificacoes- istqb/>. Acesso em: 03 out. 2014. FILHO, A. M. D. S. Plano de Teste - Um Mapa Essencial para Teste de Software. Online: DEVMEDIA, 03 ago. 2009. Disponível em: <http://www.devmedia.com.br/plano-de-teste-um- mapa-essencial-para-teste-de-software/13824>. Acesso em: 05 out. 2014. GLOSSÁRIO standard de termos usados em Testes de software. Online: BSTQB, 2011. Disponível em: <http://www.pstqb.pt/ficheiros/PSTQB_Glossario_v2.1pt.pdf>. Acesso em: 03 ago. 2014. GUIA do candidato Brazilian software testing qualifications board. Online: BSTQB, 2013. Disponível em: <http://www.bstqb.org.br/uploads/docs/guiadocandidato.pdf>. Acesso em: 29 set. 2014.
  • 14. 14 MEDEIROS, H. Fundamentos do Teste de Software para Certificação CTFL. Online: DEVMEDIA, 26 maio 2014. Disponível em: <http://www.devmedia.com.br/fundamentos-do- teste-de-software-para-certificacao-ctfl/30708>. Acesso em: 10 out. 2014. HAUG, M.; OLSEN, E.W.; CONSOLINI, L. Software quality approaches: testing, verification, and validation: software best practice 1. Berlin: Springer, 2001. PALMA, F. Testes De Software. Online: Teste de Software, 21 junho 2012. Disponível em: <http://testesdesoftware.blogspot.com.br/2009/09/tipos-de-teste.html>. Acesso em: 11 out. 2014. PIERRI, F. Planejamento de testes de sistema. Online: Matera Systems, 29 julho 2013. Disponível em: <http://www.matera.com/br/2013/07/29/planejamento-de-testes-de-sistema/>. Acesso em: 18 out. 2014. QUEZEDA, G. Execução e Relatório de Teste. Online: Falando em Teste e Qualidade de Software, 13 agosto 2009. Disponível em: <http://gustavoquezada.blogspot.com.br/2009/08/para- continuar-com-o-assunto-relatorio.html>. Acesso em: 18 out. 2014. RIOS, E.; MOREIRA, T. Teste de Software 3ª Edição revisada e ampliada. Rio de Janeiro: Alta Books, 2013. ROCHA, A. R. C.; MALDONADO, J. C.; WEBER, K. C. E. A. Qualidade de software – Teoria e prática. São Paulo: Prentice Hall, 2001. ROESSLER, R. G. Derivando casos de teste a partir de casos de uso. Online: DEVMEDIA, 10 de outubro 2011. Disponivel em: <http://www.devmedia.com.br/websys.5/webreader.asp?cat=48&artigo=3975&revista=esmagazi ne_41#a-3975>. Acesso em: 18 out. 2014. WEISS, K. Fundamentos em Teste de Software. Online: TI.EXAMES, 2011. Disponível em: <http://www.tiexames.com.br/curso_Teste_Software_CTFL.php>. Acesso em: 05 out 2014.