Buscar

Aula 8 - Avaliação de SW

Prévia do material em texto

Unidade IV – Gerenciamento do Testware 
15 – Conceito do Testware 
Unidade IV 
Avaliação de Software 
Prof. Ulisses Sperle Graça 
Abr/2013 
2 
 Da mesma forma que existe uma gestão de software, 
deve existir uma gestão equivalente ao testware, ou seja, 
todos os cuidados existentes no desenvolvimento de software 
devem existir no desenvolvimento de componentes que 
objetivam a automação dos procedimentos de testes. 
 Ao contrário do que se imagina, as atividades de testes 
não podem ser encaradas como uma tarefa passageira que pode 
ser realizada sem controle ou padrão. 
 Igualmente ao software, o testware tem significativo 
valor porque pode ser reutilizado sem incorrer em um novo 
custo de redesenvolvimento a cada execução. 
Fazendo uma Reflexão 
3 
Da mesma forma que os engenheiros de hardware produzem o 
hardware e os engenheiros de software produzem software, os 
engenheiros de teste produzem o testware. 
Testware são todos os produtos gerados nas fases de 
verificação e validação, onde incluem-se todas as formas de 
documentações, automações e relatórios produzidos. 
São as checklists, o planejamento e especificações de testes, 
as rotinas automatizadas de execução, os casos de testes, a 
massa de testes e os relatórios finais de validação. 
Perder uma rotina de teste automatizada ou uma especificação 
de teste é tão crítico quanto perder uma especificação de 
negócios ou um código fonte. 
Entendendo o conceito de Testware 
4 
Um software necessita de um conjunto de equipamentos e de 
um conjunto de programas para ser utilizado, a esta 
combinação damos o nome de infraestrutura. 
Durante todo o processo de desenvolvimento, cada fase possui 
uma missão diferente, requerendo uma configuração de 
hardware e software adequada a esses objetivos. 
Cada ciclo de vida do software (desenvolvimento, teste e 
produção) requer uma infraestrutura diferenciada, 
necessitando de um local físico distinto, ao qual chamamos de 
ambiente. 
Ambiente é um local físico onde existe uma infraestrutura 
de hardware e software adequada a uma determinada 
missão. 
Testware aplicado nos vários ambientes 
5 
 
Ambiente 
de 
Desenvolvimento 
 
Ambiente 
Teste e 
Homologação 
 
Ambiente 
de 
Produção 
Em 
Teste 
Em 
Desenvolvimento 
Em 
Produção 
Em 
Homologação 
Ciclo de Vida do Software 
Gestão de ambientes 
Testware aplicado nos vários ambientes 
6 
Tem como missão maior fornecer toda a infraestrutura 
necessária de hardware e software para a confecção de um 
novo software, que deve estar disponível à equipe de 
desenvolvimento, ou seja, analistas e programadores. 
Esse ambiente deve ser segmentado em duas partes: Uma para 
atender às necessidade da equipe de desenvolvimento outra 
para as necessidades de testes desta mesma equipe. 
Neste segmento voltado exclusivamente aos testes, deverão 
ser aplicados os testes de unidade e de integração, que 
poderão ser aplicados pela própria equipe de desenvolvimento 
ou uma equipe independente de testes. 
Ambiente de Desenvolvimento 
7 
Como estes testes exigem um alto grau de conhecimento da 
arquitetura do software a ser testado, é mais natural que os 
testes fiquem sendo inicialmente de responsabilidade da 
própria equipe de desenvolvimento. 
Porém, a experiência demonstra que os testes realizados por 
uma equipe externa permitem maior nível de eficiência e 
cobertura, além de possibilitar um alto grau de automação dos 
testes. 
Se não existem grandes restrições orçamentárias, uma equipe 
de teste independente é extremamente recomendável. 
Ambiente de Desenvolvimento 
8 
Ambiente de Desenvolvimento Ambiente de Teste e Homologação 
 
 
Desenvolvimento 
 
 
Fontes 
Estrutura Interna 
 
Teste 
Unidade 
Integração 
 
Categoria 
Funcional 
Usabilidade 
 
 
Teste: 
Sistema 
 
Categoria: 
Funcional 
Carga 
Performance 
Instalação 
Segurança 
 
 
Teste: 
Aceitação 
 
Categoria: 
Aceite Formal 
Alpha-Teste 
Em desenvolvimento Em Teste Em Homologação 
Ambiente de Desenvolvimento 
9 
Esse ambiente tem como missão fornecer toda a 
infraestrutura necessária para a realização dos testes de 
requisitos do software, que deve estar disponível 
exclusivamente para essa finalidade, de forma a garantir um 
ambiente ideal de simulação. 
Sua infraestrutura deve contemplar um ambiente muito 
semelhante ao de produção para possibilitar o maior número 
possível de testes nas condições mias próximas de um ambiente 
real. 
Principais testes: Desempenho 
 Volume 
 Carga 
 Segurança 
Ambiente de Teste e Homologação 
10 
Esse ambiente deve contemplar um conjunto de hardware e 
software construídos com a finalidade de interagir com o 
software de forma automatizada, possibilitando a execução e 
conferência de forma flexível e otimizada. 
Sempre que for necessário importar massas de dados de 
produção com o propósito de integrá-las ao processo de testes, 
é recomendável aplicar técnicas de criptografia nas 
informações, impossibilitando que os dados tornem-se de 
conhecimento dos profissionais que atuam neste ambiente. 
Ambiente de Teste e Homologação 
11 
Ambiente de Teste e Homologação Ambiente de Produção 
 
Teste: 
Sistema 
 
Categoria: 
Funcional 
Carga 
Performance 
Instalação 
Segurança 
 
 
Teste: 
Aceitação 
 
Categoria: 
Aceite Formal 
Alpha-Teste 
 
 
Teste: 
Aceitação 
 
Categoria: 
Beta-Teste 
 
 
 
 
 
Produção 
Em Teste Em Homologação Em produção 
Ambiente de Teste e Homologação 
12 
Nesse ambiente ocorrem todos os testes de sistema que 
validam os requisitos de software levantados, como os 
requisitos funcionais, segurança, performance, entre outros. 
Os testes são realizados com as técnicas de caixa preta, nas 
quais não se requer um conhecimento interno do software. 
Os testes de aceite (formal e alpha-teste), que são executados 
pelos próprios usuários finais, também são realizados nesse 
ambiente, pois possuem infraestrutura muito semelhante a que 
será encontrada no ambiente de produção. 
Os usuários são convidados a manipular a “nova-versão” do 
software, simulando as operações do dia a dia. 
Ambiente de Teste e Homologação 
13 
Tem como missão fornecer toda a infraestrutura necessária 
para que o produto desempenhe as funcionalidades para as 
quais foi projetado. 
É nesse ambiente que o software produz os resultados 
esperados, ou seja, todas as operações aqui são “reais”, 
representando todas as transações de negócios realizadas pelo 
cliente. 
Deve ser altamente controlado e seguro de invasões. 
Através do número de erros identificados, podemos mensurar 
o quanto está sendo efetivo o esforço do processo de qualidade 
do software, comparando com os níveis de defeitos que 
ocorriam antes da implantação desse processo. 
Ambiente de Produção 
14 
Ambiente de Teste e Homologação Ambiente de Produção 
 
Teste: 
Sistema 
 
Categoria: 
Funcional 
Carga 
Performance 
Instalação 
Segurança 
 
 
Teste: 
Aceitação 
 
Categoria: 
Aceite Formal 
Alpha-Teste 
 
 
Teste: 
Aceitação 
 
Categoria: 
Beta-Teste 
 
 
 
 
 
Produção 
Em Teste Em Homologação Em produção 
Ambiente de Produção 
15 
Através dos erros ocorridos no ambiente de produção, a equipe 
de testes planejará um conjunto de novos casos de testes, 
evitando que esses erros sejam reincidentes, melhorando a 
confiabilidade do produto ao longo do tempo. 
Nesse ambiente são realizados os chamados Beta-testes (fase 
final do processo de homologação do software),onde apenas 
um grupo selecionado de usuários terá acesso a uma “nova-
versão” do produto que ainda está sob o comando da equipe de 
testes. 
Ambiente de Produção 
16 
Para que possam ser realizados os testes de software, toda 
uma infraestrutura deve ser levantada de forma a possibilitar 
a criação de um ambiente de testes adequado a cada sistema. 
O baseline é o resultado do esforço de criação de um ambiente 
inicial pronto para sofrer o processamento dos testes 
planejados. 
São várias atividades que resultam em sua construção: 
Ponto de Corte: é recomendável que a base de dados do 
ambiente de teste seja obtida do ambiente de produção. Isto 
possibilita uma imediata familiarização com as informações do 
ambiente, facilitando no planejamento dos casos de testes. O 
ponto de corte é a atividade de “congelamento” das 
informações do ambiente de produção, a ser realizada em data 
preestabelecida. 
Gerenciando o Baseline 
17 
Critérios de Redução e Limpeza: muitas vezes, a base de 
dados obtida no ponto de corte é muito grande, não sendo 
necessária a migração total das informações. Para isso, são 
definidos critérios para a redução e limpeza sem que isso 
prejudique o planejamento e a conferência das informações. 
Criptografia: Alguns dados de produção podem ser sigilosos e 
não poderiam ser identificados. 
Informações adicionais: Durante o planejamento dos testes, 
algumas informações deverão ser incorporadas à massa de 
dados de forma a criar artificialmente alguns cenários que não 
estão adequadamente representados na massa criada. 
Seleção de Componentes: Identificar todos os componentes 
necessários para a execução do software (são arquivos ou 
mesmo referências, parâmetros etc.). 
Gerenciando o Baseline 
18 
A cada execução dos testes, as informações contidas no banco 
de dados tornam-se obsoletas, uma vez que as condições 
iniciais são modificadas pela própria execução dos testes. 
O baseline, torna-se um instrumento adequado para recuperar 
a condição inicial dos testes, sendo necessário ser 
restabelecido sempre que iniciarmos um novo ciclo de validação. 
Gerenciando o Baseline 
 
Componentes 
Base de 
Dados 
Ambiente de Produção 
 
Componentes 
Base de 
Dados 
Baseline 
Ponto de Corte 
Redução e Limpeza 
Informações Adicionais 
Criptografia 
Seleção de Componentes 
Unidade V – Gestão das Ferramentas de Apoio 
19 – Gestão das Ferramentas 
Unidade V 
Avaliação de Software 
Prof. Ulisses Sperle Graça 
Abr/2013 
20 
A utilização de ferramentas em um processo de qualidade de 
software é tão interessante quanto empregar ferramentas de 
apoio ao desenvolvimento. 
O emprego de testes manuais só é recomendável quando não 
existir uma alternativa no mercado. 
Estas ferramentas são denominadas CAST (Computer-Aided 
Software Testing). 
Como os testes de verificação são baseados, na maioria das 
vezes, em documentos de requisitos e especificações, sua 
automação torna-se extremamente complexa. 
Mesmo assim, um conjunto de ferramentas poderá auxiliar na 
elaboração e gerenciamento de checklists a serem aplicados. 
Fazendo uma Reflexão 
21 
Em relação aos testes de validação, o ideal é criar um ambiente 
de testes altamente automatizado. 
Isso irá refletir em uma redução de custos, melhor controle e 
confiabilidade do processo, maior flexibilidade, além de 
aumentar a efetividade do próprio processo. 
As chances de sucesso na identificação de erros são mais 
significativas quando empregamos ferramentas de testes. 
Fazendo uma Reflexão 
22 
São ferramentas que apoiam o processo de planejamento dos 
trabalhos de testes, definindo escopos, abordagens, recursos, 
agendando reuniões e programando atividades. 
Geralmente estão apoiadas na coleta inicial de requisitos de 
software, possibilitando dimensionar o esforço e complexidade 
envolvidos no processo de desenvolvimento. 
Essas ferramentas também auxiliam no processo de 
documentação inicial, possibilitando gerar planejamentos 
padronizados e na elaboração de estimativas de tempo e 
custos, além de dimensionar as equipes de acordo com o tempo 
disponível. 
Ferramentas de Planejamento de Testes 
23 
Análise de Criticidade 
Essas ferramentas apoiam o processo de priorização de 
sistemas, identificando quais devem ser testados inicialmente, 
possibilitando direcionar esforços de forma eficiente, gerando 
resultados em curto espaço de tempo. 
Permite estimar tempo, custos e equipes através da análise da 
complexidade de cada software, baseando-se nos requisitos a 
serem cumpridos. 
Gerador de Documentos 
Ferramentas que facilitam o processo de documentação, 
através da utilização de parametrizações e modelos de 
documentos. Gerenciam as versões de modelos e possibilitam 
organizar um workflow de preparação, elaboração, inspeção e 
aceite de cocumentos. 
Ferramentas de Planejamento de Testes 
24 
Essas ferramentas apoiam o processo de verificação do 
software, ou seja, auxiliam nas revisões de documentos e 
inspeções técnicas que podem ser aplicadas em todas as etapas 
do processo de desenvolvimento. 
Análise de Complexidade 
Desenvolvedores experientes sabem que em 20% do código 
estão 80% dos problemas. 
Essas ferramentas auxiliam a identificar onde estão as áreas 
mais complexas e, consequentemente, quais possuem maior 
risco de introduzir novos erros. 
Também auxiliam a quantificar o esforço e os custos dos 
testes a serem empregados. 
Ferramentas de Revisões e Inspeções 
25 
Compreensão de Código 
Auxiliam na atividade de inspecionar códigos-fonte, possibili-
tando avaliar a aderência a padrões de programação 
estabelecidos pela organização, como: padrões de nome, 
utilização de rotinas corporativas, nível de comentários, entre 
outros. 
Também identifica variáveis não utilizadas, sub-rotinas não 
acionadas, APIs incompatíveis com determinados S.O. em que a 
aplicação irá rodar, entre outras características. 
Análise Sintática e Semântica 
São ferramentas que localizam erros na sintaxe e na semântica 
dos comandos empregados no código, os quais o compilador não 
acusaria. 
Ferramentas de Revisões e Inspeções 
26 
As ferramentas de modelagem auxiliam no processo de 
construção e documentação de como serão testados todos os 
requisitos de negócio. Possibilitam registrar os procedimentos 
de testes a cada cenário estabelecido e o processo de 
conferência dos dados. 
As ferramentas de automação dos testes possibilitam o 
desenvolvimento de scripts automatizados, de forma a 
viabilizar um processo de teste com as atividades de entrada e 
conferência de valores totalmente automatizados. 
Ferramentas de Modelagem e Automação 
27 
Modelagem de testes 
Auxilia no processo de planejamento e construção dos testes, 
identificando os diversos cenários estabelecidos para cada 
requisito a ser testado, estabelecendo um conjunto de 
procedimentos a serem executados para cada cenário indicado, 
definindo como os testes se comportarão. 
Determina as informações que devem ser empregadas em cada 
procedimento de teste, atingindo o menor nível de 
detalhamento. 
É um processo mental, sendo que nenhuma ferramenta 
substituirá a experiência e abstração de um bom analista de 
testes, porém estas ferramentas auxiliam na estruturação das 
ideias facilitando a compreensão das decisões a serem tomadas. 
Ferramentas de Modelagem e Automação 
28 
Gerador de Massa de Dados 
Gera automaticamente uma massa de dados baseada no 
planejamento dos testes e critérios estabelecidos de forma a 
garantir uma massa diferenciada para cada dia e nas 
circunstâncias desejadas. 
Automatizador de Scripts 
O processo de automação requer ferramentas que possibilitem 
a interação entre as rotinas automatizadase os softwares a 
serem testados. Também requer que estas ferramentas 
possuam recursos de conferência automática, possibilitando 
capturar valores em tela, arquivos, relatórios ou mesmo em BD. 
Dessa forma, essas ferramentas automatizarão não somente as 
atividades de entrada, como o processo de conferência. 
Ferramentas de Modelagem e Automação 
29 
As ferramentas de execução e conferência possibilitam o 
gerenciamento e o controle no processo de execução, 
reexecução e medição dos testes planejados, de forma a 
possibilitar a integração entre as demais fases, de forma 
executar somente os testes selecionados no planejamento. 
Executor de Scripts 
Essas ferramentas estão sempre integradas aos software de 
planejamento de testes e desenvolvimento de scripts, de forma 
a executar os procedimentos na ordem e frequência 
preestabelecidas. 
Permite a gestão do ciclo de testes como um todo, como o 
controle de execução da cada caso de testes, o controle da 
reexecução dos testes e os desvios de testes provocados por 
erros inesperados. 
Ferramentas de Execução e Conferência 
30 
Análise de Cobertura 
Possibilita estabelecer uma métrica de cobertura do teste 
através do monitoramento das linhas de código executadas. Os 
testes caixa branca requerem este tipo de ferramenta, pois 
possibilita visualizar áreas de código não cobertas pelos testes 
em execução. 
Testadores de Memória 
Auxiliam no processo de detecção de problemas relacionados 
ao uso e alocação de memória pela aplicação. 
Trata-se de um ponto sensível em sistemas cliente-servidor, 
pois podem deixar o software instável. As ferramentas devem 
ser específicas para cada ambiente. As melhores ferramentas 
da categoria são simples de usar e com preços acessíveis. 
Ferramentas de Execução e Conferência 
31 
Simuladores e Medidores de Performance 
Nessa categoria é impossível conceber a ideia de realizar 
testes sem empregar ferramentas específicas. 
É impraticável, por exemplo, simular a consulta simultânea de 
mil usuários em uma determinada situação, ou a visita de 500 
internautas à home-page de sua empresa, sem a utilização 
efetiva de ferramentas. 
Essas ferramentas estão diretamente ligadas aos testes de 
sistema, como mos testes de carga, volume e performance. 
Ferramentas de Execução e Conferência 
32 
Essas ferramentas apoiam atividades que não estão 
diretamente ligadas ao processo de testes, porém garantem 
que determinados itens fundamentais desse processo estão 
sendo gerenciados. 
Ferramentas de Suporte aos Testes 
33 
Gerenciamento de Defeitos 
Essa ferramenta também é conhecida por outros nomes: 
gerenciamento de erros, gerenciamento de problemas, registro 
de ocorrências, controle de incidências etc. 
Seu objetivo é acompanhar e controlar os erros identificados 
durante o ciclo de vida do software e monitorá-los até sua 
solução final. 
Essas ferramentas permitem parametrizações de forma a 
customizar um workflow de resolução de problemas para 
melhor adaptar-se à estrutura do usuário. 
Essas ferramentas produzem um grande número de indicadores 
de qualidade, como percentual de erros por severidade, análise 
da eficiência da resolução de problemas, distribuição de erros 
por fase do processo, entre outros. 
Ferramentas de Suporte aos Testes 
34 
Gerenciamento de configurações 
Permite controle e coordenação das mudanças efetuadas em 
documentações, fontes e ambientes físicos. 
Sua maior contribuição é estabelecer relações entre diversos 
artefatos e identificá-los através de um único controle de 
versão, dessa forma, não é possível acessar documentos de 
determinada versão enquanto estamos modificando fontes de 
uma versão anterior. 
Essas ferramentas são largamente empregadas nos ambientes 
de desenvolvimento e produção, sendo adequado utilizar-se da 
mesma ferramenta para o gerenciamento do testware. 
Ferramentas de Suporte aos Testes

Continue navegando