Pesquisar este blog

Mostrando postagens com marcador pré-compilador. Mostrar todas as postagens
Mostrando postagens com marcador pré-compilador. Mostrar todas as postagens

quinta-feira, 24 de janeiro de 2019

Testes Unitários em COBOL

Testes Unitários em COBOL

Walter BUGA Ramos
buga.bug.buga@gmail.com


Testes unitarios cobol - NeoPragmav.pptx
Testes unitarios cobol - NeoPragmav.pdf

Fontes disponiveis em 
https://github.com/buga-buga-buga/paradinhas_mainframe/tree/main/CUT
------------------------------------------------------------------------
INDICE  - Esse documento                                                
------------------------------------------------------------------------
CLG#001 - Compila. linka e executa modulo fonte Cobol                   
CLG#002 - Compila linka e executa modulo fonte Cobol  (evolucao)        
CLG#003 - Compila linka e executa modulo fonte Cobol  (evolucao 2)      
------------------------------------------------------------------------
ZUTZCPC - Código Fonte do Pre-compilador                                
------------------------------------------------------------------------
ZUTZCPD - Book de instruções do pre-compilador                          
------------------------------------------------------------------------
ZUTZCWS - Book de variaveis do pre-compilador                           
------------------------------------------------------------------------
SAMPLE  - Programa Cobol que sera objeto do teste                       
------------------------------------------------------------------------
SAMPLET - Instrucoes do que quer que seja testado                       
                       Não consegui rodar como particionado             
                            utilize de 'BUGAARQ.SIGLA.SAMPLET'           
------------------------------------------------------------------------
UTSTCFG - Configuration file                                            
------------------------------------------------------------------------


Entendendo o cenário de desenvolvimento de Software

Cobol Unit Test - CUT

  • Projeto colaborativo disponível no GitHub
  • Pré-Compilador escrito em Cobol que gera um programa Cobol específico com o caso de testes a ser executado

Pirâmide de Testes


            /        \
           /          \
          /            \
         /Exploratórios \
        /________________\
       / End to End       \
      /____________________\
     / Testes de Componente \  
    /________________________\
   /       Integração         \
  /____________________________\
 /           UNITÁRIO           \
/________________________________\
  • Exploratórios: Testes manuais para descobrir comportamentos inesperados.
  • End to End: Testes que validam o fluxo completo do sistema.
  • Testes de Componente: Validam partes isoladas do sistema.
  • Integração: Verificam a interação entre componentes.
  • Unitário: Testam unidades individuais de código.

Metodologia de desenvolvimento

A arquitetura mainframe é diferente da distribuída e da nuvem.
A linguagem procedural (Cobol/PL1/Rexx) é diferente da orientação a objetos.
Entretanto, vamos utilizar conceitos de outras arquiteturas e linguagens para melhorar a qualidade de nosso código e facilitar a codificação!


(Des)conceituando o teste unitário

Procura verificar se o código está correto, em sua menor parte.
A menor parte do fonte a ser testado é um método de uma classe.
Sendo assim, os testes unitários são aplicados a esses métodos, a partir da criação de classes de testes.


Então o que testar no COBOL?

Ainda não temos um conceito formado sobre isso, mas esperamos que seja algo parecido com o mock de outras linguagens.
Num dos exemplos do projeto da ferramenta, o teste versa sobre o conteúdo de variável esperada depois da execução de uma section.


Funcionamento da ferramenta

Por algum motivo que desconheço, não tem nada sobre como rodar a ferramenta no mainframe; no micro funciona de boa, só seguir o texto base que tem lá no Git.
A importação dos fontes e adaptações foram tranquilas e alguns ajustes foram necessários.
O que mais demorou e que apanhei um bocado foi pra gerar o JCL “redondinho”.


Etapas

Depois da ferramenta ter sido compilada e linkeditada, temos:

  • Rodar a ferramenta informando o programa e os casos de teste
  • Compilar/Linkeditar o “programa” gerado
  • Executar esse ‘programa’ com os casos de teste

Mãos à obra!

Particionado com os componentes necessários está disponível em:
WALBUGA.SIGLA.CUT.COBOL


Obrigado!