00:00 /17:59

¿Qué es el testing? ¿Cómo se testea un software? ¿Por qué es tan importante? ¿Qué puede provocar un software mal testeado? ¿Se enseña correctamente esta tarea en la universidad? De todo esto y más trata esta edición en la que participan las investigadoras del Instituto Valenciano de Investigación en Inteligencia Artificial, el VRAIN, Tanja Vos y Beatriz Marín.

-------

5ª TEMPORADA

"Revisado por pares" es un programa en el que investigadores de la Universitat Politècnica de València (UPV) pasan por nuestros estudios para comentar, de dos en dos, la actualidad científica. Una agradable conversación para estar al día de los avances en el mundo de la investigación académica.

Con la colaboración de la Fundación Española para la Ciencia y la Tecnología (FECYT) del Ministerio de Ciencia e Innovación.

Transcripción

¿Qué es el testing? ¿Cómo se testea un software? ¿Por qué es tan importante? ¿Qué puede provocar un software mal testeado? ¿Se enseña correctamente esta tarea en la universidad? De todo esto y más trata el programa de hoy. Comienza una nueva entrega de Revisado por Pares.

Revisado por Pares, un programa presentado y dirigido por Luis Durano en UPV Radio, radio.upv.es. Y empieza una nueva entrega de Revisado por Pares, programa que hoy está protagonizado por dos investigadoras del Instituto Valenciano de Investigación en Inteligencia Artificial, del Instituto Brain. Ellas son Tania Bosch. Tania, muy buenas. Hola, buenas. Y Beatriz Marín.

Hola, buenos días. Que además va a cumplir un sueño estando en un estudio de radio, Beatriz. Claro que sí, es mi primera vez aquí en un estudio de radio y estoy muy feliz de poder compartir con todos los radioscuchas la ciencia y lo que más nos gusta. Y vamos a hablar de testing y de un proyecto en concreto que se llama Enactest, pero comencemos en la casa, por los cimientos, explicando qué es el testing, Tania, Bea, y la importancia que tiene, aunque muchas veces no nos demos cuenta, en nuestro día a día.

Vale, pues es una buena pregunta para empezar, ¿no? Porque cuál es la definición del testing siempre es difícil. Si haces una búsqueda en internet, en Google, encuentras muchísimas definiciones y casi todas son malas. Entonces, realmente eso contribuye al hecho de que software testing siempre es difícil también para enseñar, para los alumnos y para entender cómo hacerlo.

Y entonces la definición que nosotros usamos en nuestras clases y que hemos pensado un poquito cuál es la mejor para saber cómo difícil es el testing y qué es lo que tienes que hacer para hacerlo bien, es que es realmente una búsqueda. Una búsqueda en un software donde hay una cantidad de fallos que no conoces, son de determinados diferentes tipos que tampoco sabemos cuáles son y las posibilidades son infinitas y de eso tenemos que elegir un conjunto finito para probar el software y de esta forma dar una opinión

de la calidad que tiene. Con esta presentación, con este resumen, sabemos ya de la importancia que tiene una tarea como esta. Decía, en nuestro día a día, incluso en la grabación de este programa que se está registrando con un software, ese software previamente necesita ser testeado para que no tengamos, por ejemplo, que repetir todo lo que estamos hablando.

Exactamente, exactamente. El testing es una parte del proceso de desarrollo de software que previamente diseñamos, programamos y el testing es parte igual de importante, donde necesitamos entonces probar que funciona correctamente y explorar qué cosas pueden pasar si existe algún fallo que no queremos que se encuentre el usuario final, poder detectarlo antes de tiempo y de eso se trata justamente el testing. ¿Y cómo se detecta un fallo? Pues mediante el testing, intentando de todos

los casos infinitos que hay que probar, pues elegir los buenos que realmente dan lugar a un fallo y entonces una vez encontrado, pues hay que arreglarlo. ¿La idea sería someter al programa informático, al software a un estrés? ¿Dónde puede fallar para prevenir ese fallo? Ese es uno de los tipos de testing que podemos hacer, de pruebas de estrés, pero hay otros tipos también.

Probamos, por ejemplo, que la funcionalidad que se ha codificado, que se ha programado, funcione correctamente. También probamos que el usuario final pueda interactuar con el software. Probamos también, por ejemplo, temas de seguridad. Pongamos el ejemplo del caso de las notas del cole de tu hijo, por ejemplo.

Tú puedes ver las notas, el boletín de notas de tu hijo pero no el resto de los alumnos, ¿cierto? Entonces hay problemas también cuando codificas el software de esa visibilidad de la información. Todas esas cosas probamos con distintas técnicas de testing. ¿Qué puede provocar, Tania, Bea, un software mal testeado y por lo que estáis comentando queda camino bastante por recorrer y por mejorar? Podemos poner algún ejemplo.

Acaba de dar uno. Si hay un mal funcionamiento de ese software, de las notas del cole, puede hacer públicas las notas de todo el mundo, puede hacer públicos los nombres, apellidos, de todo el mundo. Ese sería un ejemplo muy gráfico. Pero en el mundo empresarial, en el mundo académico también, en el mundo del ocio, podríamos poner algunos casos de si esto está mal hecho, estas pueden ser las posibles consecuencias. Una de las consecuencias que vemos mucho son consecuencias de que cuesta mucho dinero.

Como recientemente Tesla, por ejemplo, ha tenido que revocar todos sus coches debido a un fallo de software. Eso cuesta muchísimo dinero, incluso su imagen. Pero más allá de posibles errores que pueden haber en software mal desarrollado y mal testeado, otro problema que hay es que si tú desarrollas un software y está mal y aunque no realmente salen los errores, vas construyendo software por encima.

Porque el software evoluciona todo el tiempo, entonces cada vez tenemos un sistema, queremos añadir una funcionalidad, y otra, y otra, y así vamos construyendo más funcionalidades sobre otros. Y si no testeamos bien el software cada vez, entonces vamos a generar como una deuda técnica. Y entonces hasta el final… Que se va acumulando.

Sí, va acumulando, acumulando la mala calidad y eso llega a determinado momento a que ya no podemos más. Y el ejemplo más reciente que yo conozco de Holanda, de Hacienda, pues ahí están ahora incapaces de añadir más legislación que ha salido porque simplemente los sistemas ICT no dan para más. Están construyendo de tan mala cantidad durante tantos años que ya hay que revisar todo y casi empezar de cero, aunque eso también es casi imposible.

Entonces, esto en cuanto a los fallos hay, pero también una deuda técnica que vas construyendo. Habida cuenta de la importancia que tiene, ¿qué explica que no se preste, por lo que explicáis, la suficiente atención a ese testeo, a contribuir a garantizar el correcto funcionamiento del software? Porque aquí has puesto un ejemplo del caso en la administración holandesa, has hablado del caso de Tesla.

Hay implicaciones tanto económicas y pueden ser muy importantes como también administrativas y de gestión que lo son tanto o más. Cuando se pueden dar esos fallos y se dan, de hecho, ¿qué explica? No sé si parece que el testing esté como un poquito olvidado dentro de todo el entorno, vamos, que ya sea empresarial, administrativo, académico.

Sí, bueno, nosotros pensamos que el problema viene desde la educación, que estamos enseñando mal el testing y que realmente no le estamos dedicando la suficiente cantidad de contenidos en nuestro currículo de ingeniería informática, así como la forma de enseñar no ha sido la mejor para que nuestros alumnos entiendan cómo hacerlo, ya sea basándose en distintas técnicas de testing, basándose en modelos y también explorando, pensando un poquito más allá, ¿qué puede ir mal? Entonces,

este problema tendríamos que atacarlo desde la raíz, desde la educación y tendríamos que entonces tener en cuenta los modelos cognitivos de nuestros alumnos, cómo ellos van aprendiendo para poder enseñarles adecuadamente y que puedan obtener todas estas capacidades de testing.

Y es por eso, para atacar el problema desde esa raíz que acaba de comentar Bea y que también apuntabas al principio en tu primera intervención, Tania, por lo que surge y apostáis y dirigís un proyecto, en este caso un proyecto europeo como es Enactest. ¿Cuáles son las líneas generales de dicho proyecto? Ha apuntado algunas ya a Beatriz.

¿Y los trabajos que se van a llevar a cabo? Sí, pues el objetivo del proyecto es eso, ¿no? Ver cómo podemos añadir testing al currículum de informática en general y programación en específico. ¿Universitaria o no solo universitaria? Bueno, no solamente universitaria. En el proyecto que tenemos también hay formación profesional.

O sea, todos aquellos que vayan a estar en el mercado. Sí, en la empresa, sí. Y hay que empezar pues desde el principio, ¿no? Un ejemplo que yo veo aquí, porque yo doy clase de programación y la mayoría de las clases de programación que damos en las universidades no incluyen testing. Y si no enseñamos a los alumnos o lo educamos bien que hay que testear el primer programa que haces, simple que sea, hay que testearlo.

Si no le enseñamos eso y nosotros como profesores no damos el buen ejemplo, entonces ellos después tampoco lo van a hacer. Y entonces lo que ves muchas veces cuando empiezas a pensar en testing y que es importante, es demasiado tarde, porque es el momento que han salido ya los errores y son muy difíciles de arreglar. Pero claro, si en la carrera no se le da la importancia suficiente, después a la hora de estar trabajando no se le dará, que es lo que es el diagnóstico actual, ¿no?

Sí, exacto. Y eso es lo que queremos atacar en el proyecto. Lo que nosotros queremos intentar hacer es desarrollar como lo que nosotros llamamos cápsulas, que tú puedes inyectar muy fácilmente en tu programa de educación. Entonces que no tienes que cambiar mucho, no tienes que cambiar todo tu currículum o todo tu curso, pero fácilmente lo puedes adoptar en tu curso y enseñar a los chicos y chicas testing.

¿Cápsulas de qué? Bueno, son cápsulas de distinta índole. Algunas son minijuegos offline, como juegos de cartas, para enseñar cuáles son estos conceptos importantes a la hora de testear las distintas técnicas. Otros son juegos videojuegos, juegos en línea.

Utilizamos técnicas de gamificación, es decir, algunos elementos de juego para poder enseñarles a esos alumnos la importancia del testing, cuáles son las técnicas de testing de mutación, por ejemplo, cuáles son herramientas para testing basado en modelos, testing basado a partir de la interfaz gráfica de usuario, etcétera.

Entonces, el resultado de este proyecto van a ser al menos 10 cápsulas. Todas estas son de distinta índole, como he dicho, y la idea es que el profesor pueda usar estas cápsulas en alguno de sus cursos. Inicialmente puede utilizar alguna cápsula en los cursos de programación, pero el testing debe acompañar todos los cursos a lo largo de la carrera de informática.

También es importante que los profesores cuenten con estas cápsulas para mejorar la docencia de los tópicos de testing en ingeniería de software y también en los grados de máster. Independientemente del curso que se esté cursando entre valga la redundancia, esas cápsulas serían tanto aptas para primero como para cuarto, Tania? Sí, hay algunos cápsulas que estarán más aptos para el principio y otros quizás un poquito más al final, pero lo que también nosotros intentamos es

enfocarnos más en las cápsulas para la fase temprano. Porque es la raíz. Ahí está donde está la raíz. Entonces, por ejemplo, programación. Empiezas en programación, empiezas a testar. ¿Por qué es novedoso el planteamiento de un proyecto como Enactest? Bueno, este planteamiento es novedoso porque hoy en día las técnicas de gamificación que existen están más orientadas a programación y no al testing porque es complejo.

Hay pocas estrategias que puedan utilizar los profesores y además cuando quieres agregar alguna nueva estrategia de enseñanza en tus cursos tienes que hacer muchísimo trabajo para incorporarlas en el currículum. Esto es novedoso porque es como una cápsula que te tomas y te mejoras al día siguiente. No requiere muchísimo esfuerzo del profesor.

Van a tener todo el material instruccional, cómo aplicarlo, cuáles son las dinámicas que tienen que realizar con los estudiantes para poder mejorar el aprendizaje. Y además están relacionadas a las necesidades que tiene la industria hoy en día. La idea es que también, sin modificar el currículum que tenemos en las universidades, podamos tener en cuenta esas necesidades de testing de la industria y poder incorporarlas en los distintos cursos.

Porque al final hay que responder a lo que requiere la industria. La industria para evitar fallos como lo mencionaba Dania de Tesla o lo que hemos visto recientemente en el Hospital Clínic de Barcelona. 3.000 visitas canceladas. 150 cirugías. Y eso es porque tienes permisos para acceder a información que no deberías tener.

¿Un buen testing hubiera evitado ese ciberataque? Claro que sí, un testing de seguridad. Como hay muchísimos tipos, es lo que he mencionado al inicio. Si nos enfocamos en testing de seguridad, pues podría haber mejorado esa parte del software y haber evitado. Una de nuestras cápsulas va a estar enfocada en testing de seguridad también.

Casi nada. El proyecto está coordinado por vosotras, por el Instituto Brain. Decías que había socio, también un partner de formación profesional, pero aglutina a los centros de referencia de testeo de software en Europa, ¿es así? Sí, en las universidades donde hay gente trabajando que también están como nosotras, decidido que el testing es importante y incluir en la educación.

Estamos hablando de la Universidad de Nápoles, Federico II, Porto, Rice Research Institute of Sweden, la de Lovaina, ¿no? Sí, la Universidad Católica de Lovaina, sí. Y completa los socios Ennexo y CTG, que es la de formación profesional. ¿Cuándo tendremos los primeros resultados de este proyecto? Bueno, este proyecto ha empezado en septiembre. Hemos estado investigando cuáles son las temáticas más importantes, cuáles son las técnicas que vamos a utilizar en las distintas cápsulas y vamos a tener primeros resultados

a finales de este año y ya resultados validados en el próximo año. ¿Y otros proyectos, Tania, que podamos destacar en este ámbito o este es vuestro principal reto en estos momentos? No, no, estamos haciendo más investigación en cuanto al testing y bueno, acabamos de terminar un proyecto sobre el testing de sistemas de Extended Reality, que también es todo un reto, porque los sistemas que son de Extended

Reality son mucho más complejos que los sistemas normales y imagínate que si eso ya es difícil de testear, cómo difícil es testear en 3D con más personas andando en un mundo virtual. Entonces, ahí hemos estado trabajando en el testing automatizado para intentar reducir los gastos manuales para testear y llegar a sitios donde un tester manual no puede llegar con nuestras herramientas, también basado en la inteligencia artificial

y bueno, también estamos intentando montar un proyecto para mirar mejor el tema de testing de seguridad, porque esto es muy importante también. Este es uno de los grandes desafíos para el testeo. Claro que sí, hoy en día es un tema candente que tenemos que abocarnos y poder aportar con nuestras herramientas a mejorar la calidad desde el punto de vista de seguridad. Lo que está claro y creo que hemos aprendido en estos minutos es que el testing influye

en nuestra seguridad, en nuestra economía, en el rendimiento de las empresas, en el buen funcionamiento de la administración y me da la sensación de que no todo el mundo tiene tan claro la importancia del testing. Es cierto y eso esperamos cambiar un poco a poco con nuestros proyectos. Y el primer paso, ingerir esas cápsulas de NACDES para empezar a mejorar la educación y a partir de allí ya mejoraremos la sociedad.

Pues Bea, Beatriz, Marín, Tania, vos, un placer haber aprendido con vosotras de este importante mundo dentro de la ingeniería informática y ya sabéis, estas ondas y este estudio está abierto para vosotras cuando lo queráis y ya no será ese debut en un estudio de radio. Bea, Tania, mil gracias de verdad. Muchísimas gracias. Pues hasta aquí esta nueva entrega de Revisado por Pares que hemos dedicado hoy a hablar

sobre el testing, sobre NACDES, sobre esas cápsulas. Volvemos a escucharnos en una próxima edición de este espacio que contará también de nuevo con la colaboración de la Fundación Española para la Ciencia y la Tecnología del Ministerio de Ciencia e Innovación. Hasta entonces, sed felices.

Episodios recientes