Testes unitários em FORTRAN
Introdução
[editar | editar código]Testes unitários são frequentemente vistos como um recurso exclusivo de ecossistemas modernos de desenvolvimento, graças à popularidade de frameworks como JUnit (Java), pytest (Python) e Jest (JavaScript). Essa percepção leva muitos a acreditar que linguagens mais antigas não podem se beneficiar dessa prática. No entanto, a essência dos testes unitários transcende linguagens ou ferramentas: trata-se de uma disciplina fundamental de engenharia de software.
Para provar esse ponto, este tutorial ensinará, sem o uso de nenhum framework, como construir testes unitários básicos em FORTRAN, uma linguagem dos anos 1950 que ainda hoje é amplamente utilizada em aplicações científicas e de alta performance.
Introdução ao FORTRAN
[editar | editar código]Fortran (Formula Translation) é uma linguagem de programação projetada para computação científica e numérica. Apesar de sua idade, ainda é usada em áreas como meteorologia, física computacional e engenharia devido à sua eficiência em cálculos complexos.
Variáveis
[editar | editar código]A declaração de variáveis em FORTRAN segue o seguinte formato:
tipo :: nome_variavel
integer :: idade ! Inteiro
real :: altura ! Número real
character(len=20) :: nome ! String
logical :: eh_valido ! Booleano
integer, dimension(10) :: vetor ! Array de 10 inteiros
real, dimension(5,5) :: matriz ! Matriz 5x5
Funções
[editar | editar código]Em FORTRAN, as funções seguem o seguinte formato:
function nome_da_funcao(variavel1, variavel2, ..., variaveln) result(nome_variavel_saida)
[declarações de variáveis e parâmetros]
[corpo da função]
end function [nome_da_funcao]
Por exemplo, para uma função que soma dois números:
function soma(a, b) result(res)
integer :: a, b
integer :: res
res = a + b
end function soma
Criação de um programa
[editar | editar código]Em FORTRAN, a estrutura básica de um programa segue um padrão específico. Embora seja análogo à função main() de linguagens como C e Java, em FORTRAN utilizamos a palavra-chave program, conforme o esquema abaixo:
program <nome_do_programa>
[declarações de variáveis]
[corpo do programa]
contains
[definição das funções internas]
end program <nome_do_programa>
Ou seja, o "Ola, mundo" do FORTRAN seria da seguinte maneira:
program ola_mundo
print *, "ola, mundo!"
end program ola_mundo
Testes Unitarios e um exemplo em FORTRAN
[editar | editar código]Apesar de geralmente serem utilizados frameworks que facilitam a implementação de testes unitários, sobretudo em aplicações maiores, é importante lembrar que, de maneira primitiva, testes unitários são simplesmente testes que verificam a funcionalidade de uma unidade de código.
Exemplo de programa que testa uma função de soma:
program teste_soma
integer :: resultado, esperado
! Teste 1: 2 + 3 = 5
resultado = soma(2, 3)
esperado = 5
if (resultado == esperado) then
print *, "Teste PASSOU: soma(2, 3) = 5"
else
print *, "Teste FALHOU: esperado 5, obtido ", resultado
end if
contains
function soma(a, b) result(res)
integer :: a, b
integer :: res
res = a + b
end function soma
end program teste_soma
Conclusão
[editar | editar código]- Testes unitários são viáveis em qualquer linguagem, incluindo FORTRAN.
- A ausência de frameworks não é desculpa para não testar.
- A prática pode ser implementada com estruturas básicas da linguagem.