软件测试概述
作者:晓轩 注意:本人课堂笔记,原创文章,未经许可禁止转载!!!
软件测试的发展方向
图片来源:https://blog.csdn.net/hexieshangwang/article/details/49623345
什么是软件
狭义上认知为:能够提供用户服务的一组程序
这种狭义的认知是我们日常说的软件,指的是实现需求的程序,我们称为软件,但是狭义上永远是狭义上,从专业角度来说软件包括:程序、数据、文档、服务
软件测试定义
? “软件测试为了发现错误而执行程序的过程”,明确提出了"寻找错误"为软件测试的目的。
? 使用人工或者自动的手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清"预期结果"与"实际运行结果"之间的差别
? 使用人工或者自动手段来运行或测试被测试件的过程,其目的在于检验它是否满足规定的需求并清预期结果与实际结果之间的差别
软件"错误"的定义
在测试软件过程中,当发现实际运行结果和预期不符合,不一致时,称为软件错误,业内称为:BUG、缺陷
了解80/20原则
在前人的软件测试过程中,通过经验发现:
- 80%的错误集中在20%的模块中
- 经常出错的模块修复后还会出错概率更高
- 80/20原则结论只是经验之谈,并不是绝对的只带有相对的普遍性
测试原则
- 可追溯性
- 尽早开展预防测试
- 投入/产出原则
- 进行回归测试
- 注意测试中的群集现象
- 同时考虑有效输入和无效输出
- 设立独立的测试机构或委托第三方测试
- 严格执行测试计划、排除测试的随意性
技术分类
-
黑盒测试
- 把被测试对象看做一个黑色盒子,不用看其代码,只要对应功能可以实现就代表没问题,这种测试没有技术含量,我们日常用的一些APP,我们日常使用实际就充当了黑盒测试
-
白盒测试
- 将被测试目标看做一个透明盒子,我们需要看他代码中的逻辑关系,发现代码中的逻辑错误,确保无致命错误,这种测试也是软件测试工程师的主要测试技术
测试步骤(按开发步骤来分)
-
单元测试 顾名思意,对开发中最小单元进行测试,如一个Mapper接口,一般由开发人员进行测试,是黑盒测试的一种 -
集成测试 将几个单元进行集成为一个基本功能进行测试,又称为联调,一般由开发人员进行,是黑盒测试的一种 -
系统测试 系统测试是将已经集成好的软件系统,进行功能测试,一般由测试工程师完成测试,是白盒测试的一种
- 外观:UI界面
- 功能:产品提供作用
- 易用性:是否方便使用
- 安全性
- 兼容性:产品不同的操作系统和硬件下是否能正常运行
-
验收测试 由用户来进行测试,在使用中提出问题后不断完善软件功能,是白盒测试的一种
按具体内容来分
-
功能测试 对程序基本功能进行测试,测试是否有功能缺陷,功能是否满足要求 -
性能测试 对程序实现的算法的时间复杂度和空间复杂度,以及程序整体执行时间进行测试 -
界面测试 系统基本UI进行测试,在特定情况下是否会出现界面UI的变形,ui变化是否达到要求,是否美观等 -
健壮性测试 对在特定情况下,或者故意制造问题情况下程序的自我恢复性如何,如在登录时故意弄错登录名或密码,或者填写中文等 -
安全性测试 对搭建在服务器上运行的程序进行安全测试,如WEB渗透,爬虫等,是否会导致服务器崩溃,私密信息流失等 -
可靠性测试 对软件功能的可靠性进行测试,看功能是否可以达到预期效果,和功能测试区别在于,功能测只是查看表面功能是否完善,可靠性测试可能会看对应功能传输的数据与后台放入数据库的数据是否一致,但是应为不涉及算法,这也是一种黑盒测试 -
兼容性测试 对程序运行平台进行测试,在不同运行平台上是否可以正常运行不会出现错误 -
易用性测试 给第三方普通用户使用,或者软件测试人员使用,从不同角度集合问题,看这款软件如何改进更加符合心理学,如王者荣耀的排位算法陷阱,或者这个程序用起来是否方便 -
本地化测试 对软件投入使用的用户群体是否符合当地习惯,是否符合当地法律,是否符合当地人文 -
配置测试 对软甲的配置设置进行测试,功能是否齐全,是否方便,设计商业利益的会关注某些配置功能的隐蔽性如饿了么等程序的放弃自动续费功能开关 -
安装测试 在不同的硬件以及操作系统上如何安装该软件,安装是否通俗易懂 -
文档测试 对各阶段产生的开发文档进行合法性和一些软件实际对比,看看有没有差错,该文档是否符合标注,这是很重要的一环,好的文档大大提升了代码的可维护性
?
|