SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Desenvolvimento em .Net




         Testes
Objectivos
    identificar diferentes tipos de testes
●


    descrever conceito de teste unitário
●


    perceber vantagens de utilização de testes
●

    unitários
    conhecer estrutura de testes (test-fixtures ou
●

    test-suites)
    conhecer ferramentas disponiveis para .net e
●

    progress
Objectivos
    saber criar testes em .net
●


    saber criar testes em progress
●
Tipos de testes
    Teste de Caixa Branca (qualidade do código)
●


    Teste de Caixa Preta (entradas e saídas)
●


    Teste de Interface (funcional e usabilidade)
●


    Teste de Integração (inter-componentes)
●


    Teste de Sistema (inter-sistemas)
●
A Abordagem Clássica
    A forma mais tradicional de teste consiste em
●

    adoptar um revisor (par ou especialista em
    teste) após cada atividade => Auditoria
                        Nono nonono nono
                        No nonono nono no
                         No nono nono no
                          Nono nono no
                        Nono nonono nono




                       Artefato
     Desenvolvedor                           Revisor

                         Nono nonono nono
                         No nonono nono no
                          No nono nono no
                           Nono nono no
                         Nono nonono nono




                       Log Erros
A Abordagem Clássica
    O Revisor normalmente é alguém com maior
●

    experiência e conhecimento do produto, capaz
    de identificar erros mais complexos
    O Revisor é, normalmente, mais caro para a
●

    empresa
    Desenvolvedores menos experientes geram
●

    mais erros
    Mais erros exigem mais horas de revisão e
●

    setup (além do custo do retrabalho)
    Desenvolvedores Inexperientes => $$$$$$$$$
●
Nova perspectiva
    Testes Unitários
●


        servem para validar um pedaço de código
    –
        (tipicamente um modulo caixa preta).
        devem ser possiveis de correr automaticamente
    –

        devem ser executados muito rapidamente
    –

             (centenas ou milhares de testes em poucos segundos)
         ●



        são sempre preparados pelo programador.
    –

        garantem que um bocado de codigo criado é válido.
    –
                       Exemplo: teste que verifica
                       se a execução de um
                       procedimento que soma dois
                       números funciona
Comparação
    Testes funcionais / de aceitação / integação /
●

    homologação
        preparados por alguém fora da equipa de
    –
        desenvolvimento.
        garantem que a execução do código produzido
    –
        para resolver a tarefa faz sentido, ou seja traduz
        completamente para software o requisito que foi
        definido pelo cliente.
                   Exemplo: na aplicação é
                   necessário existir alguma
                   função que some dois
                   números?
Quando é a fase de testes?
    Durante o desenvolvimento e não após o
●

    desenvolvimento!
        algumas metodologias advogam até a criação dos
    –
        testes antes do desenvolvimento (Test-Driven
        Development)
Porquê Testar durante o
             Desenvolvimento?
    reduz o tempo que se irá gastar com
●

    ferramentas de debug
    esforço de correcção de um defeito cresce
●

    exponencialmente ao longo do tempo
    cria confiança
●


        sabemos que estamos a construir pedaços de
    –
        código em que podemos confiar
Desculpas habituais para não criar
             testes
    Demora muito tempo
●


        é evidente que fazer um teste, ou seja ter mais uma
    –
        tarefa, vai gastar mais tempo do que só fizesse o
        programa
        no entanto se essa tarefa for sendo feita durante o
    –
        periodo de desenvolvimento a produtividade global
        será superior
Desculpas habituais para não criar
             testes
    Não é trabalho do programador criar testes, ou,
●


    o programador é pago para programar e não
●

    para escrever testes
        concordamos que:
    –

              o programador deve criar código
         ●


             mas código que funcione
         ●


             se não o testou como sabe que funciona?
         ●



        será que é mais rentável passar n horas à caça de
    –
        bugs do que n horas a criar os testes que os
        evitem?
Desculpas habituais para não criar
             testes
    Não posso testar porque ainda não tenho os
●

    requisitos todos
        então também não pode criar o código
    –
        correspondente a esse pedido...
Testes Unitários
    formalizam os testes
●


    numa linguagem que o programador domina
●


        porque são feitos na mesma linguagem de
    –
        programação que o programa a testar
    e auto documentam o código
●


        mostram programaticamente exemplos concretos
    –
        da utilização dos módulos a testar
Testes Unitários com .Net
    http://www.nunit.org/
●


        vitorsilvadownloadsprogramasNUnit-2.2.0.msi
    –

    http://www.testdriven.net/
●


        vitorsilvadownloadsprogramasTestDriven.NET-1.0.9
    –
Testes Unitários com .Net
    criar nova solução
●


    criar projecto do tipo class library chamado
●

    testes unitarios
    acrescentar classe chamada Helper
●
Testes Unitários com .Net
    criar projecto do tipo class library chamado
●

    testeprojecto
    adicionar referencia a nunit.framework.dll
●


    adicionar referencia ao projecto testesunitarios
●
Testes Unitários com .Net
    acrescentar nova classe
●
Testes Unitários com .Net
    correr esse teste
●
Testes Unitários com .Net
    erro na inicialização da variável max
●


        vamos mudar para max as integer = 0
    –
Testes Unitários com .Net
    voltar a correr teste
●
Testes Unitários com .Net
    vamos acrescentar mais uma condição que
●

    sabemos que é verdadeira e testar essa
    condição
Testes Unitários com .Net
    depois de olhar atentamente para o código...
●
Revisão – Testes Unitários
    formalizam os testes
●


    numa linguagem que o
●

    programador domina
        porque são feitos na mesma
    –
        linguagem de programação que
        o programa a testar
    e auto documentam o código
●


        mostram programaticamente
    –
        exemplos concretos da
        utilização dos módulos a testar
Testes Unitários com .Net
    já agora experimentem inicializar o array com
●

    -1, -2 e -3 e vejam se continua a funcionar...
Testes Unitários em Progress
    ProUnit
●


        vitorsilvadownloadslibsprounit
    –

    Punit
●


        vitorsilvadownloadslibspunit
    –
Testes Unitários em Progress
    desenvolver o mesmo teste com uma das
●

    frameworks indicada
Objectivos
    identificar diferentes tipos de testes
●


    descrever conceito de teste unitário
●


    perceber vantagens de utilização de testes
●

    unitários
    conhecer estrutura de testes (test-fixtures ou
●

    test-suites)
    conhecer ferramentas disponiveis para .net e
●

    progress
Objectivos
    saber criar testes em .net
●


    saber criar testes em progress
●

Más contenido relacionado

La actualidad más candente

Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoraçãoguest23778e
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebRodrigo Veiga
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/IntegradosGiovanni Bassi
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraTaís Dall'Oca
 
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva minastestingconference
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliverySamanta Cicilia
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosDionatan default
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumIsrael Santiago
 
Testando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumTestando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumVictor Serta
 
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesQA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesThiago Boschese
 

La actualidad más candente (20)

Teste de software
Teste de softwareTeste de software
Teste de software
 
Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
 
TDD com Python
TDD com PythonTDD com Python
TDD com Python
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
Desenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por TestesDesenvolvimento Guiado Por Testes
Desenvolvimento Guiado Por Testes
 
Automação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas WebAutomação de Testes de Aceitação em Sistemas Web
Automação de Testes de Aceitação em Sistemas Web
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
Testes Unitários/Integrados
Testes Unitários/IntegradosTestes Unitários/Integrados
Testes Unitários/Integrados
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
TDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVATDD - Test Driven Development com JAVA
TDD - Test Driven Development com JAVA
 
Palestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreiraPalestra Teste de Software: princípios, ferramentas e carreira
Palestra Teste de Software: princípios, ferramentas e carreira
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Introdução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anosIntrodução ao TDD (Test-Driven Development) - #guma10anos
Introdução ao TDD (Test-Driven Development) - #guma10anos
 
Automação de Teste Funcionais - Selenium
Automação de Teste Funcionais - SeleniumAutomação de Teste Funcionais - Selenium
Automação de Teste Funcionais - Selenium
 
Testando aplicações Flex com Selenium
Testando aplicações Flex com SeleniumTestando aplicações Flex com Selenium
Testando aplicações Flex com Selenium
 
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a SessõesQA Ninja Conf - Testes Exploratórios Orientados a Sessões
QA Ninja Conf - Testes Exploratórios Orientados a Sessões
 

Similar a Testes .NET e Progress

Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...Isaac de Souza
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Claudinei Brito Junior
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Javaelliando dias
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfHoctairBernardino
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geralpaulo peres
 

Similar a Testes .NET e Progress (20)

Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
O que seus testes garantem, o funcionamento do código ou das funcionalidades ...
 
Testes
TestesTestes
Testes
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
TDD
TDDTDD
TDD
 
Tdd x testes unidades
Tdd x testes unidadesTdd x testes unidades
Tdd x testes unidades
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
Minicurso - Técnicas de Teste e Automatização do Teste de Unidade XII SemanaT...
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Introdução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem práticaIntrodução ao Teste de Software - Uma abordagem prática
Introdução ao Teste de Software - Uma abordagem prática
 
Eng de testes aula2
Eng de testes   aula2Eng de testes   aula2
Eng de testes aula2
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java JavaImplementando Implementando eXtreme treme Programming rogramming em em Java Java
Implementando Implementando eXtreme treme Programming rogramming em em Java Java
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Testes De Software - Uma Visão Geral
Testes De Software - Uma Visão GeralTestes De Software - Uma Visão Geral
Testes De Software - Uma Visão Geral
 

Más de Vitor Silva

Forum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoForum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoVitor Silva
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosVitor Silva
 
Desenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentDesenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentVitor Silva
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateVitor Silva
 
Desenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs ObjectosDesenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs ObjectosVitor Silva
 
Desenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionDesenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionVitor Silva
 
Desenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingDesenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingVitor Silva
 
Desenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosDesenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosVitor Silva
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesVitor Silva
 
Desenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceDesenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceVitor Silva
 
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoDesenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoVitor Silva
 
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosDesenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosVitor Silva
 
Desenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesDesenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesVitor Silva
 
Desenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioDesenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioVitor Silva
 
Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasVitor Silva
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkVitor Silva
 

Más de Vitor Silva (17)

Cidadania20
Cidadania20Cidadania20
Cidadania20
 
Forum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No PortoForum Onde Vais Cidade - Habitação No Porto
Forum Onde Vais Cidade - Habitação No Porto
 
Desenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a DadosDesenvolvimento em .Net - Acesso a Dados
Desenvolvimento em .Net - Acesso a Dados
 
Desenvolvimento em .Net - Deployment
Desenvolvimento em .Net - DeploymentDesenvolvimento em .Net - Deployment
Desenvolvimento em .Net - Deployment
 
Desenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernateDesenvolvimento em .Net - nHibernate
Desenvolvimento em .Net - nHibernate
 
Desenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs ObjectosDesenvolvimento em .Net - Dados vs Objectos
Desenvolvimento em .Net - Dados vs Objectos
 
Desenvolvimento em .Net - Reflection
Desenvolvimento em .Net - ReflectionDesenvolvimento em .Net - Reflection
Desenvolvimento em .Net - Reflection
 
Desenvolvimento em .Net - Databinding
Desenvolvimento em .Net - DatabindingDesenvolvimento em .Net - Databinding
Desenvolvimento em .Net - Databinding
 
Desenvolvimento em .Net - Eventos
Desenvolvimento em .Net - EventosDesenvolvimento em .Net - Eventos
Desenvolvimento em .Net - Eventos
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - Excepções
 
Desenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User InterfaceDesenvolvimento em .Net - User Interface
Desenvolvimento em .Net - User Interface
 
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De DesenvolvimentoDesenvolvimento em .Net - Boas Praticas De Desenvolvimento
Desenvolvimento em .Net - Boas Praticas De Desenvolvimento
 
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosDesenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a Objectos
 
Desenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e InterfacesDesenvolvimento em .Net - Herança e Interfaces
Desenvolvimento em .Net - Herança e Interfaces
 
Desenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual StudioDesenvolvimento em .Net - A Framework e o Visual Studio
Desenvolvimento em .Net - A Framework e o Visual Studio
 
Desenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas BasicasDesenvolvimento em .Net - Estruturas Basicas
Desenvolvimento em .Net - Estruturas Basicas
 
Desenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A FrameworkDesenvolvimento em .Net - Introducao A Framework
Desenvolvimento em .Net - Introducao A Framework
 

Testes .NET e Progress

  • 2. Objectivos identificar diferentes tipos de testes ● descrever conceito de teste unitário ● perceber vantagens de utilização de testes ● unitários conhecer estrutura de testes (test-fixtures ou ● test-suites) conhecer ferramentas disponiveis para .net e ● progress
  • 3. Objectivos saber criar testes em .net ● saber criar testes em progress ●
  • 4. Tipos de testes Teste de Caixa Branca (qualidade do código) ● Teste de Caixa Preta (entradas e saídas) ● Teste de Interface (funcional e usabilidade) ● Teste de Integração (inter-componentes) ● Teste de Sistema (inter-sistemas) ●
  • 5. A Abordagem Clássica A forma mais tradicional de teste consiste em ● adoptar um revisor (par ou especialista em teste) após cada atividade => Auditoria Nono nonono nono No nonono nono no No nono nono no Nono nono no Nono nonono nono Artefato Desenvolvedor Revisor Nono nonono nono No nonono nono no No nono nono no Nono nono no Nono nonono nono Log Erros
  • 6. A Abordagem Clássica O Revisor normalmente é alguém com maior ● experiência e conhecimento do produto, capaz de identificar erros mais complexos O Revisor é, normalmente, mais caro para a ● empresa Desenvolvedores menos experientes geram ● mais erros Mais erros exigem mais horas de revisão e ● setup (além do custo do retrabalho) Desenvolvedores Inexperientes => $$$$$$$$$ ●
  • 7. Nova perspectiva Testes Unitários ● servem para validar um pedaço de código – (tipicamente um modulo caixa preta). devem ser possiveis de correr automaticamente – devem ser executados muito rapidamente – (centenas ou milhares de testes em poucos segundos) ● são sempre preparados pelo programador. – garantem que um bocado de codigo criado é válido. – Exemplo: teste que verifica se a execução de um procedimento que soma dois números funciona
  • 8. Comparação Testes funcionais / de aceitação / integação / ● homologação preparados por alguém fora da equipa de – desenvolvimento. garantem que a execução do código produzido – para resolver a tarefa faz sentido, ou seja traduz completamente para software o requisito que foi definido pelo cliente. Exemplo: na aplicação é necessário existir alguma função que some dois números?
  • 9. Quando é a fase de testes? Durante o desenvolvimento e não após o ● desenvolvimento! algumas metodologias advogam até a criação dos – testes antes do desenvolvimento (Test-Driven Development)
  • 10. Porquê Testar durante o Desenvolvimento? reduz o tempo que se irá gastar com ● ferramentas de debug esforço de correcção de um defeito cresce ● exponencialmente ao longo do tempo cria confiança ● sabemos que estamos a construir pedaços de – código em que podemos confiar
  • 11. Desculpas habituais para não criar testes Demora muito tempo ● é evidente que fazer um teste, ou seja ter mais uma – tarefa, vai gastar mais tempo do que só fizesse o programa no entanto se essa tarefa for sendo feita durante o – periodo de desenvolvimento a produtividade global será superior
  • 12. Desculpas habituais para não criar testes Não é trabalho do programador criar testes, ou, ● o programador é pago para programar e não ● para escrever testes concordamos que: – o programador deve criar código ● mas código que funcione ● se não o testou como sabe que funciona? ● será que é mais rentável passar n horas à caça de – bugs do que n horas a criar os testes que os evitem?
  • 13. Desculpas habituais para não criar testes Não posso testar porque ainda não tenho os ● requisitos todos então também não pode criar o código – correspondente a esse pedido...
  • 14. Testes Unitários formalizam os testes ● numa linguagem que o programador domina ● porque são feitos na mesma linguagem de – programação que o programa a testar e auto documentam o código ● mostram programaticamente exemplos concretos – da utilização dos módulos a testar
  • 15. Testes Unitários com .Net http://www.nunit.org/ ● vitorsilvadownloadsprogramasNUnit-2.2.0.msi – http://www.testdriven.net/ ● vitorsilvadownloadsprogramasTestDriven.NET-1.0.9 –
  • 16. Testes Unitários com .Net criar nova solução ● criar projecto do tipo class library chamado ● testes unitarios acrescentar classe chamada Helper ●
  • 17. Testes Unitários com .Net criar projecto do tipo class library chamado ● testeprojecto adicionar referencia a nunit.framework.dll ● adicionar referencia ao projecto testesunitarios ●
  • 18. Testes Unitários com .Net acrescentar nova classe ●
  • 19. Testes Unitários com .Net correr esse teste ●
  • 20. Testes Unitários com .Net erro na inicialização da variável max ● vamos mudar para max as integer = 0 –
  • 21. Testes Unitários com .Net voltar a correr teste ●
  • 22. Testes Unitários com .Net vamos acrescentar mais uma condição que ● sabemos que é verdadeira e testar essa condição
  • 23. Testes Unitários com .Net depois de olhar atentamente para o código... ●
  • 24. Revisão – Testes Unitários formalizam os testes ● numa linguagem que o ● programador domina porque são feitos na mesma – linguagem de programação que o programa a testar e auto documentam o código ● mostram programaticamente – exemplos concretos da utilização dos módulos a testar
  • 25. Testes Unitários com .Net já agora experimentem inicializar o array com ● -1, -2 e -3 e vejam se continua a funcionar...
  • 26. Testes Unitários em Progress ProUnit ● vitorsilvadownloadslibsprounit – Punit ● vitorsilvadownloadslibspunit –
  • 27. Testes Unitários em Progress desenvolver o mesmo teste com uma das ● frameworks indicada
  • 28. Objectivos identificar diferentes tipos de testes ● descrever conceito de teste unitário ● perceber vantagens de utilização de testes ● unitários conhecer estrutura de testes (test-fixtures ou ● test-suites) conhecer ferramentas disponiveis para .net e ● progress
  • 29. Objectivos saber criar testes em .net ● saber criar testes em progress ●