一、软件测试的定义
软件测试的典型定义是在规定的条件下操作程序,发现错误,评价软件质量。 因为软件由文档、数据和程序组成,所以软件测试的对象也不是程序本身,而是包含软件形成过程的文档、数据和程序。
软件工程化越来越受到重视,随着软件规模的不断扩大,软件分析、设计的作用越来越明显,但在实践中,由于分析和设计初期已经存在的错误越来越多,软件的需求和设计阶段
二.软件质量
软件质量有以下定义:
1991年,由ISO 9126定义
软件质量是软件满足规定或潜在用户需求特性的总和
1999年,ISO 14598定义
软件质量是软件特性的总和,是软件满足规定或潜在用户需求的能力。
一般对质量的理解是实体的“属性”,“属性”好就是质量好,但这是不够的。 “属性”是内部特性,内部特性好并不一定意味着能完成好的用户任务,所以软件质量也是软件特性具备“能力”的体现。
软件质量包括三个部分:“内部质量”、“外部质量”和“使用质量”。 也就是说,软件满足规定或潜在用户需求的能力是通过这三个方面来衡量的。
三、软件测试与质量保证的区别
质量保证:质量保证的工作是通过预防、检测和改进来保证软件的质量。 QA运用“全面质量管理”和“流程改进”原理开展质量保证工作。 关注的是软件质量的管理和测量。 QA活动也有一些测试活动,但关注的主要是软件质量的检查和测量。
软件测试:测试和质量保证同样与软件开发过程密切相关,不同的是不关心软件开发过程的活动,而是分析过程的产物和开发的软件。 测试活动需要假设软件存在潜在的问题。 测试的所有操作不仅是为了验证每件事都是正确的,而且是为了找出更多的问题。 分析、跟踪、回归测试在测试中发现的问题也是软件测试的重要工作,因此软件测试是保证质量的重要环节。
四.软件测试的目的
早期的软件定义指出,软件测试的目的是查找错误,并找到尽可能多的错误。 在那之后,提出了以下目的。
1 .测试是程序的运行过程,目的是发现错误
2 .好的测试用例是可以发现以前没有发现的错误
3 .成功的测试之一是发现了以前没有发现的错误的测试
4 .有人提出软件测试不仅是为了发现缺陷,更重要的是通过衡量软件质量来提高软件质量。
综上所述,软件测试的目的可以归纳如下。 软件测试通过以最小的人力、物理和时间发现软件中潜在的各种错误和缺陷,纠正各种错误和缺陷来提高软件质量,并消除软件发布后潜在的软件缺陷和错误带来的风险另外,测试是以评价程序或系统属性为目标的活动,测试是软件质量的测量和评价,验证软件质量满足用户需求的程度,为用户选择和接收软件提供有力的依据
备注:测试是为了证明软件是否可用,即是否符合用户的需要。
五.软件测试原则
原则1 :所有测试都必须追溯到用户的需求
软件设计和开发的目的是让用户完成预定的任务,满足用户的需要,但软件测试表明的缺陷和错误是软件不能达到用户的目标,不能满足用户的需要。
原则2 )应尽快、不断地进行软件测试
由于软件生命周期的各个阶段都可能发生错误,因此不应将软件测试视为软件开发活动中独立阶段的工作,而应贯穿于开发的各个阶段。 另外,需要尽快开始测试。 如果测试在生命周期中进行得足够快,就可以提高被测试软件的质量。 这是预防测试的基本原则。
原则3 :不可能进行完整的测试,测试需要中止
在有限的时间和资源条件下,不可能确定所有软件的缺陷,主要有三个原因。
1 .输入量太多
2 .输出结果太多
3 .传球组合太多
原则4 :测试无法显示软件的潜在缺陷
也就是说,测试只能证明软件有缺陷,不能证明软件没有缺陷。
原则5 :充分注意测试中的集群现象
经验表明,测试后程序中残留的错误数与该程序中发现的错误数或错误检出率成比例。 根据该规律,对错误聚类的分段进行重点测试,提高测试效果。
原则6 :程序员不要检查自己写的程序
这有两个原因。 一个是心理原因,一个是思维定式的原因,一个是不想承认自己的错误,还有,思维定式使自己很难发现错误。 因此,为了达到测试的目的,应该避免这种情况。
原则7 :尽量避免测试随意性
应该从工程的角度理解软件测试,他是有组织的、有计划的、有步骤的活动
附件:内容从《软件评测师教程》开始