1.1. 什么是软件测试

首先来看一下百度百科的解释

软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。 Glenford J.Myers曾对软件测试的目的提出过以下观点:

  1. 测试是为了发现程序中的错误而执行程序的过程。

  2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

  3. 成功的测试是发现了至今为止尚未发现的错误的测试。

  4. 测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。

  5. 这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性。

  6. 没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。

  7. 另外,根据测试目的的不同,还有回归测试、压力测试、性能测试等,分别为了检验修改或优化过程是否引发新的问题、软件所能达到处理能力和是否达到预期的处理能力等。

1.1.1. 软件测试原则

  1. 测试人员应该尽早介入,要在需求阶段就开始介入,因为最严重的错误不外乎是系统不能满足用户的需求。

  2. 设计测试用例时应考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下还要制造极端状态和意外状态,如网络异常中断、电源断电等,即容错测试和容灾测试。

  3. 应该充分注意测试中的群集现象。

  4. 对错误结果要进行一个确认过程。安排其他人员尝试重现问题,并且做好定位于bug定级。

  5. 制定严格的测试计划。一定要制定测试计划,并且要有指导性。测试时间安排留好buff,不要希望在极短的时间内完成一个高水平的测试。

  6. 妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。