功能性:能够满足明确和隐含要求的功能;
可靠性:能够处理异常情况,在错误中很快恢复;
易用性:易懂、易学、漂亮好看;
效率性:占用少量资源,提供适当的性能;
维护性:指产品可被修改的能力;
可移植性:指软件产品从一种环境迁移到另一种环境的能力。
(1)是否覆盖源代码
黑盒测试;
白盒测试;
灰盒测试。
(2)按照阶段划分
单元测试:对软件中最小的可测单元进行的测试;
集成测试:在单元测试的基础上,对多个单元组装后的产物进行测试;
系统测试:在集成测试的基础上,把软件看作一个整体进行测试;
验收测试:也叫交付测试,以最终用户的角度确认软件是否符合预期。
(3)是否运行
静态测试;
动态测试。
(4)是否自动化
手工测试;
自动化测试。
(5)更多分类
冒烟测试:对基本功能,主要功能进行测试,避免测试资源的浪费;
回归测试:对BUG或者测试用例进行回归测试;
随机测试:假设第一次接触软件进行随机测试,避免惯性思维;
探索测试:同时做测试设计和测试执行,探索复杂场景,容易被忽略的场景。
(1)瀑布模型
过程:需求分析——概要设计——详细设计——编码——软件测试——软件维护;
优点:阶段清晰;
缺点:依赖于需求分析的成果;
适用:需求明确的、大型项目。
(2)快速原型
过程:快速分析——构造——运行——客户评价;
优点:支持客户的参与,适应需求灵活的项目;
缺点:文档不完善,不满足大型项目的需求;
适用:需求灵活的中小型项目。
(3)敏捷开发模型
在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
优点:敏捷开发的高适应性,以人为本的特性、更加的灵活并且更加充分的利用了每个开发者的优势,调动了 每个人的工作热情。
缺点:由于其项目周期很长,所以很难保证开发的人员不更换,而没有文档就会造成在交接的过程中出现很大 的困难。
(1)V模型
过程:开发半个V,测试半个V;
优点:包含了底层测试和高层测试;
缺点:测试介入时间晚
(2)W模型
过程:开发一个V,测试一个V;
优点:测试介入时间早;
缺点:步骤复杂,对人员要求高。
(1)软件缺陷的定义和标准
定义:软件或程序中存在的各种问题和错误
标准:
未达到需求规格说明书标明的功能;
出现了需求指明不会出现的错误;
超出需求的范围;
未到达需求虽未指明,但应该达到的目标;
软件难以理解,不易使用,运行速度慢。
(2)缺陷报告的关键因素
黑盒测试:
不考虑程序的内部逻辑结构,着眼于程序外部结构,针对软件界面和软件功能进行测试;
测试方法:等价类划分,边界值分析,因果图法,错误推测法,场景法,正交实验设计法,功能图分析法,判定表驱动分析法。
等价类划分:把所有可能的输入数据,划分成若干子集,然后从每一子集中选取少数和具有代表性的数据作为测试用例;
分为有效等价类和无效等价类;
边界值分析:对输入或者输出的边界值进行测试,应当选取正好等于、刚刚大于、刚刚小于边界的值作为测试数据,而不是选取等价类中典型值或任意值作为测试数据;
错误推测法:根据经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例;
因果图法:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况;
判定表驱动分析法:判定表是分析和表达多逻辑条件下执行不同操作的情况工具,优点是:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏;
正交实验设计方法:利用因果图来设计测试用例时, 作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等。
功能图分析方法:
场景设计方法:现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。
白盒测试又称透明盒测试、逻辑驱动测试;
是测试被测单元内部如何工作的一种测试方法;
根据程序内部的逻辑结构及相关的信息来选择和测试用例,对程序的逻辑结构进行测试;
可覆盖全部代码、分支、条件和路径等。
测试方法:
语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖;
语句覆盖:使程序中可执行的语句至少执行一次;
判定覆盖:使得程序中每个判断的取真分支和取假分支至少经历一次;
条件覆盖:要使每个判定中每个条件的可能值至少满足一次;
判定-条件覆盖:使得判断条件中的所有条件可能至少执行一次取值。同时,所有判断的可能结果至少执行一次;
条件组合覆盖:使得所有可能的条件取值组合至少执行一次;
路径覆盖:设计所有的测试用例,来覆盖程序中的所有可能的执行路径。
作者:Mecury_
原文链接:https://blog.csdn.net/qq_35006802/article/details/115358089