一、(What)是软件测试
软件测试是一个确认和验证软件应用或软件程序的过程。主要确认和验证以下几点:
1.软件应用或程序是否符合用户需求
2.软件应用或程序是否符合引导它设计和开发的技术要求
3.软件应用或程序是否如预期中工作良好
软件测试通常可以发现程序代码中必须修复的严重错误或问题,之所以用“严重”这个词语,是因为我们都知道在软件测试过程中必须给每个发现的错误赋予一个相对应的严重性级别。 在测试的计划过程中,我们是通过审查需求文档和设计文档来决定什么是重要的缺陷。在审查文档的过程中,我们努力寻找一个问题的答案,这个问题是“这个应用程序主要面向的用户是谁?”一般来说,一个重要缺陷是从客户角度可以影响到应用程序的可用性或功能应用性的问题。在桌面仪表板上采取交通灯颜色的照明计划可能是在需求定义中不费脑子就可以想出的主意,而且在设计中也很容易实施。但实际上未必完全可行的,如果我们在测试中发现该应用程序的主要业务赞助商是色盲。突然间,它就会成为一个重要缺陷。(事实上,约8%的男性和0.4%的女性都会有一定程度或一定形式上的色盲。) 软件开发的质量保证方面有一些书籍列举出开发人员应该遵循的开发标准流程或非常好的做法,这在本文中就不一一详细列举了。保证软件质量不全部都是测试团队的责任,测试小组无法提高质量;他们只能衡量,虽然说目前存在一种争论:如果在编码之前设计测试可以提高软件质量,因为开发人员可以利用这些信息来思考自己如何设计代码以及调试程序。 软件测试有三个主要的目标:核查、验证、发现缺陷。
? 核查过程:证实该软件符合技术规范。一个“规范”是一个描述功能的条款,对特定先决条件下一个具体的输入值输出的可度量值进行描述。一个简单的规范实例“通过SQL对单一用户帐户的多月帐户汇总表进行查询检索并返回八个数据域,将返回的数据按月份排序。”
? 验证过程:证实该软件满足业务需求。一个简单的例子,一个业务需求是“通过选择一个分支机构的名称,分行的客户经理的相关信息将出现在一个新的窗口,例如该窗口提供对该经理客户群的简要说明:<list of data elements>“。其他业务需求对如何归纳并格式化显示数据提供更详细的说明。
? 缺陷是预期结果和实际结果之间的差异。该缺陷的最终来源可追溯到上文中提到的规范,软件设计或程序编码阶段。