软件测试—软件测试基础知识—(一)软件测试的定义和(二)软件测试的分类

(一)软件测试的定义
软件测试: 在规定的条件下对程序进行操作,以发现程序错误 ,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
规定条件 -->测试用例
发现程序错误–>找bug
衡量软件质量–>质量评估
满足设计要求–>满足要求
(二)软件测试的分类
(1)按开发阶段划分:
(1.1)单元测试(Unit Testing)
又称模块测试。对软件的组成单位进行测试,其目的是检验软件基本组成单位的正确性。测试的对象是软件测试的最小单位:模块。【例如:登录测试】
(1.2)集成测试(Integration Testing)
集成测试也称联合测试(联调)、组装测试:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。集成主要目的是检查软件单位之间的接口是否正确。【例如:京东购物用微信支付】
(1.3)系统测试(System Testing)
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
【例如:房子能不能住人(功能) 房子抗不抗台风(性能);QQ能不能注册,能不能登录,能不能聊天发消息(功能) 人数太多会不会卡顿(性能)】
回归测试:对老功能的回归
冒烟测试:对新功能的冒烟
(1.4)验收测试(Acceptance Testing)
是部署软件前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。向软件购买者展示该软件系统满足原始需求。
实施验收测试的策略有三种:
(a)正式验收测试
(b)非正式验收测试或 α测试
(c)β测试

(2)按是否手工执行划分:
(2.1)手工测试(Manual Testing)
手工测试是由人一个一个的输入用例(第一步干啥,第二干啥),然后观察结果,和机器测试(指使用机器去测试其实就是手工测试,例如:手机、电脑)相对应,属于比较原始但是必须的一种。
(2.2)自动化测试(Automation Testing)
所谓自动化测试,就是在预设条件下运行系统或应用程序,评估运行结果。(预先条件包括:正常条件和异常条件)。简单来说,自动化测试就是把人为驱动的测试行为,转化为机器执行的一种过程。

(3)按是否查看代码划分:
(3.1)黑色测试(Black-Box Testing)
黑盒测试也是功能测试,测试中把被测的软件当做一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据。
(3.2) 白盒测试(White-Box Testing)
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是指打开盒子,去研究里面的源代码和程序结果。
(3.3)灰盒测试(Gray-Box Testing)
灰盒测试是介于白盒测试和黑盒测试之间的一种,灰盒测试多用于集成测试阶段,不仅关注输入、输出的正确性,同时也关注程序内部的情况。

(4)按是否运行划分:
(4.1)静态测试(Static Testing)
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。【静态测试属于白盒测试,白盒测试不一定是静态测试,可能运行代码】
(4.2)动态测试(Dynamic Testing)
动态测试是指通过运行被测程序,检查运行结果与预期结果的差异。【黑盒测试属于动态测试,动态测试不一定是黑盒测试,还可能是灰盒测试】

(5)按测试对象划分:
(5.1)非功能测试
(5.1.1)性能测试(Performance Testing)
检查系统是否满足需求规格说明书中规定的性能。(反应速度,快慢,手机好卡)
通常表现在以下方面:
(a)稳定性【例如:一万人的时候和十万人的时候,甚至一百万的时候系统会不会卡顿,会不会崩掉】
(b)响应时间【例如:等待相应的时间是否过慢。2,3,5秒】
©吞吐量(TPS)
(5.1.2)安全测试(Safety Testing)
安全测试是一个相对独立的领域,需要更多的专业知识。如:WEB的安全测试、需要熟悉各种网络协议、防火墙、CDN、熟悉各种操作系统的漏洞、熟悉路由器等。(例如:病毒,支付的时候钱会不会丢掉?)(安全测试工程师要求高,一个公司差不多就一个)
(5.1.3)兼容性测试(Compatibility Testing)
兼容性测试主要指软件之间能否很好的运作,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响导致系统的崩溃。
(a)平台测试【例如:各种不同品牌型号、不同操作系统(如:android、iOS)的手机是否兼容】
(b)浏览器测试【例如:不同浏览器兼容性测试(火狐、谷歌、360等)】
©软件本身是否向前或向后兼容【例如:本版本和上一版本是否兼容】
(d)测试软件是否与其他相关软件兼容【例如:同时下载两款软件是否都能正常使用】
(e)数据兼容性测试【数据之间有一定的隔离性,两个软件里面的数据不会串、相互隔离、兼容(微信里面的好友是微信里面的,支付宝里面的好友是支付宝里面的)】支付宝的链接在微信打不开
(5.1.4)文档测试(Document Testing)
(a)开发文件:可行性研究报告(这个东西可不可行)、 软件需求说明书(对功能的一系列描述) 、数据要求说明书、概要设计说明书(简单描述软件的功能,各个功能之前的联系)、详细设计说明书、数据库设计说明书、模块开发卷宗。 (这是比较全的开发文件,)
(b)用户文件:用户手册(边看手册边运行软件,看看手册写的对不对)、操作手册。用户文档的作用:改善易安装性;改善软件的易学性与易用性;改善软件可靠性;降低技术支持成本(用户自己就会了,就不问技术人员了)。
©管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。
(d)在实际的测试中,最常见的就是用户文件的测试,例如:用户操作说明书等。
(e)文档测试关注的点:
(e1)文档的术语
(e2)文档的正确性
(e3)文档的完整性
(e4)文档的一致性(前后保持一致)
(e5)文档的易用性
(5.1.5) 易用性(用户体验性测试)(User Ability Testing)
易用性是交互的适应性、功能性和有效性的集中体现。又叫用户体验测试。
(5.1.6) 界面测试(User Interface Testing)
界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。
(5.1.7) 安装测试(Installation Testing)
安装测试是指:测试程序的安装、卸载。最经典的就是APP的安装、卸载。
(5.2)功能测试(Functional Testing)

(6)按测试实施的组织划分:
(6.1)α测试(Alpha Testing)
(6.2)β测试(Beta Testing)
(6.3)α测试与β测试区别:

  1. 测试的场所不同 :Alpha测试是指把用户请到开发方的场所来测试,Beta测试是指在一个或多个用户的场所进行的测试。【例如:游戏内测版本】
  2. Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。Beta测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。
  3. Alpha测试先于Beta测试执行。通用的软件产品需要较大规模的Beta测试,测试周期比较长 。
    (6.4)第三方测试(Third-party Testing)
    介于开发方和用户之前的组织测试。【例如:众测网】

(7)按测试地域划分:
(7.1) 国际化测试(International Testing)
软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测试则是针对这类软件产品进行的测试。由于软件的全球化普及,还有软件外包行业的兴起,软件的本地化和国际化测试俨然成为一个独特的测试专门领域。(国内中文,用外国的语言测试软件,一些敏感词汇之类的)
(7.2) 本地化测试(Localization Testing)
本地化测试的对象是软件的本地化版本。之前我们一起学习的测试都是本地化测试。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值