习题课
因果图法
自动饮料的售卖 机,可以输入1.5毛钱或者两块钱硬币,一瓶饮料的价钱1.5
可乐,雪碧,红茶,按哪一种饮料,出哪一种饮料,如果输入2块钱按相应的饮料,出饮料的同时会找出5毛硬币
(1)找出所有的输入和输出
输入:1.5块钱,2块钱,可乐,雪碧,红茶
输出:可乐,雪碧,红茶,5毛硬币
(2)输入输出之间的关系:
输入1.5,按可乐,输出可乐
输入1.5,按雪碧,输出雪碧
输入1.5,按红茶,输出红茶
输入两元,按可乐,输出可乐和0.5元
输入两元,按雪碧,输出雪碧和0.5元
输入两元,按红茶,输出红茶和0.5元
(3)根据输入输出的关系画因果图
进阶篇
1.测试金字塔理论
按开发阶段划分
按开发阶端划分
(1)单元测试:
对程序的一个单元进行测试,这个单元可能是一个类,也可能是一个方法
测试阶段:
开发前(TDD) Test ----Driven-----Development,
测试驱动开发
开发后
测试对象:单元模块
测试人员:白盒测试工程师,或开发工程师
测试依据:代码注释+详细设计文档
测试方法:白盒测试
测试内容:
1.模块接口的测试:输入输出 输入参数的数量,输入的类型,类型的排列,输出是否符合文档接口设计的文档
2.局部数据结构测试
3.路径测试
4.错误处理测试
5.边界测试
java的单元测试如何去做?
1.pom.xml添加依赖
2.下载JUnit插件
选中被测试类
ctrl+shift+T创建单元测试类
@ingnore忽略测试方法
@Before:在测试方法执行之前,先执行此方法
@after:在测试方法之后执行
@Test:每一个单元测试方法上必须有,不然不会被执行
2.集成测试
集成:按照一定的策略(逻辑)组合单元模块形成的一个功能模块
测试阶段:单元测试之后:
测试方法:灰盒测试;
测试人员:开发工程师;白盒测试工程师;
**测试依据:**概要设计文档,详细设计文档;
测试内容:接口之间数据的传输,全局数据结构,
模块组装的正确性,单个功能模块缺陷对整体的影响,
模块与模块的功能冲突
局部数据结构属于
(3)系统测试
测试阶段:集成测试之后;
测试方法:黑盒测试方法;
测试人员:黑盒测试工程师;
测试依据:需求文档;
测试内容:功能;界面;易用性,性能,安全性,兼容性,可靠性;
(1)回归测试:
引入新的代码的时候进行回归测试;
增加新功能,修改bug等;
回归测试的策略很重要:评估回归测试的范围,自动化测试
(2)冒烟测试:
系统的主要功能和核心流程进行测试;
评判系统是否进入正式的测试环节色依据准入原则
提测用例:很少,主要针对本次迭代的主要功能和系统的核心流程进行测试用例的设计
4.验收测试
客户按照用户的需求对系统进行测试;
测试人员:客户
测试内容:和系统测试一致,文档测试(软件设计文档,功能设计文档,
用户使用手册,详细功能使用文档)
二.按照实施组织划分
1.α测试
用户到开发环境下进行测试;
优点:测试过程中发现的问题可以及时反馈给开发人员,及时得到解决;
缺点:用户在开发环境下,容易受开发人员和测试人员的影响,容易在思维上受限制
2.β测试
实际用户在真实的环境下进行测试,测试环境地域不受限制;
测试的结果更接近用户实际使用情况的反馈;
β测试再α测试之后
二者对比:
地域不一样,α是在开发环境下,β测试再用户实际使用环境下;
时间的集中程度也不一样,α测试时间比较集中,β测试时间相对比较分散;
3.第三方测试
由软件的第三方测评机构进行测试
三.按照是否运行划分
1,静态测试
ISO25010静态质量标准
2.动态测试
写测试用例.运行程序.对系统进行测试,查看分析系统的输出是否符合预期
四. 按是否手工划分
手工测试:设计测试用例,一步一步手动执行测试用例,对系统进行测试
缺陷:量大,容易出错,效率低;
优点:测试时比较灵活,可以根据不同的情况进行测试用例的修改和完善
自动化测试:
把手工测试的测试用例转换成自动化脚本,让机器去执行脚本,给定预先设计好的条件和结果的预判去执行
接口自动化,性能自动化,web自动化,app自动化
dijago RobertFrameWork Unittest selenium,
java,python
自动化的意义:解放双手,提高测试效率,节省大量的的人力资源
如何判断一个自动化脚本是否有价值?自动化脚本的使用率 使用频率高越有价值
什么项目可以使用自动化?
(1)项目周期长,不停的迭代;
(2)适用于需求比较稳定的项目;
按照是否查看代码划分
黑盒测试
测试的时候只关心输入和输出,不去看功能的内部逻辑,代码具体实现
黑盒测试设计测试用例的方法有哪些?
等价类,边界值,因果图,正交设计法,错误猜测法,场景法
白盒测试
对程序的内部的逻辑,结构,与功能进行的测试
单元测试就是属于白盒测试
白盒测试的方法有哪些:语句覆盖法,逻辑覆盖法,循环覆盖法
逻辑覆盖法:
路径覆盖,路径都要走
if(A&&B){
}else if(C && D){
}
判定覆盖:让判定为真走一遍,让判定为假走一遍
判定组合覆盖
条件覆盖
灰盒测试:介于白盒测试和黑盒测试之间,关心输入和输出,又关心程序内部的逻辑(集成测试,接口)
按地域划分测试
软件国籍化:
开发一款软件的时候,应用了一种技术,可以是的软件使用不同国家的语言和当地的风俗习惯儿不用修改软件的源码
如何进行软件国际化的测试?
软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测
试则是针对这类软件产品进行的测试。由于软件的全球化普及,还有软件外包行业的兴起,软件的本地化和国际化
测试俨然成为了一个独特的测试专门领域。
本地化和国际化测试与其他类型的测试存在很多不同之处。下面是本地化和国际化测试 的一些要点。
1、本地化后的软件在外观上与原来版本是否存在很大的差异,外观是否墼齐、不走样。
2、是否对所有界面元素都进行了本地化处理,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音的提示)、日志等。
3、在不同的屏幕分辨率下界面是否正常显示。
4、是否存在不同的字体大小,字体设置是否恰当。
5、日期、数字格式、货币等是否能适应不同国家的文化习俗。例如,中文是年月日,而英文是月日年。
6、排序的方式是否考虑了不同语言的特点。例如,中文按照第一个字的汉语拼音顺序排序,而英文按照首字母排序。
7、在不同的国家采用不同的度量单位,软件是否能自适应和转换。
8、软件是否能在不同类型的硬件上正常运行,特别是在当地市场上销售的流行硬件上。
9、软件是否能在Windows或者其他操作系统的当地版本上正常运行。
10、联机帮助和文档是否已经翻译,翻译后的链接是否正常。正文翻译是否正确、恰当, 是否有语法错误。软件本地化和国际化测试是一个综合了翻译行业和软件测试行业的测试类型。它要求测 试人员具备一定的翻译能力、语言文化,同时具备测试人员的基本技能
国际化测试
本地化测试
按照测试对象划分
1,界面
文字:大小,类型,粗细,是否斜体,颜色,是否加下划线,是否连接
图片:大小,颜色,清晰度,排版.是否重叠;
控件:按钮,文本框,滚动条,下拉框,勾选框
有效控件,无效的控件,置灰,高亮
备注:提示说明是否清晰
整体布局的排版
响应式测试:
系统的页面可以随着屏幕的分辨率不同而自适应
响应式测试需要注意的:
(1)页面上的文字随着屏幕分辨率变化的时候不会出现重叠,遮挡,小时
(2)页面上的图片随着屏幕分辨率变化的时候不会出现重叠,遮挡,消失,模糊
(3)页面上上的功能随着屏幕分辨率变化的时候可以正常使用
(4)要严格遵循UI设计图;
(6)页面在不同的分辨率进行衔接,衔接是否丝滑
界面测试常见的错误:不合适的快捷键,文字的消失.重叠展示,重复的快捷键,没有对齐
2.容错性测试:
系统因为外界环境的影响或者用户的误操作导致系统内部的发生错误,但是系统可以自我处理,是系统正常稳定运行.
数据级别:日期,货币,时间
验证级别:查询信息的前后空格,验证码输入错误,同一个系统前后信息的容错处理
环境容错处理:当系统运行时出现断电.断网,服务器故障时,可以随时切换用电器,网络,备用服务器,并让用户无感知.
界面容错处理:进行一些危险或者用户禁用操作的时候,有没有用户提示,或者屏蔽这些功能,当用户输入最大位数的时候,禁止输入
用户只输入一些规定好的固定选项的时候,以下拉框的形式展示
灾难恢复性测试:人为让系统崩溃,让系统出现电网断电系统崩溃的极端情况,检测系统是否可以自动恢复数据,以及恢复这些数据的正确性和耗时
3.文档测试
软件开发过程中产生的文档进行测试,软件设计文档,流程图文档,功能分析设计文档,用户使用手册
主要测试文档和软件系统的一致性
文档的属于是否恰当,正确性,完整性,易用性
4.兼容性测试
web系统的兼容性:
windows Windows 10 windows 7
Mac ios不同版本
浏览器:不同浏览器的当下市场上的主流版本
原因:
不同浏览器的内核不一样,对页面的解析不一样
App兼容性测试
ios iphone12 iPhone6s iPhone13…不同的苹果机型
Android (华为 OPPO VIVO 小米 锤子 魅族) 每个品牌又不用的机型,在机型上进行Android
系统的主流版本的测试
3.软件本身向前向后的兼容性:
4.软件是否和其他相关软件的兼容性
5.数据的兼容性
5.易用性
用户体验测试(UE)
符合标准规范,直观性,灵活性,舒适性,实用性
6.安装 / 卸载测试:
app的安装方式有哪些?
应用商店 , 安装包 命令行 , 压缩包解压 , 第三方应用安装
app的卸载有哪些方式?
应用商店,桌面卸载,第三方应用的先卸载,命令行卸载
断电断网情况下的安装和卸载
安装过程中空间不足怎么办,
如果安装过程中如果暂停,继续安装是否会成功安装
安装和卸载的过程中出现了手机关机,手机重新开机后是否可以正常安装和卸载
卸载的过程中是否可以清除产生的数据
7.性能测试:
为什么要进行性能测试?
(1)希望用户能够有很好的体验,系统能够快速的响应用户的需求
(2)系统能够处理预期的用户负载;
(3)系统能够处理预期的事务数量
(4)系统在满足以上指标的情况下,可以稳定的运行,用户有良好的体验
响应时间:3/5/10 TPS(Transaction per second):每秒处理的事务量(工具);
吞吐量:系统在单位时间内处理的信息量;
点击率:每秒向服务器发送请求的个数
系统在运行时占用的资源的情况:
cpu,内存,磁盘,宽带,耗电量
8.安全测试:
Sql注入:
上传下载:
对于付费,保密的文件进行测试,防止会被半路截取信息
在上传的时候,上传有病毒的文件
上传过大的文件或者下载过大的文件;
防爬虫测试 XSS注入 黑客 病毒的入侵
9.内存泄露测试
在分配内存的时候,没有及时释放内存,或者无法释放,导致系统运行占的内存越来越多,系统运行越来越慢,甚至奔溃;
原因:使用API函数不正确;
程序写的有问题,
无法释放内存空间
静态测试:走读代码 工具进行测试