(1)软件测试基础
程序员文章站
2022-03-06 17:02:51
...
1.测试的定义
在特定的条件下运行系统或构件,观察或记录结果,对系统的
某个方面做出评价。
分析某个软件项以发现和现存的和要求的条件之差别(即错误)
并评价此软件项的特性。(测试是用来做度量的)(即测试是用来评错的)
2.软件测试的特征
(1)可以从需求开始, 而不仅仅是代码
也就是通常所说的狭义的测试和广义的测试,狭义的测试往往是注重代码的。而广义的测试则是认为测试应当尽早的进行,比如需求的评审,设计的评审等。
(2)既是静态活动也是动态活动
(3)用来预防失效
(4)有助于在软件生命周期中尽早发现问题以降低修复缺陷所需的成本
(5)过程中应创建可重用的测试件
3.软件测试的目的总结为以下三点:
(1)以最少的人力、物力、时间找出软件中潜在的各种错误和缺陷,通过修正错误
和缺陷提高软件质量,回避潜在的软件错误和缺陷给软件造成的商业风险。
(2)通过分析测试过程中发现的问题可以帮助发现当前开发工作所采用的软件过程
的缺陷,以便进行软件过程改进;同时通过对测试结果的分析整理,可修正软
件开发规则,并为软件可靠性分析提供相关的依据。
(3)评价程序或系统的属性,对软件质量进行度量和评估,以验证软件的质量满足
用户的需求,为用户选择、接受软件提供有力的依据。
软件的测试目的是工程性的,以最终发现软件的错误为最终的目的!
4.软件测试的关键问题(原则)
(1)软件测试是证伪而非证真
(2)尽早地和不断地进行软件测试
(3)重视无效数据和非预期使用习惯的测试
(4)程序员应该避免检查自己的程序
(5)充分注意测试中的群集现象(二八原则)
(6)用例要定期评审
(7)应当对每一个测试结果做全面检查
(8)测试现场保护和资料归档
(9)软件测试的经济型原则
5.软件质量保证
(1)软件质量保证是贯穿软件项目整个生命周期的有计划和有系统的活动,经常针对整个项目质量计划执行情况进行评估,检查和改进,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。
(2)确保软件项目的过程遵循了对应的标准及规范要求且产生了合适的文档和精确反映项目情况的报告,其目的是通过评价项目质量建立项目达到质量要求的信心。软件质量保证活动主要包括评审项目过程、审计软件产品,就软件项目是否真正遵循已经制定的计划、标准和规程等,给管理者提供可视性项目和产品可视化的管理报告。
6.软件测试的分类
《1》开发阶段的测试
(1)单元测试(unit testing):
单元测试又称模块测试,针对软件设计中的最小单位程序模块,
进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设
计测试用例。多个模块可以平行地独立进行单元测试。
单元定义: C中指一一个函数,Java中 指-一个类,在图形化的软件中,
单元一般指1个窗口,1个莱单。
(2)集成测试(integration testing):
集成测试又叫组装测试,通常在单元测试的基础上,将所有程序模块进行
有序的、递增的测试。重点测试不同模块的接口部分。
(3)系统测试(system testing):
指的是将整个软件系统看为一个整体进行测试,
包括对功能、性能、以及软件所运行的软硬件环境进行测试。
目前系统测试主要由黑盒测试工程师在系统集成完毕后进行测试,
前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,
以及系统在不同的软硬件环境中的兼容性等。
(4)验收测试(acceptance testing):
验收测试指按照项目任务书或合同、供需双方约定的验收依据文档
进行的对整个系统的测试与评审,决定是否接收或拒收系统。在系统
测试的后期,以用户测试为主或有测试人员等质量保证人员共同参与
的测试。
1. a测试:指的是指的是由用户,测试人员、开发人员等共同参与
的内部测试。
2.β测试:指的是内测后的公测,即完全交给最终用户测试
口正式的验收测试
《2》是否运行
(1)静态测试(static testing):
是 指不实际运行被测软件,
而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
a:代码测试: 主要测试代码是否符合相应的标准和规范。
b:界面测试:主要测试软件的实际界面与需求中的说明是否相
符。
c:文档测试:主要测试用户手册和需求说明是否真正符合用户
的实际需求。
(2)动态测试(dynamic testing):
是指实际运行被测程序,输入相应的测试数据,
检查实际输出结果和预期结果是否相符的过程。
动态测试方法为结构和正确性测试
《3》是否查看到源代码
(1)黑盒测试(black -box testing):
指的是把被测的软件看做一个黑盒子,我们不关心盒子里面的结构是什么
样子的,只关心软件的输入数据和输出数据。
(2)白盒测试(white-box testing) :
指的是把盒子打来,去研究里面的源代码和程序结构。
《4》其他测试
(1)回归测试(regression testing):
是指软件被修改后重新进行的测试,如重复执行上一个版本测试时
的用例,是为了保证对软件所做的修改没有引入新的错误而重复进行的测试。
(2)冒烟测试(smoke testing)
是指在对一个新版本进行系统大规模的测试之前,先验证一下软件
的基本功能是否实现,是否具备可测试性。
(3)随机测试(random testing)
是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的
真实操作,并发现一些边缘性的错误。
上一篇: linux 安装mysql5.7.23(rpm安装)
下一篇: 软件测试-白盒测试作业