Escolar Documentos
Profissional Documentos
Cultura Documentos
2 Atividade Discursiva - Eng de Software
2 Atividade Discursiva - Eng de Software
2°
Para que um Software seja de Qualidade, é necessário Testes nele, para isso devemos nos
fundamentar em 3 Prinicipios:
Definir um cronograma, uma sequência de etapas que deve ser aplicada.
Aqui você vai definir todas as etapas, tempo estimativo para a conclusão, vai DIVIDIR as tarefas
do que será analisado e testado.
APROFUNDANDO NA MATÉRIA:
De forma mais simples, com um papel em mãos, poderíamos definir 12 passos fundamentais
básicos e comuns a maioria dos Softwares.
Se existe conflito dos recursos do Sistema Operacional com o Software, espaço em disco,
Drivers e outros Softwares, tais como Antivírus, recursos de Rede, se durante a instalação
acontece paradas ou se ele afeta o Sistema Operacional.
Digamos que seu Software é uma rede social interna, em uma Intranet, para ele salvar os
dados (Nome, Senha, Conversas)ele usa um Banco de Dados também interno, será que o
Software diretamente acessado pelo Usuário permite que alguém acesse sua Senha, por meio
de uma falha do Action, ou no Import, será que os dados são enviados criptogrados na rede
por meio do POST, será que esse Banco de Dados tem falhas que permitem um SQL Inject.
"Será que o Software faz tudo o que deveria fazer?" "Será que ele tem todos os recursos
necessários do objetivo ou contratado, será que ele não tem mais do que realmente precisa?"
- Todas essas perguntas devem ser feitas para esse teste.
6 - Teste de Unidade
Aqui você vai avaliar os recursos um por um, classe por classe do código.
7 - Teste de Integração
Será que os recursos do Software funcionam de forma integrada sem Bugs, exemplo, vou
pegar esse Site, que é um Software, será que é possível, enquanto eu escrevo essa resposta ver
minhas notificações sem que o Site ou o código Bugue. Testar mais de um recurso
simuntaneamente.
8 - Teste de Volume
Será que o SO está se comportando normal com o uso de processo que o Software vai exigir
em sua funcionalidade padrão, ou se a rede vai permitir.
9 - Performace do Software.
Você vai stressar ele kkkk, testar se ele roda bem, mesmo após um longo período de uso, se os
usuários ficam estáveis (No caso de uma Rede Social), se todos os dados (Vídeos, Áudios,
Imagens e Textos) estão rodando de forma satisfatória.
"O Layout, os botões, a aparência e seu uso é intuitivo, o visual Facilidade o uso por um leigo?"
"Se o usuário apertar o Botão 15 vezes seguidas de 'Solicitar Ficha', será que o Software vai
abrir de forma redundante a mesma solicitação?" - Tudo isso.
Testa os recursos do código e visuais. Entra aqui algumas das etapas ditas a cima.
12 - Manutenção
Verifique se o Software e seu uso não afetou o SO de forma negativa ou modificou algum
recurso do SO ou de outros Softwares.
3°
A atividade de teste durante o ciclo de vida do software
Resumo
Neste artigo serão considerados os princípios, objetivos e classificação dos testes, com a
finalidade de fundamentar, através do estudo da teoria de testes, os assuntos que serão
abordados posteriormente.
1. Introdução
Estes são alguns dos motivos que têm feito com que a atividade de teste de software
tenha se tornado um dos itens mais estudados no contexto de aprimoramento da
qualidade de software.
Neste artigo entende-se que a atividade de teste deve ser usada em todas as etapas do
processo de desenvolvimento de software e que, ao invés de representar uma última
revisão, seja utilizada como "milestone" entre todas as fases do projeto, pois os erros,
como afirma Deutsch, podem estar já nas primeiras fases do projeto, e quanto mais
tarde forem descobertos, maior impacto causarão. Do ponto de vista financeiro, um
estudo realizado pela IBM [3] mostra que enquanto um erro encontrado e corrigido
durante a fase de projeto custa 1 unidade monetária, se o mesmo for encontrado
durante a atividade de testes de código, custará 15 unidades. Após o lançamento do
produto, a correção do mesmo erro custará entre 60 e 100 unidades monetárias.
3. Teste de software
3.1 Considerações
Portanto, o termo programa designa qualquer objeto que possa ser conceitualmente ou
realmente executado. É este o significado utilizado no presente artigo.
Programas podem ser vistos como uma função, uma vez que descrevem o
relacionamento dos elementos de entrada com os elementos de saída. O processo de
testes é utilizado para verificar se o programa realiza suas atribuições de forma
confiável, ou seja, se para uma determinada entrada, a saída obtida corresponde à
esperada.
Uma completa validação do programa em qualquer estágio do ciclo de vida pode ser
obtida através da execução do processo de teste para cada valor de entrada possível. Se
cada instância for bem-sucedida, o programa foi verificado; senão, um erro foi
encontrado. Este método é conhecido com o teste exaustivo e é a única técnica de
testes que garantiria a validade do programa. Lamentavelmente esta técnica não é
viável. Na maior parte dos casos, o domínio da função (conjunto de dados de entrada
possíveis) é infinito, ou quando finito, grande o bastante para fazer o número de testes
requeridos inviável.
A principal técnica de teste continua sendo executar o software usando uma massa de
testes que contenha dados representativos como entradas para o sistema ou módulo e
comparar a saída gerada com a esperada. Diferenças representam falhas que devem ser
corrigidas.
Conforme a Lei de Pareto, 80% dos erros podem ser localizados em 20% do
projeto, geralmente nos módulos principais do sistema;
Bons casos de teste são aqueles que encontram falhas no sistema até então não
descobertas;
Um critério que pode ser utilizado para determinação do esforço a ser gasto na
atividade de teste de software é verificar qual o grau de severidade das
conseqüências advindas do seu mau funcionamento;
ter em mente que, uma vez que errar é humano e atividade de desenvolvimento
de software é um exercício bastante complexo, os erros existem e devem ser
descobertos. Portanto, o sucesso em um teste consiste em descobrir os erros e
corrigi-los.
Testes estáticos ou testes humanos: não são feitos através da execução real do
programa, mas sim através da execução conceitual do mesmo. Métodos
classificados como estáticos são os de walkthrough, inspeções e peer rating. São
utilizados principalmente para validar as primeiras etapas do projeto como: de
elicitação de requisitos, projeto preliminar e projeto detalhado, podendo ser
usados para validar o código também.
Testes dinâmicos: Requerem que o programa seja executado, e por isso seguem
o modelo tradicional de teste de programa, no qual o programa é executado
com alguns casos de teste e os resultados da execução são examinados para
verificar se o programa operou de acordo com o esperado. São usados
principalmente na validação do código em módulos e na integração geral do
sistema.
Testes funcionais: Uma vez que testes exaustivos não são viáveis, características
do domínio de entrada são examinadas para que se tente descobrir formas de
derivar um conjunto de dados de teste representativo que consiga exercitar
completamente a estrutura do sistema. Os dados de teste precisam ser
derivados de uma análise dos requisitos funcionais e incluir elementos
representativos de todas as variáveis do domínio. Este conjunto deve incluir
tanto dados de entrada válidos quanto inválidos. Geralmente, os dados no
conjunto de dados de teste podem ser classificados em três classes: de fronteira,
não de fronteira e especiais. Exemplificando: Se X for um número e se
tivermos Xtal que, a < X < b, então X deve ser testados para os valores a + 1 e b –
1 da classe válida, para os valores a e b da classe inválida e para valores especiais
tais como zero, vazio, ou caracteres alfabéticos. São considerados métodos de
testes funcionais ou de caixa preta: o particionamento de equivalência, a análise
de valor limite, a técnica de grafo de causa-efeito e os testes de comparação.
Testes alfa e beta: São os testes de aceitação, feitos pelo usuário, que
dificilmente opera o sistema da forma prevista, e visam descobrir erros
cumulativos que poderiam deteriorar o sistema no decorrer do tempo. O teste
alfa é executado por um cliente nas instalações do desenvolvedor, sendo
acompanhado pelo desenvolvedor, que registra os problemas encontrados no
uso. O ambiente é controlado. Já o teste beta é realizado em uma ou mais
instalações do cliente pelo usuário final do software. Geralmente o
desenvolvedor não está presente. Assim, o teste beta é uma aplicação real
do software, sem que haja controle por parte do desenvolvedor. Os problemas
são registrados pelo usuário e repassados regularmente ao desenvolvedor, que
corrige o software antes de lançar o produto para venda.
4. Conclusões
Embora seja difícil medir e definir um software como sendo de boa qualidade, é fácil
identificar um softwarede má qualidade. Os erros freqüentes, o mau funcionamento, ou
a inadequação aos requisitos são sempre notados.
A atividade de testes, quando bem realizada, torna-se uma forma de avaliar e agregar
qualidade ao produto, reduzir custos e retrabalho, melhorando a imagem da empresa e
ampliando sua capacidade competitiva.
Por estas razões, esforços de planejamento e controle da execução de testes devem ser
feitos a partir das etapas iniciais, para que a atividade de testes esteja de acordo com a
qualidade do software que se pretende gerar.
5. Próximos passos