【软件测试与质量】课程知识点梳理及习题

本文深入探讨了软件测试的理论知识,包括软件缺陷案例、测试用例设计方法如等价类划分、边界值分析、决策表和因果图法。同时,详细介绍了黑盒测试和白盒测试的原理与应用,如单元测试、集成测试、系统测试和性能测试,以及它们在软件开发过程中的角色。此外,文章还讨论了软件测试的不同分类和常用测试模型,如V模型和W模型。最后,通过实例展示了如何运用这些测试方法设计测试用例,以确保软件的质量和性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、软件测试理论

1、软件缺陷:

2、软件测试:

3、软件测试的基本思路

4、测试用例:

5、软件测试过程:

6、软件测试分类

7、软件测试模型:

 8、其它概念:

二、黑盒测试

1、 黑盒测试:

2、等价类划分法:

 3、边界值分析法:

 4、决策表法:

 5、因果图法:

三、白盒测试

1、白盒测试:

2、逻辑覆盖法:

 3、基本路径测试:

 四、性能测试

1、性能测试:

2、性能指标:

3、常见的性能测试:


一、软件测试理论

1、软件缺陷:

软件缺陷案例:

由于飞行控制软件中的循环语句错误,导致美国首次金星探测飞行失败。

新西兰航空公司的一架客机因计算机控制的自动飞行系统发生故障而撞在阿尔卑斯山上。

美国科罗拉多河水泛滥,但由于计算机对天气形势预测有误,水库未能及时泄洪。

伦敦救护中心的计算机辅助发送系统崩溃,导致这个全世界最大的救护机构全部瘫痪。

美国迪士尼公司的“狮子王”软件在少数系统中能正常工作,但在大众使用的常见系统中无法正常运行。后来证实,这是由于迪士尼公司没有对市场上投入使用的各种PC机型进行正确的测试。

英特尔奔腾浮点除法。

“千年虫”问题。在20世纪70年代,程序员为节约内存资源和硬盘空间,在存储日期数据时,只保留年份的后2位。当2000年到来时,计算机无法分清“00”是指“2000年”还是“1000年”。

北京奥运会门票销售第二阶段,系统访问流量猛增,官方票务网站流量超过了系统设计的承受量,造成公众无法及时提交购票申请。

软件缺陷表现:设计不合理,不是用户所期望的风格、格式,部分实现了软件某项功能,系统崩溃、界面混乱,数据结果不正确、精度不够,存取时间过长、界面不美观

软件缺陷定义:软件产品中存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。

4规则:1.软件未达到软件规格说明书中规定的功能;2.软件出现了产品说明书中指明不会出现的错误;3.软件功能超出了产品说明书中指明的范围;4.软件测试人员讣为软件难于理解,不易使用,运行速度慢,或者最终用户讣为软件使用效果不好。

2、软件测试:

软件测试与质量的关系:软件测试作为一种辅助而且必需的手段,客观反映某个时间段内的软件质量。软件测试是实现软件质量保证的一种途径。软件测试是软件质量技术所采取的主要技术

软件测试与软件开发过程的关系: 测试过程和开发过程贯穿软件过程的整个生命周期,二者相辅相成,相互依赖。

(1)项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。

(2)需求分析阶段:确定测试需求分析、系统测试计划的制定,评审后成为管理项目。

(3)详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。

(4)编码阶段:由开发人员完成自己负责部分的测试代码。当编写工作项目较大时,由专人进行编码阶段的测试任务。

(5)测试阶段(单元、集成、系统测试):依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。

(1)测试过程和开发过程保持同步的关系。

(2)测试过程是对开发过程中阶段性成果和最终产品进行验证的过程,所以两者相互依赖。前期,测试过程更多地依赖于开发过程:而后期,开发过程更多地依赖于测试过程。

(3)测试工作的重点和开发工作的重点可能是不一样的。

软件测试定义:使用人工或自动手段,运行或测定某个软件系统的过程。

软件测试目的:早期的软件测试定义指出软件测试的目的是寻找错误检验被测试系统是否满足规定的需求或弄清预期结果与实际结果之间的差别。以最少的时间和人力找出软件中潜在的各种错误和缺陷,证明软件功能和性能不需求说明相符

软件测试原则:

尽早地和不断地进行软件测试;

测试用例应由测试输入数据和与之对应的预期输出结果两部分组成;

程序员应避免检查自己的程序;

在设计测试用例时,应当包括合理的输入条件和不合理的输入条件;

充分注意测试中的群集现象;

严格执行测试计划,排除测试的随意性;

应当对每一个测试结果做全面检查;

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

3、软件测试的基本思路

1.增加功能:必填项测试、最大长度测试、判重测试、字段具体属性测试、字段数据组合增加测试。

必填项校验:必填项红色*号标识、必填项不填写、必填项填写空格

文本输入框校验:输入限制长度+1个字符、输入等于限制长度个字符、输入限制长度-1个字符、首尾输入空格、文本中间有空格、输入特殊字符、输入特殊字符串NULL、&nbsp、<script>等、输入Javascript凼数、输入全角、半角的特殊符号、数字、空格等、输入and1=1

2.修改功能:在增加功能的测试思路的基础上,考虑什么类型的数据允许修改。

3.删除功能

1)单条记彔删除测试:1.检查由于业务的约束而不能执行删除操作的软件功能实现情况。2.数据删除后,一定要检查数据库,确认该条记录及相关的记录已经被完整删除,避免产生冗余数据。3.需要对软件的删除权限进行检查,对于一些重要的删除操作,检查软件是否设计了相关的删除恢复或删除撤销等操作。

2)多条记彔删除测试:1.若软件有批量删除功能,要检测在批量删除的过程中,当软件系统出现异常时,批量删除功能是否进行了相关的事务处理。2.检查批量删除所消耗的时间。

4.查询功能

1.不输入任何查询条件2.单条件查询,依次输入单个查询项3.组合查询项4.默认条件查询5.模糊查询6.精确查询

5.导入/导出功能:导入/导出文件类型格式测试、导入文件大小测试、导入文件数据格式测试、导入/导出结果(正常/异常)测试

6.计算功能:测试时首先要弄清楚计算逻辑,之后把所有可能出现的情况都测了。

7.业务流程:

4、测试用例:

为什么需要测试用例:更有效、更快地发现软件缺陷;测试用例具有很高的有效性和可重复性,依据测试用例进行测试可以节约测试时间,提升测试效率;测试用例具有良好的组织性和可跟踪性,有利于测试的管理

什么是测试用例:为特定目标而开发的一组测试输入、执行条件和预期结果,其目标可以是测试某个程序路径或核实是否满足某个特定的需求。

5、软件测试过程:

单元测试:对软件中的最小可测试单元进行检查和验证。程序的多个模块可以并行地进行单元测试。主要用白盒测试

什么时候进行程序员编码之后,代码已经通过编译后。测试前期,还要撰写单元测试计划,编写单元测试用例。

由谁来进行白盒测试工程师或开发人员。

依据(1)源程序,代码+注释。(2)《详细设计》

通过标准(1)程序通过所有的单元测试的用例。(2)语句的覆盖率达到100%。(3)分支的覆盖率达到85%。

一般步骤(1)编译运行程序:查看能否正确运行(2)静态测试:《编码规范》、检查代码是否符合规范(3)动态测试:《测试用例》、动态运行代码,检查其实际运行结果

要解决的任务

 通过单元测试可以更早地发现缺陷,缩短开发周期、降低软件成本。

集成测试:用来检查各个单元模块结合到一起能否协同配合,正常运行。重点检测各个模块的接口部分灰盒测试。

什么时候进行:单元测试和集成测试同步进行,在单元测试中先测试几个函数的功能,然后再集成测试一下这几个函数的接口。

由谁来进行白盒测试工程师或开发人员。

依据:(1)单元测试模块。(2)《概要设计》

方法:

1.非增量式集成测试方法:先分别测试每个模块,再把所有模式按设计要求放在一起结合成所要的程序。

2.增量式集成测试方法:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。

1、自顶向下集成测试:从主控模块开始,沿着软件的控制层次向下移动,逐渐把各个模块结合起来。在自顶向下组装过程中,可以使用深度优先策略或宽度优先策略。

自顶向下集成测试法能够在测试阶段的早期验证系统的主要功能逻辑,越重要的控制模块,越能优先得到测试。软件中使用频繁的基础函数的错误也会发现的比较晚。需要编写大量的桩程序,因此在具体实施时可能会遇到比较大的阻力。

2、自底向上集成测试:自底向上集成测试是指从底层模块开始,逐步向上不断集成模块进行测试的方法。

自底向上集成测试一般不需要创建桩程序,但需要创建驱动程序。自底向上集成测试能够在最早时间完成对基础函数的测试,其他模块可以更早地调用这些基础函数,有利于提高开发效率,缩短开发周期。控制能力强、影响面越广的上层模块,其测试时间会靠后,若在测试后期才发现这些模块有问题,则修改这些缺陷就会很困难,或者修改的影响面很广,从而存在很大的风险。

3、三明治集成-混合策略:将自顶向下集成测试和自底向上集成测试有机地结合起来。

改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到单独的测试。

确认测试:用于验证软件的有效性,验证被测软件是否满足需求规格说明书中列出的需求,即验证软件的功能及其他特性是否与用户的要求一致。黑盒测试。

系统测试:验证软件产品是否符合这些质量特性要求的测试。黑盒测试。

 验收测试:在系统测试的后期,以用户测试为主,或有测试人员等质量保证人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。

Alpha<

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值