Script Time: ¿Qué tan bueno es el testing de software?

Published: April 14, 2017, 11:43 p.m.

A la hora de desarrollar un software ya tenemos en claro que es necesario tener un requerimiento, es decir un problema a resolver con un programa, tiempo de diseño y de implementación. Hasta aquí se ha convertido una idea abstracta en algo concreto: un programa. Pero todo todo programa está escrito por seres humanos, y como se suele decir “errar es de humanos”. Esta campo no es la excepción, por el contrario es uno de los campos donde más se puede ver. La pregunta que surge es ¿cómo probamos que un programa realmente se comporta como debería? La primer respuesta que se suele dar es hacer testing. Esto es probar el programa en busca de errores. Como primera aproximación no está mal pero la verdad es que no es la solución. Muchas veces esta tarea se realiza manualmente proveyendo distintas entradas a un programa y obteniendo una salida. Si esta satisface las condiciones requerida se dice que funciona. El problema que solo podemos garantizar que funciona en esos casos. Si consideramos que la entrada son números enteros y que trabajamos con números de 64 bit se tienen 2 ? 64 posibilidades (9223372036854775808). Así pues podemos ver que la prueba manual sería algo muy tedioso. Para esto se utilizan ciertas herramientas que automatizan el proceso. Estas no solo aplican las pruebas sino que las optimizan para no tener que hacer ese total de consultas. El problema con esta metodología que hoy en día está en auge es que la clave del testing es “encontrar la presencia errores (siempre y cuando estén dentro de las consideraciones del tester) y no puede garantizar la ausencia de los mismos” con lo cual el análisis no es perfecto. Otras formas de trabajarlo es mediante el uso de métodos formales con los que se puede demostrar que una especificación va a cumplir las propiedades y mientras la implementación la respete el programa va a contener muy pocos fallos. Decimos muy pocos porque es casi imposible eliminarlos en su totalidad pero sí podemos minimizarlos mucho. Espero disfruten de este episodio y no se olviden de que estamos abiertos a sugerencias. Si tienen algún tema que les interese no duden en hacérnoslo llegar. Ahora si a disfrutar del episodio. ********************************** App de iOS: https://itunes.apple.com/us/app/code-time/id1435749618 ********************************** Para Contribuir PAYPAL : davidgiordana@hotmail.com.ar PATREON: https://www.patreon.com/codetime ********************************** Curso completo de desarrollo en Swift 4 desde cero https://www.udemy.com/curso-completo-de-swift-4-desde-cero/?couponCode=YOUTUBE_1 Curso de desarrollo de aplicaciones para iOS 11 desde cero https://www.udemy.com/desarrollo-de-aplicaciones-para-ios-11-desde-cero/?couponCode=YOUTUBE_1 ********************************** Medios de contacto: Twitter / Telegram: @DavidGiordana Correo Electrónico: davidgiordana0@gmail.com Grupo en Telegram: https://t.me/joinchat/C-YEzBGu5Jh-mu8ejM2toA ********************************** Medios de Contacto CANAL DE TELEGRAM: https://telegram.me/Code_Time PODCAST: https://goo.gl/QUximq ITUNES: https://goo.gl/XmDjX2 ********************************** Canciones Utilizadas OP: A Himitsu - Adventures: youtu.be/8BXNwnxaVQE ED: See You Tomorrow by GoSoundtrack http://www.gosoundtrack.com/ Music provided by Audio Library https://youtu.be/idlqqMHd0W4