Aplica-se ao:
Microsoft Visual Studio® 2005 Team System
Resumo: Este artigo examina as ferramentas de teste de software integradas ao Visual Studio 2005 Team System. (9 páginas impressas)
Observação: Este documento foi desenvolvido antes do lançamento do produto para fabricação e, como tal, você talvez encontre inconsistências entre os detalhes incluídos aqui e aqueles encontrados no produto que é vendido. As informações se baseiam no produto no momento em que este documento foi criado e devem ser usadas apenas com finalidades de planejamento. As informações estão sujeitas a alterações a qualquer momento e sem aviso prévio. A Microsoft pode ter direitos de patentes, aplicações de patentes, marcas comerciais, direitos autorais ou quaisquer outros direitos de propriedade intelectual que abordem o assunto deste documento. Salvo expressamente disposto em qualquer contrato de licença escrito da Microsoft, o fornecimento deste documento não confere a você qualquer licença em relação a essas patentes, marcas comerciais, direitos autorais ou outras propriedades intelectuais.
Conteúdo
| Introdução | |
| Desafios da garantia de qualidade | |
| Nossa solução | |
| Possibilidades de extensibilidade | |
| Conclusão |
O Visual Studio 2005 Team Test Edition apresenta um conjunto de novas ferramentas de teste. Essas ferramentas têm sido usadas internamente na Microsoft e estão sendo integradas ao Visual Studio 2005 Team Test Edition pela primeira vez pela Microsoft.
As novas ferramentas estão bem integradas ao Visual Studio, o que significa que elas funcionam não apenas em sua própria estrutura de testes, mas também dentro de uma estrutura maior que oferece uma solução completa de ciclo de vida de desenvolvimento de software.
Antes que um aplicativo ou página da Web possa atender seus objetivos de qualidade e desempenho, deve passar por testes rigorosos. Historicamente, o Microsoft Visual Studio tem sido um produto que se concentra no desenvolvedor de software, ao mesmo tempo em que fornece suporte leve para os aspectos de testes do desenvolvimento. Sem dúvida, os engenheiros de teste do grupo de Garantia de Qualidade perceberam que as versões passadas do Microsoft Visual Studio ofereciam pouco pelos seus esforços para garantir o lançamento de software de qualidade.
Como desenvolvedor ou testador, você usa o Visual Studio para codificar seus próprios testes. Entretanto, para criar determinados testes especializados ou gerenciar testes, em geral você tinha que usar outros produtos da Microsoft, comprar ferramentas de terceiros ou criar uma ferramenta desde o início. Seu trabalho tornava-se mais complexo ainda quando precisava modelar e publicar dados, organizar documentos de suporte, controlar bugs e criar conjuntos de teste, como BVT (testes de verificação de criação). O conjunto de ferramentas resultante provavelmente produzia resultados que não podiam ser transferidos entre as diversas ferramentas e mecanismos de armazenamento.
Em um caso, um grupo de TI de uma companhia do setor de finanças acumulou várias ferramentas de teste diferentes que foram usadas nas fases do ciclo de vida de desenvolvimento. Cada ferramenta era um executável separado que vinha de um fornecedor distinto. Como conseqüência, havia pouca interação entre as ferramentas, e a interação entre os usuários das ferramentas foi retardada. Por exemplo, a entrada dos requisitos de um projeto em uma ferramenta e a sua cópia para outra não estabelecia uma ligação entre os requisitos dos bancos de dados das duas ferramentas. Como nenhum link foi estabelecido, a alteração de um requisito na primeira ferramenta não atualizava os dados acessados por outras ferramentas usadas pelas equipes de desenvolvimento e testes.
Com o Visual Studio 2005 Team Test Edition, aqueles que testam software querem ver seu conjunto de ferramentas se aproximando do nível de valor já desfrutado pelas ferramentas dos desenvolvedores. O principal exemplo é a capacidade de usar o IDE (Ambiente de Desenvolvimento Integrado) do Visual Studio para criar e executar testes.
Vários tipos de teste de núcleo – incluindo unidade, Web, carga e testes manuais – bem como a medição da cobertura de código, agora estão integrados ao Visual Studio. (Na verdade, o Visual Studio 2005 Team Test Edition apresenta um novo tipo de projeto – o projeto "teste" – que é exibido no Solution Explorer juntamente com os tipos de projetos tradicionais).
As novas ferramentas de teste também estão integradas a outras partes do Visual Studio 2005 Team System. Isso significa que os testadores de software também poderão publicar seus resultados em um banco de dados, gerar relatórios históricos e de tendências, comparar diferentes tipos de dados, ver quantos e quais bugs foram encontrados como resultado dos testes e identificar quais bugs não estão ligados a um teste que poderia ajudar a reproduzi-los.
Tipos de testes com suporte
Estes são os tipos de testes com suporte no Visual Studio 2005 Team Test Edition:
| • | Os testes de unidade consistem em código que exerce as funções e os métodos de um projeto. Os testes de unidade são usados para testar o código-fonte existente, e são um elemento essencial para o desenvolvimento orientado por teste. O exemplo a seguir mostra um teste de unidade imediatamente após sua geração. Esse caso de teste simples visa um único método do código que você está testando. Agora você pode editar esse código teste, opcionalmente chamando métodos da biblioteca Unit Test Framework, para personalizar seu comportamento.
<TestMethod()> Public Sub OrderStatusCodesTest()
Dim target As AdventureWorks.AdventureValues = New AdventureWorks.AdventureValues
' TODO: Assign to an appropriate value for the property
Dim val As System.Data.SqlClient.SqlDataReader
Assert.AreEqual(val, target.OrderStatusCodes)
Assert.Inconclusive("Look at this code and make sure it does what you want")
End Sub
|
| • | Os testes da Web, que consistem em uma série de URLs HTTP que podem ser criadas ou gravadas de uma sessão de navegador. |
| • | Os testes genéricos, que lhe permitem trabalhar com os testes e as ferramentas automatizadas existentes de sua equipe. |
| • | Os testes de carga simulam vários usuários executando testes automatizados. |
| • | Os testes manuais, para passar pelas tarefas que você não automatizou. |
Além disso, você pode executar qualquer teste automatizado (todos os testes exceto os testes manuais), bem como grupos de testes de uma linha de comando.
Integração de ferramenta no Visual Studio
Os novos recursos do Visual Studio 2005 Team Test Edition são realizados através dos seguintes elementos da interface do usuário:
Janela Test View: para criar testes
A função da janela Test View é permitir que você navegue para editar (criar) seus testes. Por exemplo, para codificar testes de unidade que exercem o código do projeto que você quer testar (também conhecido como o código em teste ou CUT), você usa o IDE do Visual Studio. Após criar um teste de unidade, ele aparecerá na janela Test View. Se você abri-lo em seguida – clicando duas vezes ou clicando com o botão direito do mouse e selecionando Edit – o teste será aberto no IDE do Visual Studio para continuar a criação. Da mesma forma, se você abrir um teste manual estará abrindo o editor apropriado dos testes manuais, e se abrir um teste de carga ou da Web estará abrindo também um editor personalizado para aqueles tipos de testes também.
Figura 1. Janela Test View

Parte da experiência de criação é verificar se aquilo que você codificou tem o desempenho esperado. Embora não seja a janela principal para executar os testes (veja a seção seguinte, janela Test Explorer), a janela Test View facilita a execução de seus testes e, em seguida, realiza criação adicional e ajustes com base nos resultados.
Janela Test Explorer: para gerenciamento e execução de testes
A janela Test Explorer permite que você gerencie seus testes individuais classificando-os em "categorias". Por exemplo, imagine que você tenha 1.000 testes, mas considera que a execução de cinqüenta deles seja crucial sempre que você tenha uma nova criação. Você cria uma nova categoria chamada BVT (teste de verificação de criação) e coloca esses cinqüenta testes naquela categoria. Em seguida, você pode executar todos aqueles cinqüenta testes ao mesmo tempo, executando a categoria BVT.
Figura 2. Janela Test Explorer

A janela Test Explorer também permite filtrar a exibição dos testes por proprietário, tipo de teste e outros critérios, para que você possa encontrar mais facilmente os testes que deseja executar, gerenciar ou atribuir como itens de trabalho.
Após ter montado as categorias na janela Test Explorer, você pode usar o utilitário de teste de linha de comando para executar todos os testes de uma categoria. (Também é possível usá-la para executar todos os testes de um assembly).
Caixa de diálogo Run Configuration: para configuração da execução do teste
Você utiliza a caixa de diálogo Run Configuration para definir exatamente o modo como os testes serão executados. Ela contém páginas distintas para cada tipo de teste. Isso significa que, ao executar testes de tipos diferentes (unidade, Web e outros) ao mesmo tempo, você pode clicar em uma guia para exibir a página de configurações daquele tipo de teste. Isso permite aplicar configurações distintas a todos os diferentes testes de uma execução de testes antes de iniciar a execução propriamente dita.
Figura 3. Caixa de diálogo Run Configuration

Essas definições de configuração de execução incluem o seguinte:
| • | se os testes devem ser executados localmente ou em um estado implantado; 'implantado' significa que ele será executado em vários computadores remotos. |
| • | se a cobertura de código deve ser ativada ou desativada para a execução do teste; com esta opção, por exemplo, você pode selecionar binários a serem incluídos nos cálculos de cobertura de código. |
| • | as configurações aplicáveis aos diferentes tipos de testes que foram incluídos em uma execução de testes. |
Depois de ter organizado os testes em uma categoria, você pode executá-los das janelas Test Explorer ou Test View. É possível executar testes individuais das mesmas janelas. O início de uma execução de testes exibe a caixa de diálogo Run Configuration, que permite selecionar as configurações que afetam o modo como os testes serão executados. Quando você clica em OK na caixa de diálogo Run Configuration, as execuções do teste e seus resultados são exibidos na janela Test Results.
É possível salvar as configurações de execução para serem usadas mais tarde, quando você executar os testes ou categorias de testes, seja por meio do IDE do Visual Studio ou do utilitário de testes de linha de comando.
Janela Test Results: para exibir o status e os resultados
Esta janela exibe o status atual de cada teste da execução de testes, a saber, Pending (ainda não iniciado), In Progress, Inconclusive, Passed e Failed. Quando um teste de carga for executado, a janela exibirá o status Completed.
Por exemplo, os testes manuais não são implantados em um servidor remoto, mas são executados localmente. Ao iniciar uma execução de teste que inclui um teste manual, ele é exibido na janela Test Results com o status Pending. Ele conserva esse status até que a pessoa que executará o teste manual clique no teste na janela Test Results, que abre uma lista de etapas que devem ser executadas pela pessoa. Em seguida, o testador clica em um botão para indicar se o teste foi aprovado ou recusado.
Figura 4. Janela Test Results

Para os testes executados automaticamente (todos os tipos exceto o manual), a janela Test Results exibe o progresso do teste à medida que ele passa de Pending para um resultado final. Um resultado final pode ter dois estados: Passed ou Failed. Diversos avisos podem ser associados a esses dois estados. Quando tiver os resultados do teste, você poderá clicar duas vezes em uma seta que mostra os resultados de um teste para abrir uma "exibição dos detalhes" dos resultados do teste. Essa janela exibe um resumo geral, avisos, os métodos que foram chamados durante a execução do teste e outros fatores, como incapacidade de instrumentar um binário, implantação do teste em um servidor remoto e assim por diante.
Janela Code Coverage: para exibir a cobertura atingida nas execuções de teste
Se você habilitar a cobertura de código na caixa de diálogo Run Configuration de uma execução de teste, a janela Code Coverage mostrará os módulos do código-fonte que foram exercidos durante aquela execução de teste. Ela exibe os nomes dos arquivos, namespaces, classes e métodos do código-fonte, e a porcentagem de cobertura atingida durante aquela execução de teste. (Por exemplo, 80% de determinado método pode ter sido exercido, porque apenas a instrução IF foi executada, não a instrução ELSE).
Figura 5. Janela Code Coverage, mostrando os resultados por arquivo

Além disso, o código que não é coberto aparece com cor diferente daquela do código que é coberto. Clique duas vezes no código não convertido para abrir o editor de código e rolar até o código que foi omitido. (Um clique em um botão da janela Code Coverage exibe uma legenda para a codificação de cores do seu arquivo de origem).
Figura 6. Janela Code Coverage, mostrando o código coberto e não coberto, por cor

O Visual Studio 2005 Team Test Edition incluirá uma infra-estrutura que permite dois níveis de extensibilidade. O primeiro foi criado para testadores individuais e o segundo para aqueles que precisam estender o Visual Studio.
| • | Testes genéricos: Você pode usar os testes genéricos para executar qualquer linha de comando como teste. Esse mecanismo permite que você continue executando os testes que já usou antes. Os testes genéricos integram-se bem ao Visual Studio, pois você pode selecioná-los, categorizá-los e executá-los da janela Test Explorer, e seus resultados aparecerão na janela Test Results. Os testes genéricos também se integram bem a outras ferramentas do Team System, pois você pode criar bugs a partir de falhas, arquivar resultados de teste e assim por diante. |
| • | Suplementos de tipo de teste: os desenvolvedores do VSIP podem estender o sistema de testes com os tipos de testes personalizados que se ligam ao Visual Studio Team System. Isso dá aos autores de tipo de teste controle completo do editor que os usuários do Visual Studio usariam para fazer alterações nos testes personalizados, do modo como os testes são executados e como seus resultados são visualizados. Os novos tipos de teste seriam totalmente integrados às janelas Test View, Test Explorer e Test Results existentes. Além disso, os tipos de teste personalizados podem se integrar à coleção de cobertura de código, a testes de carga e aos resultados do teste de persistência e warehousing. |
Para obter mais informações sobre como os indivíduos e parceiros podem contribuir para os recursos do Visual Studio 2005, consulte Visual Studio 2005 Team System: estendendo o conjunto.
Agora, dentro do Visual Studio, os testes são tratados como atividade de primeira camada que reduz os riscos inerentes à entrega de aplicativos da Web e desktop complexos, maximiza os retornos reduzindo os custos de suporte e está integrado ao ciclo de vida de desenvolvimento de software geral. O Visual Studio 2005 Team Test Edition fornece um conjunto integrado de ferramentas em todo o ciclo de vida de desenvolvimento do produto.
Por exemplo, com o Visual Studio 2005 Team Test Edition, as ferramentas de teste de software agora estão integradas ao IDE do Visual Studio juntamente com as ferramentas de criação de software. Mas esses são apenas dois aspectos do ciclo de vida de desenvolvimento de software. Também integradas ao Visual Studio 2005 Team Test Edition estão as ferramentas para criar código robusto e responsivo por meio da análise estática e dinâmica, e as ferramentas utilizadas em todas as fases do ciclo de vida de desenvolvimento de software, como rastreamento de item de trabalho, controle de código-fonte em escala empresarial, gerenciamento de cronograma e gerenciamento de projeto.
Para obter mais informações sobre os outros membros do Visual Studio Team System 2005, consulte: