Resumen Una buena estrategía para probar un componente de software, implica la generación de todo el conjunto de casos que participan en su funcionamiento. Mientras que probar sólo algunos valores puede no ser suficiente, hacer una prueba exhaustiva de todas las combinaciones no siempre es factible. Una técnica alternativa para lograr este objetivo es conocida como combinatorial testing. Combinatorial testing es un método que puede reducir los costos e incrementar la eficacia de las pruebas de software para muchas aplicaciones. Se basa en la construcción de pequeños casos de prueba funcionales, que proporcionan la cobertura de las configuraciones más comunes. Los covering arrays son objetos combinatorios, que han sido aplicados para realizar pruebas funcionales en diversas áreas, entre ellas, las pruebas de componentes de software. El uso de los covering arrays permite probar todas las interacciones, de un determinado tamaño, entre los parámetros de entrada, utilizando el menor número de casos de prueba posible. Para las pruebas de software, el problema fundamental es encontrar un covering array con el mínimo número de renglones posible, lo que reduciría: el número de pruebas, el costo y el tiempo empleado en el proceso de pruebas de software. Debido a la importancia de la construcción de covering arrays óptimos o cuasi-óptimos, se ha llevado a cabo mucha investigación sobre el desarrollo de métodos eficaces para construirlos. Hay varios métodos reportados para la construcción de estos modelos combinatorios, entre ellos están: (1) métodos algebraicos, (2) métodos recursivos, (3) algoritmos voraces, y (4) algoritmos aproximados (metaheurísticas). Los métodos basados en metaheurísticas, especialmente los basados en simulated annealing han proporcionado los resultados más precisos en varias ocasiones hasta la fecha. El simulated annealing es un método de optimización estocástica de propósito general que ha demostrado ser una herramienta eficaz para resolver una amplia gama de problemas de optimización combinatoria. Sin embargo, uno de los mayores inconvenientes del simulated annealing es el tiempo que requiere para obtener soluciones óptimas o cercanas a lo óptimo. En esta tesis, se propone el desarrollo de un algoritmo de simulated annealing para la construcción de covering arrays de fuerza t >= 2, para aplicarlos al desarrollo de pruebas funcionales de componentes de software. Además, se propone el uso de las tecnologías de Grid Computing y Supercomputing para hacer frente a la gran cantidad de tiempo que requiere el algoritmo de simulated annealing para obtener covering arrays óptimos o cercanos al óptimo.