一、测试是对软件质量的度量
测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期。
二、测试的目的
测试的目的是为了发现软件中存在的错误。其根本目的是为了提高软件质量,降低软件项目的风险。
软件的质量风险表现为两个方面:
①内部风险:在项目即将销售的时候发现有重大的错误,从而延迟发布日期,市场机会的流失;
②外部风险:在项目发布后,用户发现了不能容忍的错误,引起索赔、法律纠纷,以及用于支付客户的费用和流失客户的风险;
三、软件测试的定义
测试的含义:以检验产品是否满足需求为目标。
软件测试的定义:在规定的条件下进行操作,以避免错误 ,对软件的质量进行评估。
四、软件质量的定义
软件质量包含:内部质量、外部质量、使用质量三部分。
软件质量的定义:软件特性的总和,软件满足规定或潜在用户的需求能力。软件的需求能力要从内部、外部、使用中的表现来衡量。
五、软件测试的目的
早期定义目的为:寻找错误,尽最大可能找出最多的错误。
软件测试的目的:
①测试是程序的执行过程,目的在于发现错误
②一个好的测试用例在于能发现至今未发现的错误
③一个成功的测试是发现了至今未发现的错误的测试
测试的目的:以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过纠正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
六、软件测试的原则
①所有的软件测试都应追溯到用户需求;
②应当把“尽早地和不断的进行软件测试”作为软件测试者的座右铭;
③完全测试是不可能的,测试需要终止。
④测试无法显示软件潜在的缺陷
⑤充分注意测试中的群集现象
⑥程序员应避免检查自己的程序
⑦尽量避免测试的随意性
七、软件测试分类:
(1)按照开发阶段划分为:单元测试、集成测试、系统测试、确认测试和验收测试;
(2)按照测试实施组织划分为:开发方测试(alpha测试、验证测试)、用户测试(β测试=beta测试)、第三方测试
开发方测试:在软件开发环境下,由开发者检测和证实软件的实现是否满足软件设计说明或软件需求说明的要求。
用户测试:在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况用户测试不是指用户的验收测试,而是指用户的使用性测试,由用户找出软件应用的过程中发现的软件的缺陷和问题,并对使用质量进行评价。
第三方测试:由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。一般情况下是在模拟用户真实应用环境下,进行软件确认测试。
(3)按照测试技术划分:白盒测试、黑盒测试、灰盒测试。也可以划分为:静态测试 和 动态测试。