(34 revisões intermediárias por 4 usuários não estão sendo mostradas)
Linha 1: Linha 1:
= Introdução =
=Introdução=


* [[Descrever a finalidade do sistema, ou seja, para que serve.]]


A tarefa de efetuar testes em software foi considerada secundária por muito tempo. Era vista como um castigo para o programador, um trabalho tedioso e cansativo, uma tarefa onde não se deveria gastar muito tempo e investimentos. O tema esteve em segundo plano e até alguns anos atrás não se encontrava muitos documentos sobre o assunto. Agora mudou um pouco, com a globalização e o acirramento da competição entre as empresas de software esta havendo uma grande preocupação em aprimorar e aperfeiçoar os processos de testes em desenvolvimento de software com metas a reduzir custos com manutenção e em produzir um produto de melhor qualidade.


Mas a necessidade de garantir a qualidade dos produtos eletrônicos deflagrou a mais recente onda de contratações no setor de terceirização, que movimenta US$ 16 bilhões por ano e já emprega cerca de 500 mil pessoas na capital tecnológica indiana.
*Devido à intensa aplicação de softwares nas diversas áreas da tecnologia a Engenharia de Software vem sendo altamente desenvolvida e as principais ferramentas de auxílio no desenvolvimento desses projetos são as Ferramentas CASE.
Por muito tempo, empresas grandes como a Microsoft realizavam seus testes por conta própria. Mas os analistas dizem que especialistas independentes vêm sendo cada vez mais procurados para garantir a neutralidade do processo e manter os custos sob controle. E hoje em dia existem cursos para pessoas q queiram saber como fazer testes.


É de conhecimento geral entre os analistas de software que nunca se elimina o último bug de um programa, espera-se eliminar todos, um por um, mas nunca consegue se livrar deles.
*Uma das Ferramentas CASE mais usadas são as de teste, que como o próprio nome já indica são utilizadas na realização de testes em softwares que estão sendo trabalhados.


*'''Vantagens do uso de ferramentas CASE'''
*Os testes em softwares podem ser realizados de maneira manual (o programador reavalia o código manualmente e verifica erros), ou de maneira automatizada (o programa reavalia o código procurando por possíveis erros).
**Qualidade no produto final;
**Produtividade;
**Agilizar o tempo para tomada de decisão;
**Menor quantidade de códigos de programação;
**Melhoria e redução de custos na manutenção;


= CASE Teste: Explicação =


*''Teste e depuração são conceitos diferentes:''
*As Ferramentas CASE de Teste na realidade não são softwares que realizão testes de código de programas, mas sim bibliotecas com rotinas de testes que são implementadas em softwares de desenvolvimento e a medida em que uma rotina do programa é terminada é possivel executar um teste dessa rotina juntamente com a "compilação" do programa.
**Teste: mostrar que o software tem erros.
[[Arquivo:imagem1.jpg]]
**Depuração: encontrar a causa do erro detectado no teste, e projetar e implementar as modificações no programa para correção do erro.


*Estes testes realizados no programa visam melhorar o programa como um todo e varias outras características como:
**Uma melhor qualidade final do programa;
**Melhor classificação da qualidade do programa;
**Melhor produtividade;
**Aumento do poder de tomada de decisão do programa;
**Diminuição do tamanho fisico do programa;
**Redução de custos;


'''Teste Estrutural (Caixa Branca):''' são testados os caminhos lógicos através do software, fornecendo casos de teste que põem a prova conjuntos específicos de condições e/ou garante que todos os caminhos independentes dentro de um módulo tenham sido exercitados pelo menos uma vez.
= Tipos de Testes =
*Executa todas as decisões lógicas para valores falsos ou verdadeiros.
*Executa todos os laços em suas fronteiras.
*Exercita as estruturas de dados internas.


'''Teste funcional (caixa preta):''' são usados para demonstrar que as funções dos softwares são operacionais, que a entrada é adequadamente aceita e a saída é corretamente produzida; que a integridade das informações externas é mantida. Atividade complementar aos testes de caixa  branca, com a finalidade de descobrir tipos/classes de erros. Procura descobrir erro em:
*'''Teste Estrutural :'''  
Funções incorretas ou ausentes;
**A técnica de teste Estrutural, de “Caixa-Branca”, é recomendada para as fases de Teste da Unidade e Teste da Integração e é realizada pelos desenvolvedores do software, que conhecem bem o código-fonte produzido.
*Erros de interface;
*Erros nas estruturas de dados;
*Acesso a bancos de dados externos;
*Erros de desempenho;
*Erro de inicialização e término


*'''Teste Funcional:'''
**O software a ser testado é abordado como uma “caixa-preta”, ou seja, as linhas de código não são analisadas. São fornecidos dados de entrada e então o teste é executado e a resposta obtida é comparada ao resultado esperado.


ref:
*'''Teste de Unidade:'''
**Identifica erros de lógica e de implementação em cada módulo do software, separadamente.


http://www.macoratti.net/tst_sw1.htm
*'''Teste de Integração:'''
**Identifica erros associados às interfaces entre os módulos do software.


http://informatica.terra.com.br/interna/0,,OI501471-EI553,00.html
*'''Teste de Sistema:'''
**Verifica se as funções estão de acordo com a especificação e se todos os elementos do sistema combinam-se adequadamente.


*'''Teste de Aceitação:'''
**O teste é conduzido por usuários finais do sistema. Os testes são realizados, geralmente, por um grupo restrito de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado.


* [[Destacar os nomes dos softwares disponíveis no mercado]]
= Softwares de teste =
* [[Escolher um para detalhar]]
* [[Explicar o motivo da escolha]]
<br>


= Funcionalidades =
*Como dito não existe um software que realiza os testes em um código de programa mas sim uma biblioteca de funções de testes.
*As mais usadas são as seguintes:
**'''JUnit (Java)''';
**'''NUnit (C#)''';
**'''CUnit (C/C++)''';
*Todas as apresentadas são open-source, ou seja, gratuitas.
*Além disso, o JUnit é '''GPL''', ou seja, possui '''Licença Pública Geral'''.
*Entretanto, alto custo de '''Planejamento de casos de testes'''.
*E para que sejam usadas essas bibliotecas são nescessários programas de criação de código, como:
**'''Eclipse (Java)''';
**'''Visual Studio (C#)''';
**'''PIC C Compiler (C/C++)''';


Descrever as funções do software, ou seja, detalhes do que ele faz.
O Software escolhido pelo grupo é o '''JUnit''' que atua na linguagem '''JAVA''', e sendo utilizado no programa de edição chamado '''Eclipse'''. Este foi escolhido por ser a mais divulgada biblioteca e portanto com as rotinas de testes mais utilizadas em testes em códigos-fontes.
 
Exemplo:
<br>
* Funcionalidades do Word:
** Edição de documentos
** Formatação de parágrafos
** Contagem de palavras
** Verificação gramatical
** Numeração de páginas
** Divisão em colunas
** Exportação para PDF
** Procura e alteração de palavras
** Etc
<br>


= Benefícios =
= Benefícios =


* Para quem usa, quais as vantagens que terá em usar
* Diminuição de custos;
* O que a pessoa/profissional pode ganhar usando esta ferramenta
* Melhor: serviço, programa, manutenção;
<br>
* Maior confiabilidade e segurança;
* Maior qualidade;
* Software mais preparado;
* Diminuição dos erros humanos;


= Interface gráfica =
= Interface gráfica =


* Inserir uma imagem da interface gráfica do software.
*'''Eclipse:'''
<br>


= Custos =
[[Arquivo:eclipse.jpg]]


* Se software pago: tentar descobrir  valor de aquisição
* Se free: em que condições é fornecido [licença GPL, BSD, ...]
<br>


= Fornecedor =
*'''Resultado do teste realizado pelo JUnit:'''


* Que empresa desenvolveu o software?
[[Arquivo:JUnit.png]]
<br>


= Sistema Operacional =
= Sistema Operacional =


* Roda em quais sistemas operacionais?
*JUnit é acessível em qualquer Sistema Operacional desde que este possua acesso a Java;
<br>
 
 
*Os outros softwares também não dependem do Sistema Operacional, desde que no Sistema Operacional haja plataforma para programação em tal linguagem.
 
=Referências=
 
    http://www.junit.org/
    http://pt.wikipedia.org/wiki/JUnit
    http://junit.wikidot.com/
    http://javafree.uol.com.br/dependencias/tutoriais/testes_junit.pdf
    http://www.eclipse.org/
    http://pt.wikipedia.org/wiki/Teste_de_software
    http://www.macoratti.net/tst_sw1.htm
    http://imasters.com.br/artigo/9572/des_de_software/teste_de_software/
    http://en.wikipedia.org/wiki/Code_coverage
    http://www.wthreex.com/rup/process/modguide/md_tstcs.htm

Edição atual tal como às 02h15min de 30 de março de 2011

Introdução

  • Devido à intensa aplicação de softwares nas diversas áreas da tecnologia a Engenharia de Software vem sendo altamente desenvolvida e as principais ferramentas de auxílio no desenvolvimento desses projetos são as Ferramentas CASE.
  • Uma das Ferramentas CASE mais usadas são as de teste, que como o próprio nome já indica são utilizadas na realização de testes em softwares que estão sendo trabalhados.
  • Os testes em softwares podem ser realizados de maneira manual (o programador reavalia o código manualmente e verifica erros), ou de maneira automatizada (o programa reavalia o código procurando por possíveis erros).

CASE Teste: Explicação

  • As Ferramentas CASE de Teste na realidade não são softwares que realizão testes de código de programas, mas sim bibliotecas com rotinas de testes que são implementadas em softwares de desenvolvimento e a medida em que uma rotina do programa é terminada é possivel executar um teste dessa rotina juntamente com a "compilação" do programa.

  • Estes testes realizados no programa visam melhorar o programa como um todo e varias outras características como:
    • Uma melhor qualidade final do programa;
    • Melhor classificação da qualidade do programa;
    • Melhor produtividade;
    • Aumento do poder de tomada de decisão do programa;
    • Diminuição do tamanho fisico do programa;
    • Redução de custos;

Tipos de Testes

  • Teste Estrutural :
    • A técnica de teste Estrutural, de “Caixa-Branca”, é recomendada para as fases de Teste da Unidade e Teste da Integração e é realizada pelos desenvolvedores do software, que conhecem bem o código-fonte produzido.
  • Teste Funcional:
    • O software a ser testado é abordado como uma “caixa-preta”, ou seja, as linhas de código não são analisadas. São fornecidos dados de entrada e então o teste é executado e a resposta obtida é comparada ao resultado esperado.
  • Teste de Unidade:
    • Identifica erros de lógica e de implementação em cada módulo do software, separadamente.
  • Teste de Integração:
    • Identifica erros associados às interfaces entre os módulos do software.
  • Teste de Sistema:
    • Verifica se as funções estão de acordo com a especificação e se todos os elementos do sistema combinam-se adequadamente.
  • Teste de Aceitação:
    • O teste é conduzido por usuários finais do sistema. Os testes são realizados, geralmente, por um grupo restrito de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado.

Softwares de teste

  • Como dito não existe um software que realiza os testes em um código de programa mas sim uma biblioteca de funções de testes.
  • As mais usadas são as seguintes:
    • JUnit (Java);
    • NUnit (C#);
    • CUnit (C/C++);
  • Todas as apresentadas são open-source, ou seja, gratuitas.
  • Além disso, o JUnit é GPL, ou seja, possui Licença Pública Geral.
  • Entretanto, alto custo de Planejamento de casos de testes.
  • E para que sejam usadas essas bibliotecas são nescessários programas de criação de código, como:
    • Eclipse (Java);
    • Visual Studio (C#);
    • PIC C Compiler (C/C++);

O Software escolhido pelo grupo é o JUnit que atua na linguagem JAVA, e sendo utilizado no programa de edição chamado Eclipse. Este foi escolhido por ser a mais divulgada biblioteca e portanto com as rotinas de testes mais utilizadas em testes em códigos-fontes.

Benefícios

  • Diminuição de custos;
  • Melhor: serviço, programa, manutenção;
  • Maior confiabilidade e segurança;
  • Maior qualidade;
  • Software mais preparado;
  • Diminuição dos erros humanos;

Interface gráfica

  • Eclipse:


  • Resultado do teste realizado pelo JUnit:

Sistema Operacional

  • JUnit é acessível em qualquer Sistema Operacional desde que este possua acesso a Java;


  • Os outros softwares também não dependem do Sistema Operacional, desde que no Sistema Operacional haja plataforma para programação em tal linguagem.

Referências

   http://www.junit.org/
   http://pt.wikipedia.org/wiki/JUnit
   http://junit.wikidot.com/
   http://javafree.uol.com.br/dependencias/tutoriais/testes_junit.pdf
   http://www.eclipse.org/
   http://pt.wikipedia.org/wiki/Teste_de_software
   http://www.macoratti.net/tst_sw1.htm
   http://imasters.com.br/artigo/9572/des_de_software/teste_de_software/
   http://en.wikipedia.org/wiki/Code_coverage
   http://www.wthreex.com/rup/process/modguide/md_tstcs.htm