Computación cuántica: pruebas de mutación
Quantum computing: mutation testing

Downloads

Downloads per month over past year

61617

Impacto

Downloads

Downloads per month over past year



Aguirre Galindo, Luis and Pellejero Ortega, Javier (2020) Computación cuántica: pruebas de mutación. [Trabajo Fin de Grado]

[thumbnail of AGUIRRE_GALINDO_Computacion_Cuantica_Pruebas_de_Mutacion_4398577_174863 (1).pdf]
Preview
PDF
Creative Commons Attribution Non-commercial.

1MB


Abstract

A lo largo de la última década, la computación cuántica ha ido ganando protagonismo en el campo científico. Con ello, han surgido multitud de herramientas enfocadas a este nuevo área y lenguajes de programación de naturaleza cuántica. A su vez, en una sociedad tan tecnológica como la actual, la comprobación del correcto funcionamiento del software desarrollado se ha convertido en una necesidad imperiosa. De esta forma aparece todo un ámbito de la Ingeniería del Software dedicado a cubrir esta necesidad: Testing de Software. Así, surge la idea de tomar una de las técnicas más importantes de este campo, el mutation testing, y tratar de trasladarla al mundo cuántico aplicándola a dos de los lenguajes de computación cuántica más relevantes en el momento: Q# y Qiskit. Para ello, se ha desarrollado un sistema en Java que recibe código de estos dos lenguajes y aplica mutation testing. Además, si bien en la versión actual sólo se puede ejecutar código de Q# y Qiskit, el sistema ha sido desarrollado bajo la premisa de poder añadir otros lenguajes cuánticos en el futuro.
A lo largo de este trabajo se explicarán con detalle las nociones más importantes de la computación cuántica, así como de la disciplina del testing, haciendo especial énfasis en las pruebas de mutación. También se detalla la planificación seguida para la fase de desarrollo, así como la estructura y el funcionamiento interno del programa. Por último, se muestra la ejecución del programa para uno de los algoritmos cuánticos más importantes: el algoritmo de Deutsch-Jozsa.

Resumen (otros idiomas)

Over the last decade, Quantum Computing has been gaining prominence in the scientific field. With this, a full spectrum of tools focusing on this new area and programming languages of a quantum nature have emerged. At the same time, in a society as technological as the current one, the validation of the correct bevaviour of the developed software has become a must. In this way, a whole area of Software Engineering is devoted to covering this need: Software Testing. Thus, the idea arises of taking one of the most important tools of testing, mutation testing, and trying to transfer it to the quantum world in order to apply it to two of the most relevant quantum computing languages: Q# and Qiskit. To do this, a system has been developed, using Java, that allows us to take code from both languages and apply mutation testing. Furthermore, although in the current version it is only possible to execute code of Q# and Qiskit, the system has been developed under the premise of being able to add other quantum languages in the future. Throughout this work, the most important notions of Quantum Computing will be explained in detail, as well as the discipline of testing, with special emphasis on mutation testing. The planning followed for the development phase is also detailed, as well as the structure and internal functioning of the program. Finally, the execution of the program for one of the most important quantum algorithms is shown: the Deutsch-Jozsa algorithm.

Item Type:Trabajo Fin de Grado
Additional Information:

Trabajo de Fin de Grado del Doble Grado en Ingeniería Informática y Matemáticas, Facultad de Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2019/2020.

Directors:
Directors
Núñez García, Manuel
García Merayo, María de las Mercedes
Uncontrolled Keywords:Computación cuántica, Testing cuántico, Pruebas de mutación, Microsoft Q#, IBM Qiskit, Herramienta Java.
Palabras clave (otros idiomas):Quantum Computing, Quantum testing, Mutation testing, Microsoft Q#, IBM Qiskit, Java tool.
Subjects:Sciences > Computer science
Título de Grado:Doble Grado en Ingeniería Informática y Matemáticas
ID Code:61617
Deposited On:07 Sep 2020 10:02
Last Modified:07 Sep 2020 10:02

Origin of downloads

Repository Staff Only: item control page