Testing (Blogtober2019)

por Fran Iglesias

Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

Testing

Como ya sabes, uno de los temas principales de este blog es el testing, así que resulta un poco complicado encontrar un enfoque distinto que aporte sentido a un artículo para este blogtober que no sea repetitivo.

Una de las cuestiones que me preocupa últimamente sobre testing es que tenemos bastante confusión sobre de qué se trata el testing, no lo hacemos muy bien y lo hacemos a desgana.

En este artículo caía en la cuenta de que hablamos de testing para referirnos a dos cosas que son muy parecidas y, sin embargo, muy diferentes: el testing como herramienta de control de calidad, y el testing como herramienta de desarrollo.

Uno de los problemas de la mala fama del testing entre los developers (no me digáis que no) creo que viene de no ser consciente de esa dualidad. En la práctica mezclamos ambas cosas, lo que nos deja una cierta sensación de que se trata de una pérdida de tiempo. Vemos el testing como una tarea extra que no nos aporta realmente nada.

Creo que como developers tendríamos que centrarnos en el aspecto del testing como herramienta de desarrollo para poder apreciar su valor. Eso, normalmente, implica acercarse a otro gran incomprendido: Test Driven Development. TDD no es una herramienta de QA, es una herramienta de desarrollo. Lo mismo que su versión “extrema”, el Behavior Driven Development, que puede considerarse incluso como una herramienta básica para el Domain Driven Design.

Deberíamos ver los tests como especificaciones formalizadas del comportamiento del software que desarrollamos y utilizarlos para guiar el proceso de desarrollo. Estos tests nos permiten explorar implementaciones y hacerlas evolucionar con la seguridad de contar con un sistema que nos indica en cada momento si estamos creando la funcionalidad deseada.

Temas

good-practices

refactoring

php

testing

tdd

design-patterns

python

blogtober19

design-principles

tb-list

misc

bdd

legacy

golang

dungeon

ruby

tools

hexagonal

tips

software-design

ddd

books

bbdd

soft-skills

pulpoCon

oop

javascript

api

typescript

sql

ethics

agile

swift

java