HEADER_lecciones_de_software

El nacimiento del testing

por Boris Andrés Vélez, el 21 de noviembre de 2018

Testing de sitios web 

Desde el primer homo sapiens hasta la actualidad, la evolución del hombre es directamente proporcional a las soluciones que encuentra para sus necesidades. Es decir, cuando no existía nada de la tecnología que conoces, el hombre tenía ya los primeras necesidades carentes de una solución, por ejemplo: ¿Cómo cazar presas grandes para alimentarse? para esto descubrió que si se tomaba una roca especial en sus características y se le deba forma puntiaguda, cortaba más fácil la carne de las presas que cazaba.

También descubrió que si frotaba dos rocas generaba chispa y si le sumaba paja seca o madera producía fuego. Esto podemos llamarlo como el desarrollo del primer software, un conjunto de distintas partes que componen algo que se va realizar. Desde épocas muy antiguas, el hombre ha desarrollado múltiples soluciones que incluso combinadas dan avances para necesidades cada vez más complejas.

Las soluciones van de la mano de las pruebas, por ejemplo: el homo sapiens debió realizar una serie de pruebas para lograr que la roca tuviese filo,  a su vez también, debió realizar pruebas para determinar qué material se debe combinar con la chispa para generar fuego. Esto lo podemos llamar como el primer testing de la historia.

Avanzando un poco más en el tiempo y el desarrollo del ser humano,  nos encontramos con personajes como Leonardo da Vinci, creador de la gran obra La Gioconda, que era nada más que el retrato de Lisa Gherardini, conocida como La Mona Lisa.

Da Vinci, además de ser pintor, fue anatomista, arquitecto, paleontólogo, artista, botánico, científico, escritor, escultor, filósofo, ingeniero, inventor, músico, poeta y urbanista.

mona_lisa_davinci

También existió Thomas Alva Edison, creador de la bombilla incandescente, entre otras cosas. Alva tuvo una necesidad y desarrolló la forma de hacer que un filamento que alcanzara la incandescencia sin fundirse. Para lograrlo, tuvo que realizar más de 1.000 pruebas con filamentos de distintos materiales.

Todo esto es software en su más pura esencia, una combinación de una necesidad, más la solución más sus pruebas, dando como resultado un producto que luego se transforma en la iniciativa de una nueva solución a una necesidad más compleja.  El software igual que la electricidad no se destruye, se transforma.

Luego de todo esto, llega una gran transformación económica, tecnológica y social desde que la economía rural estaba basada en la agricultura y el comercio a una nueva economía urbana, industrializada y mecanizada; este periodo se llamó la Revolución Industrial, la invención de la máquina como solución a grandes retos y necesidades de la humanidad, nuevamente la transformación del software.

A partir de este momento, el trabajo manual y el uso de la tracción animal trasciende para que ingresen los ferrocarriles a vapor y máquinas industriales a vapor para uso textil.

locomotora

El éxito del funcionamiento apropiado y correcto de estas máquinas se basó en el método de prueba y error, sin ello no hubiese sido posible que la solución se adaptara a los distintos ambientes a los que pudiese ser sometida esta maravilla de la ingeniería, una combinación entre arte, mecánica, ciencia y arquitectura. Una vez más, el testing jugó un papel importante el desarrollo de un software.

Solo hasta el año 1936, Konrad Zuse, ingeniero alemán, diseñó y fabricó la primera computadora programable llamada la Z1, una calculadora mecánica binaria, operada con electricidad, la cual ocupaba una mesa entera, los datos los recibía de cintas perforadas.

En 1947, se construye la Mark II, un ordenador electromecánico construido bajo la dirección de Grace Hopper y Howard Aiken, para uso militar. Este ordenador sólo podía procesar operaciones matemáticas básicas con la suma, multiplicación, raíz recíproca, cuadrado, logaritmo, exponencial, tardaba entre cinco y doce segundos en procesarse.

Aquí nació el software como lo conocemos, una solución a una necesidad, en donde se desarrolla, se prueba y se corrige el producto para mejorar los componentes y operaciones de este ordenador.

Origen del término Bug

En 1947, cuando se desarrollaba la Mark II; luego del ciclo de pruebas al ordenador, se detectó una falla en las operaciones matemáticas, su origen en un relé electromagnético, que se produjo debido a una polilla (Bug), que provocó que el relé quedara abierto. Los ingenieros pegaron insecto con cinta adhesiva en los registros, indicando que este era el primer evento real de un bug encontrado.


Crisis del software

En la actualidad, el software combina lo físico con lo abstracto, un software mecánico con un software abstracto, que cada uno por separado es la solución a una necesidad y juntos forman parte de un programa dando como resultado un sistema. Su éxito se basa en la planificación, el costo, el desarrollo y la calidad. Existe una rama de la ingeniería llamada Ingeniería de software. Lee: Conoce qué son las pruebas no funcionales de software

La escritura de software en lenguajes de programación como se conoce hoy en dia, no se consideraba una profesión, mucho menos una ingeniería. Los programadores, habían sido ingenieros civiles y eléctricos, pero aún se desconocía qué podría significar la ingeniería de software. Fue hasta los inicios de la década de 1950 que el término ingeniería de software por primera vez apareció. También te recomendamos: DevOps: El camino para entregar software de manera más ágil

La ingeniería de software nace como producto de la crisis del software en las décadas de 1960, 1970 y 1980, cuando se identificaron los problemas que llevaron el software al fracaso como por ejemplo: El sobrecosto, la sobrestimación de tiempo y la baja calidad, causando daños a la propiedad, y en ocasiones, pérdidas de vidas humanas.

crisis_del_software

Algunos proyectos fallidos

Estos son algunos de los proyectos fallidos que marcaron la historia del software debido a la baja planeación, pruebas y mejora continua.

1. Accidentes aéreos: en abril de 1986, un avión de combate modelo F - 18 ejecutando una prueba de maniobras tuvo un giro descontrolado, producto de una falla en el código en una sentencia “If then”, la cual no tenía un control de falla “else”.

2. Accidentes médicos: entre 1985 y 1987, el Therac - 25 fue una máquina de radioterapia que provocó la muerte de un gran número de pacientes en Estados Unidos por los altos niveles aplicados de radiación muy por encima de lo que un ser humano puede soportar, esto fue catalogado como una falta de control de calidad

3. Sistemas bancarios: en 1988, el banco llamado Bank of America invirtió 23 millones de dólares en un software, llamado MasterNet, que debía hacer la contabilidad y reportes de fideicomisos, pero para que el software saliera a producción, se invirtieron 60 millones de dólares más, generando un sobrecosto altísimo, finalmente el banco canceló este proyecto.


Conclusión

Vemos cómo el hombre desde su primer descubrimiento siempre ha aplicado el método prueba y error, no solo en software sino también en su vida cotidiana. Por naturaleza, somos curiosos y queremos saber cómo funciona el mundo, probamos todo a nuestro alrededor y analizando los resultados: esto es desarrollo, esto es software.

Software no solo, es abstracto, físico y tanto físico como abstracto se unen para crear un programa, se engrana la necesidad con el desarrollo de la solución y el testing. 

El testing desde la primera prueba que se realizó hace millones de años, es parte fundamental para éxito o el fracaso de un proyecto en todas las áreas, no es un proceso exclusivo de la ingeniería de software. El aseguramiento de la calidad ha crecido en gran manera, tanto que existen entidades enfocadas en certificar y generar las normas que debe tener un producto para cumplir con altos estándares de calidad.

Software como se conoce en el mercado de la tecnología de la información y la comunicación, no es más que una solución a grandes procesos que requieren de mucho tiempo, personal e infraestructura.

Nuevo llamado a la acción

Temas:Tecnologia e Innovacion

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal