artigo .net Magazine 44 - nUnit e nCover - Teste unitário e de cobertura para .NET

Artigo da Revista .NET Magazine - Edição 44.

Clique aqui paraler todos os artigos desta edição

Projeto/Análise

nUnit e nCover

Teste unitário e de cobertura para .NET

 

Este artigo discute

Este artigo usa as seguintes tecnologias

·Testes unitários;

·Testes de cobertura;

·NUnit;

·NCover;

·NCoverExplorer

Visual Studio 2005, C#.

 

Uma atual preocupação no processo desenvolvimento de software é a qualidade do produto final e a sua estabilidade no ambiente de produção. Falhas podem ocasionar inúmeros problemas, desde prejuízos financeiros, comprometimento de cronogramas de projetos, até perda de vidas humanas, dependendo da criticidade da aplicação. Em sistemas embarcados, como em equipamentos de suporte à vida, o risco envolvido é muito grande e uma falha fatalmente poderá resultar em mortes.

Vários são os casos relatados de falhas de software que resultaram em perdas de vidas humanas. Um deles foi o problema em um equipamento de radioterapia chamado Therac-25. O equipamento era totalmente controlado por software e realizava aplicações de diferentes faixas de radiação nos pacientes.

Pelo menos cinco mortes aconteceram devido aos acidentes provocados por uma falha no software do equipamento. Problemas desse tipo denotam a importância da utilização de um processo de desenvolvimento de software formal e, principalmente a utilização de alguma abordagem baseada em testes para aferição do sistema desenvolvido.

O custo gerado pela manutenção, em um projeto de software, é um dos mais altos em todo o processo de desenvolvimento, seja ele custo financeiro ou custo de re-trabalho. Ao identificar uma falha no início do processo, esse custo é minimizado e otimizado. Modelos que definem padrões de maturidade para o desenvolvimento de software também apresentam a abordagem de testes, sendo o caso do CMMI (Capability Maturity Model Integration) e do MPS.BR (Melhoria de Processos do Software Brasileiro) onde, para ambos, a utilização de testes é um item essencial afim de garantir a qualidade dos sistemas.

Nesse sentido, o processo de desenvolvimento deve considerar etapas de verificação da qualidade dos produtos de software, antecipando-se às falhas de forma a minimizar o número de defeitos nos sistemas. A prática de teste manual de aplicações não garante a execução de todas as funcionalidades de um sistema.

Sabe-se também que é impossível garantir que todos os defeitos de um sistema sejam eliminados, uma vez que os testes necessários para essa avaliação são normalmente em quantidade extremamente elevada, inviabilizando a sua aplicação de forma manual. Com isso, torna-se imprescindível a utilização de um ambiente de testes automatizados.

Existem diversos tipos de testes de software, dois deles são os testes de unidade e o de cobertura, apresentados neste artigo. O teste de unidade é baseado na estrutura lógica do código e é responsável por testar a unidade de codificação da aplicação. Em um sistema Orientado a Objetos essa unidade pode ser representada pelos métodos das classes, ou qualquer outro nível de agrupamento, da complexidade do que deve ser testado. " [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados