Publication:
Computación cuántica: pruebas de mutación

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2020
Advisors (or tutors)
García Merayo, María de las Mercedes
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
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.
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.
Description
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.
Unesco subjects
Keywords
Citation