En la ingeniería del software el crecimiento de la capacidad tecnológica ha estado siempre unido con el incremento de la complejidad, y ello a su vez ha propiciado el nacimiento de nuevas técnicas para hacer frente a dicha complejidad. Las Líneas de Producto Software han aparecido en la ingeniería del software como una técnica cuyo objetivo es el de poder crear diferentes variantes software a partir de una infraestructura común, del mismo modo que se hace en otros sectores industriales.La investigación en Líneas de Producto Software se ha centrado hasta la fecha en los aspectos de arquitectura software. Por medio de la "Ingeniería del Dominio" se definen los aspectos genéricos de todas las variantes y se especifican las entidades software genéricas denominadas activos básicos o "core assets", mientras que con la "Ingeniería de Aplicación" se establece el mecanismo de generación de las distintas variantes a partir de los elementos genéricos.Un aspecto no menos importante, que hasta ahora no se ha investigado con tanta extensión, es el de las Pruebas de Línea de Producto Software. La cuestión fundamental es decidir hasta qué punto es posible probar las diferentes variantes de forma común. En el caso más optimista, probando una funcionalidad sobre la parte general se podría dar por probada sobre todas las variantes. Por contra, en el caso más pesimista, las pruebas de una Línea de Producto Software serían exactamente iguales que las pruebas de varios productos independientes que se hicieran de forma separada. Como término medio, aunque se pruebe la misma funcionalidad en todas las variantes, se podrían reutilizar por ejemplo la arquitectura de pruebas, los casos de prueba, el entorno de pruebas, etc.Las Líneas de Producto Software pueden implantarse también para sistemas software de Tiempo Real. En este caso, los métodos de prueba propios de los sistemas de tiempo real se ven confrontados con la nueva exigencia de manejar la pruebas de las diferentes variantes.