Cuál es la diferencia entre QA y pruebas de software?

Depende exactamente de lo que se entienda por ambos.

En términos muy generales, las "pruebas de control de calidad" son principalmente pruebas de "caja negra", interactuando con él como lo haría un usuario (aunque incluyendo usuarios administrativos y demás) desde el exterior. Esto incluye tanto la ejecución de planes de prueba manualmente, como la ejecución de scripts de prueba automatizados, utilizando herramientas que simulan la interacción del usuario. Las pruebas de control de calidad pueden incluir la creación de condiciones inusuales, como "qué ocurre si el usuario hace esto y lo otro, pero el servidor de colas no funciona" o "... pero la fuente de datos está en medio de una actualización", etc. También suele limitarse a observar lo que un usuario podría observar directamente, a diferencia del contenido de la base de datos, los elementos ocultos de una página web, etc. Puede incluir algún nivel de evaluación comparativa y pruebas de carga, como "cuánto tiempo tarda en ejecutar una búsqueda si hay mil millones de registros y queremos unos determinados cinco de ellos" y "cuántas peticiones por segundo podemos disparar a esta cosa antes de que se caiga, o al menos no nos dé una respuesta en medio segundo".

Por el contrario, las "pruebas de software" suelen incluir las "pruebas de control de calidad" descritas anteriormente, además de las pruebas unitarias, las pruebas de integración, las cosas que un usuario no observaría normalmente (como los elementos ocultos de la página web), la evaluación comparativa de funciones específicas y otras cosas similares que requieren el conocimiento del funcionamiento interno. En resumen, cualquier forma en que se pueda probar el software.