ALM – Testes – Abordagens de Testes de Software

Introdução

Atualmente em desenvolvimento de software, possuimos diversas abordagens de processos, conforme a realidade da empresa, funcionários e necessidades. Sendo que cada modelo se adequa ao negócio, ficando a cargo dos envolvidos entenderem se há necessidade de mudanças ou não, conforme seus projetos, planejamentos e cenários.

Nesse artigo são destacados algumas das diversas abordagens, na parte de Testes de Software, para conhecermos e entendermos um pouco mais de cada uma. Cada abordagem aqui possui seu valor e objetivo, conforme a realidade da empresa que a utiliza.

Abordagens de Testes

Testes Analíticos

Características

– Testes são uma atividade técnica e rigorosa;

– Testes são um branch da ciência da computação e matemática;

– Software é um artefato lógico;

– Teste é uma ciência baseada em Computação e Matemática: Objetivo, rigoroso e compreensivo;

– Técnicas de testes devem ser objetivas: apenas uma resposta certa;

– Teste é uma atividade técnica;

Empresas que utilizam

– Indústrias de Telecom;

– Sistemas Críticos (Aviões, Navios, Medicina);

Instituições Divulgadoras

– Academias

Técnicas de Testes

Testes de Caixa Branca;

– Testes estruturais;

– Testes de cobertura de código.

Testes Convencionais

Características

– Testes gerenciados: Previsível, repetível, planejado;

– Testes valida o produto;

– Testes medem o progresso do desenvolvimento;

Empresas que utilizam

– Enterprise IT;

– Desenvolvimento para Governo.

Instituições Divulgadoras

– IEEE Standards Boards

– Instituições certificadoras de Teste: ISTQB, ALATS, entre outras.

Técnicas de Testes

– Matriz de Rastreabilidade (Identifica se todos os requisitos foram testados);

– V-Model

image

Testes Baseados em Quality Assurance

Características

– Disciplinado;

– Testes determina se o processo de desenvolvimento está sendo seguido;

– Cada bug é um problema de processo;

– Testadores devem proteger os usuários dos software ruins;

– O software não está pronto até que o QA (Controle de Qualidade de Software) concorde;

– Testes é o ponto de partida para a Melhoria do Processo;

Empresas que utilizam

– Organizações sob leis e obrigatoriedades

Instituições Divulgadoras

– American Society for Quality (ASQ);

– Software Engineering Institute (CMM);

– International Standards Organization (ISO);

Técnicas de Testes

– Testes baseados em processos;

– Suites de Testes definidas conforme as normas instituidas;

– Validação por um time de QA que identifica se os processos foram finalizados;

Testes Dirigidos ao Contexto

Características

– Teste deve encontrar bugs;

– Teste provê informações para o projeto;

– Teste é uma atividade mental que requer habilidade;

– Teste é multidisciplinar;

– O valor de qualquer prática depende de seu contexto;

– . Existem boas práticas em determinado contexto, mas não existem melhores práticas;

– As pessoas, trabalhando em conjunto, são a parte mais importante do contexto de qualquer projeto;

– Projetos se desdobram ao longo do tempo de maneiras normalmente imprevisíveis;

– O produto é uma solução. Se o problema não foi resolvido, então o produto não funciona;

– O bom teste de software é um processo intelectual desafiador;

– Somente por meio de julgamento e habilidade, realizados cooperativamente ao longo de todo projeto, somos capazes de fazer as coisas certas nos momentos certos para testar nossos produtos de forma efetiva.

Empresas que utilizam

– Software Comerciais;

– Market-driven Software (Software dirigido ao Mercado)

Instituições Divulgadoras

– LAWST Workshops;

– Los Altos Workshop on Software Testing;

– StarEast/StarWest

Técnicas de Testes

– Testes Exploratórios (Exploratory Testing);

– Execução e Design feitos de forma concorrente;

– Aprendizado Rápido (Rapid learning);

– Execução baseada em Missão e Estratégias;

– Difícil Gerenciamento;

– Preparado para mudanças. Adapta o planejamento dos testes baseado nos resultados;

– Efetividade das estratégias são verificadas colocando-as em prática;

– Pesquisas de testes requerem estudos empíricos e psicológicos

– Foco na habilidade ao invés da prática/método;

Testes Ágeis

Características

– Testes mostram que uma história está completa;

– Testes devem ser automatizados;

– Desenvolvedores devem fornecer frameworks para automação dos testes

Empresas que utilizam

– Consultorias

Instituições Divulgadoras

– Agile Workshops

Técnicas de Testes

– Testes Unitários;

– Test-Driven Development (TDD);

Ferramentas para Testes de Software

A Microsoft disponibiliza atualmente uma solução completa para auxiliar os times de testes das empresas, independente da abordagem utilizada. O Visual Studio ALM, permite que suas soluções se adequem a necessidade do cliente, não sendo necessario o cliente se adaptar a ferramenta.

Desde Templates de Processos prontos como SCRUM, CMMI, até a possibilidade de customizações fáceis nos processos para atender o fluxo de trabalho do cliente.

Destaque para as ferramentas de Testes de Software como:

Microsoft Test Manager: Solução de gerenciamento de Testes de Software, com gestão de Casos de Testes, Record & Play, coleta automática de informação de ambiente, entre outras características.

Microsoft Azure: O Azure integra-se com as tecnologias locais da Microsoft, de modo que você pode tirar vantagem completa do seu conhecimento, habilidades e investimentos existentes da Microsoft, e usar um desenvolvimento comum e uma estrutura de teste que abrange desde o datacenter até a nuvem. Tudo no Azure pode ser totalmente automatizado, então você pode realizar spin up e desmontar ambientes virtuais com um pressionamento de tecla. E graças à funcionalidade de escala do Azure, é possível fornecer capacidade adicional sob demanda e com custo reduzido, para projetos de curto prazo e iniciativas com prazo maior

App Insights: É uma ferramenta de análise de aplicações Web e Móveis que tem como objetivo ajudar o desenvolvedor a monitorar suas aplicações, independente de onde estejam instaladas, como celulares, tablets, televisores, servidores, em qualquer parte do mundo. Com essa poderosa ferramenta, você poderá avaliar como seu aplicativo está se comportando nos tablets espalhados pelo mundo, quais as funcionalidades mais usadas, quais as funcionalidades menos usadas, quais os navegadores mais utilizados para acessarem sua aplicação, entre outros recursos.

Dica – Testes de Segurança da sua Aplicação Web (SQL Injection) usando o OWASP ZAP

Uma das maiores preocupações em aplicações Web é o vazamento de informações confidenciais. E uma das práticas mais usadas é o SQL Injection.

A Injeção de SQL, mais conhecida através do termo americano SQL Injection, é um tipo de ameaça de segurança que se aproveita de falhas em sistemas que interagem com bases de dados via SQL. A injeção de SQL ocorre quando o atacante consegue inserir uma série de instruções SQL dentro de uma consulta (query) através da manipulação das entradas de dados de uma aplicação.

Para estarmos seguros, é extremamente importante em nosso ciclo de testes, abordarmos o PEN TEST (Teste de Penetração).

O teste de penetração é um método que avalia a segurança de um sistema de computador ou de uma rede, simulando um ataque de uma fonte maliciosa. O processo envolve uma análise nas atividades do sistema, que envolvem a busca de alguma vulnerabilidade em potencial que possa ser resultado de uma má configuração do sistema, falhas em hardwares/softwares desconhecidas, deficiência no sistema operacional ou técnicas contramedidas. Todas as análises submetidas pelos testes escolhidos são apresentadas no sistema, junto com uma avaliação do seu impacto e muitas vezes com uma proposta de resolução ou de uma solução técnica.

E uma ferramenta que pode apoiar no PEN TEST e no item SQL Injection é a ZAP (Zed Attack Proxy Project) da OWASP.

Ela é uma ferramenta gratuita que pode ser baixada aqui: https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

Instalação:

Instale a ultima versão do JAVA: https://www.java.com/pt_BR/download/

Depois configure a Maquina Virtual JAVA colocando o seguinte parametro nas variaveis de ambiente no seu Windows em Configurações –> Sistema –> Avançado – Variáveis de Ambiente.

Váriavel: _JAVA_OPTIONS

Valor: -Xmx512M

image

Depois instale normalmente o ZAP e execute ele.

image

Teste Simples:

Para conhecer mais a ferramenta, você pode iniciar um teste simples, colocando o endereço da aplicação Web e clicar em Attack!, porém esse teste será superficial, pois ele não entrará dentro de diretórios, relatórios e itens adicionais, que necessitem de logon. Mas esse ataque, se for em um site simples ou sua aplicação tiver problemas de segurança logo no inicio, já será possível colher dados nesse simples teste.

image

image

Veja em Alertas o que foi identificado em um teste simples.

image

Teste Completo:

Para um teste mais profundo de segurança, o ideal é ativar o ZAP e você executar seus testes funcionais enquanto o ZAP captura informações de seu aplicativo Web.

Para isso, inicie o ZAP:

image

Valide o endereço proxy que ele forneceu, no nosso caso foi localhost na porta 8080.

image

Vá nas configurações do seu navegar e configure o proxy, para que todas as requisições feitas por você ao navegar em sua aplicação, sejam capturadas pelo ZAP para análise.

image

Comece a navegar e perceba que automaticamente ele já começa a capturar o tráfego. Concentre sua navegação no site de teste, para que a captura seja produtiva.

image

Análises e Execuções de Testes Adicionais:

Bom, agora que sabemos como configurar o ZAP, executar testes e acompanhar análises, vamos avaliar o que ele oferece de itens de testes.

Fuzzer (SQL Injection)

Um fuzzer de segurança é uma ferramenta usada por pentesters (profissionais de teste de invasão), analista de segurança e hackers, para testar parâmetros de várias aplicações. Fuzzers testam softwares em busca de buffer overflows, format string vulnerabilities e error handling.
Alguns fuzzers avançados incorporam funcionalidades para testar vulnerabilidades do tipo “directory traversal attacks” ou seja, “ataques de travessia de pastas”, onde o atacante acessa pastas em vários níveis sem privilégios, “command execution vulnerabilities”, “SQL Injection” e “Cross Site Scripting vulnerabilities”. Web Vulnerability scanners tem tipicamente toda a performance e funcionalidade de fuzzer + um proxie para análise de requisições web, podendo ser considerado um fuzzer avançado.

Para realizar o teste, ative o proxy em seu navegador, navegue em seu site de testes, realizado os acessos devidos. Depois vá no ZAP, selecione a URL de Requisição, clique com o botão direito em cima da requisição e selecione FUZZ.

image

Na categoria, selecione o tipo de Injection, conforme o banco de dados e execute o teste.

image

Acompanhe os resultados.

image

Caso seja detectado uma falha, irá ser informado em Alerts.

Espero ter ajudado e até a próxima!

Alan Carlos

ALM – Microsoft Test Manager–MTM Copy Tool

Olá Pessoal!

Inspirado na publicação do Vinicius Moura (ALM – Lambda3), resolvi escrever esse post sobre a ferramenta MTM Copy Tool.

Essa ferramenta possibilidade você realizar cópias de Suites de Testes entre Coleções de Projetos! Alegre

Requisitos

Caso você não possua o TFS 2012, precisa instalar o Team Explorer 2012.

Team Explorer 2012: http://www.microsoft.com/en-us/download/details.aspx?id=30656

image

– Download da Ferramenta

Entre no site do Codeplex e realize o download da ferramenta.

http://mtmcopytool.codeplex.com/

image

Em seguida extraia ela em algum local de seu computador. Depois execute TestCaseCopyTool.exe.

image

Abrirá a janela abaixo. Conecte em seu projeto e realize o clone da suite para o projeto que desejar!

image

image

No meu exemplo, vou copiar um caso de teste do meu Projeto no TFS 2013 (on premisses) para meu TFS no Visual Studio Online.

Passo 1

Seleciono meu Team Foundation Server;

Seleciono o Projeto;

Passo 2

Seleciono meu Team Foundation Server (Online);

Seleciono meu Projeto.

Seleciono os Casos de Testes;

Passo 3

Crio um plano de testes ou selecione um do meu projeto destino;

Clico em Start Migration;

image

image

Depois, veja na Query do Visual Studio, ou Online!

image

image

 

– Referências e Maiores Informações

MTM Copy Tool – Codeplex

Um forte abraço!

Alan Carlos
Technet Wiki Ninja

Technet – Visual Round Trip Analyzer

Olá Pessoal,

Nesse artigo, como dica do meu amigo e companheiro de equipe Juliano Pires, falarei sobre o Visual Round Trip Analyzer.

Essa ferramenta é muito útil para realizarmos análises em sites de aplicativos nossos e até de empresas, e identificarmos possíveis pontos de melhoria nesses sites. Por exemplo:

– Quanto de banda é consumida em consultas;
– Quanto custa em MB cada objeto meu usado na página (imagem, dados, etc.);
– Compressão;
– Eficiência;
– E muito mais.

Para usar essa ferramenta é muito fácil, segue abaixo passos de instalação e uso. E no final um artigo com 12 passos do Technet Magazinhe de como melhorar suas aplicações Web.

– Instalação

Realize o download da ferramenta no link abaixo:

http://www.microsoft.com/en-us/download/details.aspx?id=21462

 

image

Em seguida, execute o Wizard de instalação, conforme as telas abaixo:

image

image

Depois de instalado, iremos configurar.

– Configuração

Abra o painel de configuração do aplicativo;

image

Selecione a conexão de rede que você estará usando para os testes, depois clique na seta verde para iniciar a captura do tráfego;

image

Abra seu navegador e realize uma consulta a um site, no caso iremos consultar o Microsoft Technet Wiki, e realize as navegações que você deseja;

image

Depois, vá no Visual Round Trip Analyzer e pare a captura e observe os resultados;

image

image

image

Estatisticas de pacotes trafegados, tipo de protocolos usados;

image

Trazendo até as pontuações (Score);

image

– Artigo 12 Passos Para Melhorar seu Aplicativo Web

http://msdn.microsoft.com/pt-br/magazine/dd188562.aspx

Bom é isso, um forte abraço e até a próxima!

Alan Carlos

ALM – Usando o Microsoft AppInsights – Análise de Performance

Olá Pessoal,

Participei do evento na Microsoft Visual Studio Summit e tive o prazer de ver a palestra do T-Shotter, que demonstrou a mais nova ferramenta da Microsoft, o AppInsights!

O que é o Microsoft Application Insights ou “AppInsights”?

É uma ferramenta de análise de aplicações Web e Móveis que tem como objetivo ajudar o desenvolvedor a monitorar suas aplicações, independente de onde estejam instaladas, como celulares, tablets, televisores, servidores, em qualquer parte do mundo. Com essa poderosa ferramenta, você poderá avaliar como seu aplicativo está se comportando nos tablets espalhados pelo mundo, quais as funcionalidades mais usadas, quais as funcionalidades menos usadas, quais os navegadores mais utilizados para acessarem sua aplicação, entre outros recursos.

Como funciona?

Dependendo das funcionalidades que você deseja, você deverá configurar de determinada forma, desde um simples monitoramento por ping até uma instrumentações no seu código-fonte para acompanhamento das funcionalidades mais usadas.

Quanto custa?

Por enquanto a versão é Preview, pode sofrer alterações significativas, mas é gratuita (por enquanto!)

Configurando Análise de Performance

Antes de começar, leia esse artigo ALM – Usando o Microsoft AppInsights – Configurando

Com o AppInsights é possível configurar uma análise de performance e acompanhar o desempenho de seu servidor e aplicação. Para isso, execute os pasos abaixo:

– Adicione sua aplicação:

image

image

 

– Realize o download do arquivo ApplicationInsights.config no site.

image

Depois, insira esse arquivo no diretório Web do IIS da sua aplicação .NET. Por exemplo: C:\Inetpub\Meu Site

image

Em seguida, realize o download e instale o agente em seu servidor.

image

Em seguida, instale o requisito Scripts e Ferramentas do IIS e .NET Framework 3.5.

Para o IIS 6.0, clique aqui.

Para o IIS 7.0 ou superior, instale a partir do adicionar/remover programas.

 

image

image

Nessa tela, você pode escolher para onde enviar os logs (AppInsights) e também para o Operation Manager!

image

image

image

Depois acesse sua Dashboard no Visual Studio Online e a configure.

image

image

image

Pronto! Aguarde a coleta dos dados que varia de 05 a 10 minutos e realize o acompanhamento de seu servidor e aplicação.

Espero que ajude!

Alan Carlos

ALM – System Center Global Service Monitor

Overview
 
Você precisa saber sobre os problemas que afetam os usuários de aplicativos o mais rápido possível, de preferência antes que os usuários observem e relatem o problema.
Com o crescimento do SaaS, as técnicas atuais são insuficientes para o monitoramento e identificação de fatores externos que podem impactar negativamente estas aplicações.
 
O System Center Global Service Monitor é um serviço de nuvem que resolve esse problema, ampliando os recursos de monitoração de aplicações em System Center  para além dos limites da rede própria da sua organização. Monitor de Serviços Globais utiliza pontos de presença do Windows Azure para ajudar a dar-lhe um verdadeiro reflexo da experiência de uma aplicação web com usuários finais.

Benefícios
 
System Center Global Service Monitor  ajuda a alcançar uma visão de 360 ​​graus do estado das suas aplicações web. Ele usa pontos de presença do Windows Azure em todo o mundo, gerando  relatórios sobre disponibilidade, desempenho e funcionamento de aplicações web por agendamento e execução de transações sintéticas contra a aplicação a partir do Windows Azure.
 
System Center Global Service Monitor  também ajuda a unificar ferramentas e processos, integração com o Microsoft Visual Studio e Team Foundation Server para habilitar novos cenários DevOps para alinhar operações e desenvolvimento. O System Center Global Service Monitor pode economizar tempo através da construção de transações sintéticas de testes web existentes do Microsoft Visual Studio e resolução de problemas de velocidade, oferecendo emitir relatórios baseados em IntelliTrace direto para o Team Foundation na fila de item de trabalho do servidor de um desenvolvedor .
 
System Center, Microsoft Team Foundation Server e Microsoft Visual Studio também permitem cenários de DevOps para a gestão de laboratório de teste, gestão integrada incidente, e diagnóstico de produção. Esses recursos ajudam a reduzir os tempos de ciclo na gestão de ambientes de teste e reduzir o MTTR ( tempo para reparar média) na resolução de incidentes de produção. Visite o Visual Studio Application Lifecycle Management local (ALM) para mais informações sobre esses recursos DevOps .

Como Comprar
 
Você pode se inscrever para uma conta de teste e usar o System Center Global Service Monitor de graça por até 90 dias. Após o período de teste gratuito de 90 dias, o System Center Global Service Monitor é disponível apenas para clientes com cobertura Microsoft Software Assurance ativa para suas licenças de gerenciamento de servidor System Center 2012 . Por favor, note que o serviço está disponível apenas em uma versão em Inglês .

Lingua: Inglês

Países Disponíveis: Algeria, Argentina, Australia, Austria, Azerbaijan, Bahrain, Belarus, Belgium, Brazil, Bulgaria, Canada, Chile, Colombia, Costa Rica, Croatia, Cyprus, Czech Republic, Denmark, Dominican Republic, Ecuador, Egypt, El Salvador, Estonia, Finland, France, Germany, Greece, Guatemala, Hungary, Iceland, Indonesia, India, Ireland, Israel, Italy, Japan, Jordan, Kazakhstan, Kenya, Kuwait, Latvia, Liechtenstein, Lithuania, Luxembourg, Macedonia (FYRO), Malaysia, Malta, Mexico, Montenegro, Morocco, Netherlands, New Zealand, Nigeria, Norway, Oman, Pakistan, Panama, Paraguay, Peru, Poland, Portugal, Puerto Rico, Qatar, Romania, Russia, Saudi Arabia, Singapore, Slovakia, Slovenia, Spain, Sri Lanka, Switzerland, Trinidad & Tobago, Tunisia, Turkey, United Arab Emirates, United Kingdom, United States, Uruguay, Venezuela.

Começe Agora

image

Referências

System Center Global Service Monitor
Microsoft Online Services

ALM–Série Ambientes–Internet Information Services

Olá Pessoal,

Estou criando um conjunto de apresentações e ministrando treinamentos sobre ambientes para ajudar equipes de desenvolvimento e testes de software a conhecerem mais o ambiente em que suas aplicações rodam e também identificar possíveis problemas neles através de análise de logs, configurações, entre outros.

Quem tiver interesse segue para visualização:

http://www.slideshare.net/alancarlos29/alm-srie-ambientes

Um abraço e até a próxima!

Alan Carlos