软件质量保证(SQA):在整个软件项目的周期里保证软件产品质量的活动和结果的集合。随着各种各样的软件开始模型,其软件质量保证的活动也不一样。在传统的瀑布开发模型里,软件质量保证在产品定义阶段会参与文档的审核,在开发阶段参与代码的审核和单元测试/白盒测试等,在集成阶段搜集测试结果和报告并加以分析,在交付后实施客户的反馈和后续的改进。当然,软件质量保证还可以制定代码的书写规则,产品各个阶段的准入/准出标准,产品的质量标准和成熟度,定义软件缺陷的种类和优先级以及权重等。
  软件测试:一般的理解是根据特定的测试用例集来执行测试,并记录相应的测试结果。软件的质量在后往往经过软件测试这个环节才能确定。只有通过了严格的软件测试,软件质量才会得以保证。在软件质量保证的各个环节活动中,软件测试往往在中后期。一般不参与文档的审核以及代码的审核。
  在很多公司,软件测试和软件质量保证往往会混为一谈。事实上两者确实有很多的相似和想同之处,只是各有侧重点而已。件测试侧重的是执行软件来确保软件质量,而软件质量保证侧重的是确保软件产品的各个过程符合一定的流程以及规章制度。软件质量保证其中有一个很重要的一环是软件测试,虽然其测试可能由另外的团队来完成,但软件质量保证人员一定要关注测试团队的测试结果。软件质量保证要保证全员的参与,在各个环节都有软件质量保证的参与并且确保每个环节都按照预订的标准在执行。这个和目前比较流行的全面质量管理(TQM)比较相近,即不是在单个环节中注重质量,而是在所有的生产环节都要注重质量,即所有人员都为质量负责。