Cela dépend exactement de ce que vous entendez par les deux.
Très généralement, le "test QA" est principalement un test de "boîte noire", en interagissant avec lui comme le ferait un utilisateur (bien qu'incluant les utilisateurs administratifs et autres) de l'extérieur. Cela inclut à la fois l'exécution de plans de test manuellement, et l'exécution de scripts de test automatisés, en utilisant des outils qui simulent l'interaction avec l'utilisateur. Les tests d'AQ peuvent inclure la mise en place de conditions inhabituelles telles que "que se passe-t-il si l'utilisateur fait telle ou telle chose mais que le serveur de mise en file d'attente est en panne" ou "...mais que la source de données est en cours de mise à jour", etc. Elle est aussi généralement limitée à l'observation de ce qu'un utilisateur pourrait observer directement, par opposition au contenu de la base de données, aux éléments cachés d'une page Web, etc. Il peut inclure un certain niveau d'analyse comparative et de test de charge, comme "combien de temps faut-il pour exécuter une recherche s'il y a un milliard d'enregistrements et que nous voulons un certain nombre de cinq d'entre eux" et "combien de requêtes par seconde pouvons-nous lancer à cette chose avant qu'elle ne tombe, ou du moins ne nous donne pas une réponse en une demi-seconde".
En revanche, les "tests de logiciels" sont généralement censés inclure les "tests d'AQ" décrits ci-dessus, plus les tests unitaires, les tests d'intégration, les choses qu'un utilisateur n'observerait pas normalement (comme les éléments cachés d'une page web), l'évaluation comparative de fonctions spécifiques, et d'autres choses de ce genre qui nécessitent la connaissance des rouages internes. En bref, toutes les façons dont un logiciel peut être testé.