(本章是对于mooc上课程的笔记基于个人理解的总结)
该课程链接
(此小节了解即可 指数 *)
1.1.1软件测试的定义
定义1:在特定条件下运行系统或构件,观察或记录结果,对系统的某方面做出评价。
定义2:分析某个软件项以发现和现存的和要求的条件之差别并评价此软件项的特征。
即:软件测试=评错+度量
1.1.2软件测试特征
1.1.3 软件测试的目的:
1.1.4 软件测试的一些关键问题
软件测试证伪而非证真
今早和不断地进行软件测试
重视无效数据和非预期使用习惯的测试
避免检查自己的程序
充分注意测试中的群集现象
用例要定期评审(用例:一组测试输入、执行条件以级预期结果)
应当对每一个测试结果做全面检查
测试现场保护和资料归档
经济性原则
(此小节要大概知道每种测试是什么 指数**)
1.按开发过程分类
单元测试:在编译通过后由白盒工程师或开发工程师依据源程序和详细设计文档进行测试。主要用白盒测试,先静态检查代码是否符合规范,然后动态运行代码,检查其实际运行结果,关注容错处理和边界值等问题。
**集成测试:**由白盒工程师或开发工程师依据源程序和概要设计文档测试。主要测试个单元测试模块之间的接口。
**系统测试:**对软件系统的功能、性能以及软件所运行的软硬件环境进行整体测试,主要由黑盒工程师在系统集成完毕后进行测试。前期主要满足功能后期主要满足性能以及兼容性。
**验收测试:**按项目任务合同书等对整个系统进行测试与评审,由以用户为主的测试人员或质量保证人员参与觉得是否接受或拒收系统。包括α测试(用户、开发测试人员共同参与)和β测试(内测后完全交给用户公测)。
2.按是否运行进行分类
静态测试:是指不是及运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
动态测试:运行程序,输入相应的测试数据检查是否符合预期。
3.按是否查看代码分类:
**黑盒测试:**不关心是什么,只关心软件的输入数据和输出数据。
白盒测试:研究代码和程序结构。包括:
功能测试:检查实际软件功能是否符合用户需求。
性能测试:比较高级,后面介绍。
4.其他分类
回归测试:软件修改后重新进行的测试。(降级bug:修改原来的bug后带来的bug)
冒烟测试:大规模测试前先验证下基本功能是否实现,是够具备可测试性。(如果基本功能都实现不了大规模测试意义不大)。
随机测试:随机输入数据模拟用户操作。
(此小节了解 指数 *)
目的:确保每个发现的缺陷都可以得到解决。
软件缺陷定义:
软件未达到说明书中表明的功能
软件出现了产品说明书中指明不会出现的功能
软件功能超出产品说明书中指明的范围
软件未达到茶品说明书中指明应达到的目标。
软件测试人员或用户认为难以理解和使用、运行慢或不好
(此小节了解 指数 *)
1.4.1 软件质量特性
静态质量特性:包括结构化的、可维护的、可测试的代码以及正确而又完整的文档。
动态质量特性:包括正确性、可靠性、完整性、一致性、易用性、性能等。
正确性:软件输入域(所有可能输入的集合)种每个元素都能得到预期结果。
正确性是一个良好的愿望,但不是软件测试的目标
可靠性:给定时间间隔和条件 下无故障运行概率。
1.4.2 软件的测试特性
测试的复杂性:
黑盒测试的复杂性:输入量太大、输出结果太多、软件实现途径太多、软件规格说明没有一个客观标准。
白盒测试的复杂性:如途径穷举测试,十分复杂。
测试的经济性:要经济合理.
**1.5.1 软件测试的充分性:**充分性是用来度量一个给定的测试集T是否能验证软件P满足其需求R。充分性度量是相对于具体的测试充分性准则C的。
覆盖域:对于每一个测试准则C,我们都可以得到一个有限集(测试需求或软件代码),称之为覆盖域Ce。
如果覆盖域Ce仅依赖于被测软件的代码,则称准则Ce为一个白盒测试充分性准则
如果覆盖域Ce仅依赖于被测软件的需求,则称准则C是一个黑盒测试的充分性准则。
其他的测试充分性准则都是二者的混合
测试覆盖率:执行测试集,覆盖域中被满足需求所占比例。
测试充分性准则C2:
如果软件P中的每一条路径都被遍历至少一次,则认为测试集T针对(P,R)是充分的。
1.5.2软件测试终止准则
1.基于测试阶段的原则:每个测试阶段制定具体的测试结束标准。
2.基于测试用例的原则:测试用例经过评审后可以作为测试结束的参考标准。
3.基于缺陷收敛趋势及缺陷修复率原则:通过缺陷的趋势图走向来判断测试是否可以结束。
4.基于验收测试的原则:被验收就结束。
5.基于覆盖率的原则:达到一定覆盖率即可。
6.软件项目终止,测试终止。