软件测试用例篇(5)
测试是否运行代码去划分?
1)静态测试:
不运行代码,检查代码的风格,格式是否符合公司的标准规范,检查代码的逻辑结构是否满足需求要实现的功能
看代码,不运行代码,通过静态分析代码的语法,编写规范,逻辑,结构,功能的实现,看开发的逻辑和软件测试文档的需求是否一致,是否符合公司的一些标准和规范
静态质量标准:看看代码的功能是否符合用户的需求
代码性能上的表现:响应时间,资源利用率,容量,功能性,可靠性,有效性,可以执行
1.2)兼容性:手机app在不同的品牌上用户体验的效果
1.3)容错率,可靠性:当用户进行了一些错误操作,和一些外来因素的影响,系统内部对于处理这些突发情况的表现;
1.4)维护性:以后我还可以重复使用,有错误还可以很好的进行修改
1.5)可移植性:适用于不同的平台
1.6)检查项:代码风格和规则审核,程序设计和结构的审核,走查,审查和技术复审手册
2)动态测试:运行代码,给程序相应的输入,看看是否得到相应的输出
写测试用例,运行代码程序,对系统进行测试,查看分析系统的输出是否符合预期
2.1)构造测试用例
2.2)执行程序
2.3)分析程序的输出结果
新的静态质量标准:
1)从代码的功能上去检查,看看代码是否符合用户的需求
2)是否满足系统对用户系统的需求,资源的利用率还有容量
3)兼容性:不同手机的品牌上面和不同安卓的版本系统上面
4)易用性:用户体验性
5)可靠性:由于用户的一些误操作,和外界环境的一些影响,就是发生一些不可控错误的时候,咱们的系统是否可以处理这些异常,让我们的用户看起来并没有发生这些错误一样,也相当于容错性
6)安全性
7)维护性:重复利用,有错误出现错误可以进行修改,可测试,不是说吧代码写得很死,以后不方便添加新的功能,没法修改
8)可移植性:在不同的平台上面都可以正常的使用
按照是否进行手工划分
1)手工测试(黑盒测试人员):
设计测试用例,运行程序,运行系统,一步一步手动的执行测试,对系统进行测试,分析结果,是一种比较传统的测试方法,也是现在用的最多的测试方法,是按照测试用例来手工的去测试系统的功能
缺陷:量大,人总是会有疲惫的时候,容易出错,效率比较低,人脑哪有机器转动的快
优点:
思路比较灵活变换,配到一些特殊的情况可以进行灵活地处理,例如让机器来写测试用例,一旦写好了,就是不可变的了;但是对于人来说,觉得当时写测试用例的时候写的不够全面,所以我们在修改测试用例增加一些测试点,这样测试用例的设计就是灵活可变的了,或者当功能和需求有一点点改变的时候,是可以随时修改测试用例的,测试比较灵活,可以根据不同的功能进行测试用例的修改和完善,所以说无论何时,自动化测试都不可以取代手工测试
2)自动化测试
定义:把手工测试的测试用例转化成自动化脚本让机器执行,但是不能随着实际的情况来进行改变机器按照人为设定好和预设好的条件来执行,这些预设包括正常的行为和异常的行为,去检查软件系统有没有设定的条件,有没有符合预期;
方方面面:接口自动化,性能自动化,web自动化,app自动化,dijigou,RobertFrameWork上面两个都是框架 unittest
2.1)自动化的意义:解放双手,提高测试效率,节省人力和资源
自动化测试的条件:系统功能稳定之后
2.2)如何判断一个自动化脚本有价值?
主要是看自动化脚本的使用率,使用频率越高越有价值
2.3)什么样的项目可以使用自动化脚本?
1)项目周期要长,不停的迭代,可能一周就结束了,以后也不会迭代开发,等到程序都开发完了,你的自动化脚本还没有写好呢?
2)适用于需求比较稳定的项目,测试完之后可以保存,你的项目功能一直发生变化,就意味着我要去频繁的修改自动化脚本,这是很麻烦的
信息注册的测试用例:
程序的需求是:
姓名:1-20个字符,不可以包含数字,不可以有空格
年龄:18-60之间的整数,不能为空格
注册信息是非必填项
一:姓名:
等价有效类:1-20个非数字非空格字符,大写,小写,特殊字符;
无效等价类:1-20数字,1-20空格,1-20空格数字字符空格混合,1-20数字和空格混合,1-20数字空格混合,1-20空格字符组合,不输入,大于20个字符(无论是非数字,非空格);
边界值:0个字符,1个非数字非空格字符,两个非数字非空格字符,19个非数字非空格字符,20个非数字非空格字符,21个非数字非空格字符
二)年龄:
年龄:17岁,18岁,19岁,59岁,60岁,61岁
有效等价类:18-60之间的整数
无效等价类:18-60之间的非整数,小于18的整数,小于18的非整数;大于60的数,大于60的非整数,为空,小数;
边界值:17,18,19,59,60,61
三)因果图法
自动饮料的售卖机
1)可以输入1.5毛钱硬币或者2元钱硬币
2)一瓶饮料的价钱1.5
3)如果输入两元钱,出饮料的同时会找回5毛硬币;
4)饮料的品种:可乐,红茶,雪碧,出哪种饮料取决你于你付完钱后按下哪个键
一:找出输入和输出:
输入:1.5元硬币,2元硬币,可乐,雪碧,红茶
输出:5毛硬币,可乐,雪碧,红茶
二:分析输入与输出之间的关系:
1)输入1.5元,按下可乐,输出可乐
2)输入1.5元,按下雪碧,输出雪碧
3)输入1.5元,按下红茶,输出红茶
4)输入2元,按下可乐,输出可乐和0.5元
5)输入2元,按下雪碧,输出雪碧和0.5元
6)输入2元,按下红茶,输出红茶和0.5元
三:根据输入输出的关系画出因果图:
四:根据我们画出的因果图画判定表:
这里面出现了两种特殊情况:
1)输入一个钱数,连续输入两次按钮,只会第一次输入的按钮有效
输入2块 输入1.5元 输入可乐 按下红茶 输入雪碧 中间结果1 中间结果2 5毛硬币 可乐 雪碧 红茶 1 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0
0 1 0 0 1 1 1 0 0 0 1 1 1 根据判定表写测试用例:
1)输入两元钱,按下可乐,输出可乐并输出5毛钱硬币
2)输入两元钱,按下雪碧,输出雪碧并输出5毛钱硬币
3)输入两元钱,按下红茶,输出红茶并输出5毛钱硬币
4)输入1.5元钱,按下可乐,输出可乐
5)输入1.5元钱,按下红茶,输出红茶
6)输入1.5元钱,按下雪碧,输出雪碧
7)输入2元钱,不按下按钮,不出任何饮料,并且超过一定的时间限制,并给用户提示“请按下饮料按键"
8)输入合理的硬币,多次按下不同的饮料按键,出第一次按下的饮料,并给用户进行提示,投币一次,只能按一个饮料按键
9)我们先输入2元钱,再进行输入1.5元,饮料机就会提示,不能连续输入多次硬币.......
除此之外还有自动饮料售卖机断网(无法计算),断电(会进行提示),没零钱找了,饮料机会进行提示:请提示工作人员找零,饮料机损坏(贴显示),饮料及饮料不足,案件损坏,按键失效
场景测试法:
当我们从网上买书的时候:
登录---->查找书籍----->放入购物车----->结算(生成订单)---->支付
可能出现的错误:
顺利情况:顺利登陆,成功查找到目标书籍,把书籍添加到购物车里面,在购物车里面选中书籍,点击结算,到订单页面支付成功,购书完毕
1)登录:密码错误,用户名错误,验证码错误,手机号登陆的时候有可能错误,用户名不存在
测试用例举例:
输入密码错误,提示输入密码有误,请重新输入
超过三次输入密码错误,账户会锁定
用户名输入错误,提示用户名输入有误,请重新输入
手机号输入错误,无法收到验证码
2)查找书籍:缺货,下架,没有该书集
3)放入购物车:购物车达到上限
4)结算:满减活动(本店铺满减,跨店满减,满减卷是否可以进行叠加)
5)支付:支付方式的切换,当余额不足的时候是否自动的切换其他支付方式,进入订单页地址的选择,支付密码错误,选择让其他方式支付,面部,指纹,免密支付,分期支付
按地域划分测试:本质上来说就是一个软件在不同的本地化测试,在本地化有一个很好的表现
国际化测试和本地化测试
软件国际化:进行软件设计和软件开发的时候,使用一种工程技术,使得软件在转化为不同的国家语言的时候,甚至可以不需要修改源码,适应不同国家的语言以及不同国家的风俗习惯等等,适用于不同国家的人都使用它
1)这些软件可以适用于不同国家的语言,以及适用于不同国家的风俗习惯人民的使用习惯;例如我们国家的字体,宋体..,辛丑年,微软雅黑;
开发一款软件的时候运用了一种工程技术,可以使得软件适用不同国家的语言和当地的风俗习惯而不用修改软件的源码,比如说手机,一款手机初始化的时候,会让你选择你是哪一个区域的,选择文字(选中国就显示汉语,选英国就显示英文)
2)如何进行软件国际化的测试?
1)点击切换了不同的国家之后,本地化之后的软件是否和原来的版本存在很大的差异,外观是否整齐,软件功能是否和原来的一致?
2)是否对所有的界面元素进行了本地化处理:包括对话框,菜单,工具栏,状态栏,提示信息,包括声音的提示还有日志;
3)语言,切换语言,提示信息,提示语音,提示英文还是提示中文(年月日,辛丑年,日历国外没有这回事),是否符合这个国家人的使用习惯,文字,日期,风俗习惯;
4)一些悲痛的日子(国难日)和传统节日,页面要变成灰色,所以要知道国家的一些重大的日子(8月15日),在过年的时候,要做一些比较喜庆的页面,在国外的圣诞节,会有一些喜庆的页面符合外国人的需求,比如说当伟大的医生李文亮去世的时候,许多的软件APP会变成黑色
3)在不同的屏幕分辨率下界面是否正常显示,不同国家使用的硬件关键设备,芯片技术是不同的,硬件不一样,不同的功能在系统上面的表现是完全不一样的(即使是同一款APP),这些APP在不同的屏幕上面,分辨率不同的情况下,是否页面能够正常的展示,以及在正常的展示情况下,功能是否发生了变化;
4)不同的国家的语言长度不同,因为语言的长度很可能会影响页面的排版,是否存在不同的字体大小,字体设置是否恰当
5)日期,数字格式,硬币货币(元角分,相同的价钱折算成不同国家的货币)等是否能够适应不同国家的文化风俗,例如中国是年月日,英国是日月年,不同国家的度量单位是不一样的(KG,G,榜)
6)在不同的国家采用不同的度量单位,软件是否能够自适应和转换;
7)繁体语言切换(1,还是一,还是繁体中文的壹)
8)排序的方式是否考虑了不同语言的特点,例如,按照第一个字的汉语拼音顺序排列,但是英文按照首字母进行排序
9)软件是否可以在Windows上面或者其他操作系统的当前版本上面运行,是否可以在不同类型的硬件上面运行,特别是当地市场上的销售的流行硬件上面,一些APP是必须在一些硬件上运行,如果说在其他的硬件上面,是不可以运行的,如果不能在硬件上面运行,就要修改软件的配置
10)联机帮助和文档是否已经翻译,翻译后的链接是否正常,正文翻译是否正确,恰当,是否有语法错误,让本地使用者可以看懂,被使用者是否可以看懂这些文档
3)软件本地化
一个微信群100以上的人,发了一个100元的红包,100个人抢红包,抢完红包之后,如何进行判断强的钱数和发送的钱数是一致的?
一)发送红包的接口:我们要进行发送红包,前排肯定调用了一个发送红包的接口,里面肯定会有一些参数:
1)输入参数:发的钱数,发的红包肯定是在群里面发的,这时就会有一个群ID,发红包的这个人的 We ChatID,输入参数:发的钱数(比如说发了100元钱)
2)还有一个输出参数,当你发送出去红包的时候肯定是有一个红包ID;
二)接受红包的接口:我们接受红包和发送红包的时候共用一个接口
1)输入参数:红包ID,抢红包的人的WeChatID,还有群ID
标识哪一个人在哪一个群抢了哪一个红包
2)输出参数:强的钱数
三)使用接口测试工具:postman jmeter Charles
需要解决的问题:30个WeChatID需要我们在数据库里面提前设置好
四)解决方案:
1)发送红包的接口只调用一次,得到红包ID;
2)我们调用抢红包的接口30次,我们分别进行传入30个不同的WeChatID,记录每一次抢到的金额,我们把这些金额都加起来和发红包的钱数进行比较;
1)当我们按照开发阶段来进行划分的时候,分成单元测试,集成测试,系统测试,还有验收测试,他们进行测试的依据,其实是软件测试开发模型V模型的每一个阶段,我们要知道他们的测试内容是什么,以及他们属于什么类型的测试,是黑盒还是白盒?
2)系统测试分为冒烟测试(作用,是测试人员是否可以进行测试的原则,主要是对我们的系统的一个核心功能和流程的一个测试)和回归测试(啥时候做回归测试?)
3)按照实施组织去划分,就是让那些人员去测试:a,b,第三方测试,b测试是在a测试之后进行的
4)静态测试:IOS25010
1)黑盒测试设计测试用例的方法有哪些?
边界值、等价类、错误推测法、功能分解法、因果图、判定表、正交试验法、场景法
2)按照开发阶段划分的哪几个阶段用的是黑盒测试?
集成测试,系统测试,验收测试,手工测试,自动化测试3)单元测试:白盒测试
黑盒测试:
相关文章:
软件测试用例篇(5)
测试是否运行代码去划分? 1)静态测试: 不运行代码,检查代码的风格,格式是否符合公司的标准规范,检查代码的逻辑结构是否满足需求要实现的功能 看代码,不运行代码,通过静态分析代码的语法,编写规…...
三个修饰符
三个修饰符三个修饰符一、abstract1.1 修饰类1.2 修饰方法二、final2.1 修饰类2.2 修饰方法2.3 修饰变量2.3.1 修饰属性2.3.2 修饰局部变量2.3.3 修饰方法的参数2.3.4 常量三、static关键字3.1 修饰属性3.2 修饰方法3.3 修饰代码块3.4 继承时的执行顺序三个修饰符 一、abstrac…...
JVM调优面试题——参数命令专题
文章目录1、JVM参数有哪些?1.1、 标准参数1.2、-X参数1.3、 -XX参数1.4、 其他参数1.5、 查看参数1.6、 设置参数的常见方式1.7、 常用参数含义2、JVM常用命令有哪些?2.1、jps2.2、jinfo2.3、jstat2.4、jstack2.5、jmap3、你会估算GC频率吗?4、 内存溢出…...
单例模式(设计模式详解)
单例模式 描述 单例模式是一种创建型模式,它的目的是确保一个类只有一个实例,并提供全局访问点。这个实例可以被多个客户端共享,从而避免创建多个实例所带来的资源浪费和不必要的复杂性。 实现 懒汉模式 public class LasySingleton {priv…...
设计一份关于文化遗产视频的调查问卷
参考文献:[1]任洁. 重庆美食类短视频传播策略研究[D].重庆交通大学,2021.DOI:10.27671/d.cnki.gcjtc.2021.000699.📰1 设计背景现已制作一些关于文化遗产的时长4-5分钟的视频,需要面向在校大学生收集他们对视频的看法从而分析视频的传播效果&…...
Linux内核移植
内核移植半导体厂商会从linux内核官网下载某个版本,将其移植到自己的CPU上,测试成功后就会将其开放给该半导体的厂商的CPU开发者,开发者下载其提供的linux内核,然后将其移植到自己的 产品上。1、NXP官方开发板Linux内核编译测试编…...
忆享科技优化入职培训加强人效管理全面迎接新挑战
-优化入职培训-忆享科技加强人效管理入职培训课程 ✦ KPI系统上线 ✦ 砥砺前行前言许多企业随着自身的不断发展,对于各类人才引进需求也越来越迫切,一批批新员工的加入,公司规模逐渐扩大,给公司带来了全新的血液。但在大量新员工加…...
Spring——注解开发依赖注入和管理第三方bean
自动装配(引用类型) 环境准备: 文件结构如下图所示,Dao层的实现类里面有一个save方法,Service层里面的实现类有一个BookDao的声明和一个set方法,同时也有一个save方法,配置类的扫描范围如图所示 在当前的一个测试类当…...
shell可能考你但是不常用的基础($篇)
前言 当你面试的时候,可能要说的架构什么都准备好了,也说的七七八八,结果到最后问了一些基础的问题答不上来或者没想起来就很容易造成社会性死亡,一个没答上来道心被破,后面就更容易懵逼了 通常造成这个问题的原因是写…...
项目管理必备:如何绘制一份优秀的甘特图?
本文一共分为两部分—— 分享60Excel甘特图模板,简单省事儿分享两种甘特图制作教程,高效快捷 第一部分——60甘特图模板 分享一些项目管理甘特图的模板,省事儿!高效!简单! Excel甘特图表模板自取…...
【点云学习】多时相激光雷达点云
多时相雷达数据(multi-tempral LiDAR data) 1 一种多时相激光雷达数据建筑物变化检测方法-汪承义(2013) 背景:空间分辨率的提高引入了“类内可分性”增加与“类间可分性”降低;遮挡与阴影的存在使问题变得…...
使用QT C++编写一个随机生成网络ip地址的程序
根据网络搜索结果,使用QT C编写一个随机生成网络ip地址的程序的示例代码可能如下: cpp #include <QCoreApplication> #include <QRandomGenerator> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(a…...
Web前端学习:章三 -- JavaScript预热(三)
六九:函数的变量提升 函数的变量提升没有var高,var是最高的。 先提var,再提函数 解析: 1、4行打印之前没有定义变量,预解析触发变量提升 2、先提var,再提函数。所以先把var提升到最上面,然后提…...
java实用小技巧:判断list是否有重复项
在项目中经常会遇到这样的场景,就是一个list,根据某种规则,我要去判断里面是不是有重复的项。 难度不高,但有点烦,所以专门开一篇文章来记录一下,争取弄一个相对简洁的写法。 先看一个简单的例子…...
SQL优化常用招数(上)
文章目录 一、查询SQL尽量不要使用select *,而是具体字段二、避免在where子句中使用 or 来连接条件三、尽量使用数值替代字符串类型四、使用varchar代替char五、技术延伸,char与varchar2的区别?六、where中使用默认值代替null七、避免在where子句中使用!=或<>操作符八…...
C++并发之探索编程三
文章目录1. 等待事件或等待其他条件1.1 凭借条件变量等待条件成立1.1.1 std::condition_variable1.1.2 std::condition_variable_any1.1.3 std::condition_variable和std::condition_variable_any之间的区别上个章节我们讨论了如何对共享数据的一个保护,通过std::lo…...
某智能驾驶企业:CACTER云网关为O365系统护航
01 客户背景 某智能驾驶企业是一家国际性的高科技创新型企业,在智能驾驶领域处于全球领先地位,专注于为广大客户提供个性化的智能驾驶解决方案,共建美好智能新时代。 使用产品:CACTER邮件安全云网关 02 痛点难点问题 根据Corema…...
网络安全与信息安全的主要区别讲解-行云管家
生活中工作中,我们经常可以听到信息安全与网络安全这两个词语,但很多小伙伴对于两者区分不清楚,今天我们小编就给大家来简单讲解一下这两者的主要区别吧! 网络安全与信息安全的主要区别讲解 1、定义不同 网络安全是指网络系统的…...
Zabbix6.2利用模板和自定义监控项监控华为AR3260路由器
1:登录路由器的WEB管理控制台。在系统管理中找到SNMP然后开启SNMP代理,SNMP的版本可以只选择v2c都选择也无所谓,然后点击新建一个团体。 2:团体名称输入默认的public即可,在WEB端显示的是乱码,但是不影响使…...
MySQL Connector/C++使用过程中的问题
Linux环境下,使用mysql connector cpp的时候,链接的时候报错: /usr/bin/ld: warning: libssl.so.10, needed by /usr/lib64/libssh2.so.1, may conflict with libssl.so.1.1 /usr/bin/ld: ext/openssl/.libs/xp_ssl.o: undefined reference …...
PdgCntEditor三步搞定PDF书签目录自动生成
1. 为什么你需要PDF书签目录? 每次打开几百页的PDF文档,像无头苍蝇一样滑动滚动条找内容?这种体验我太懂了。上周处理一份300多页的技术手册,光是翻目录就花了半小时,直到我发现PdgCntEditor这个神器。它能把杂乱无章…...
2026考公全攻略:在校生如何选岗、如何备考、如何上岸一次讲清
很多在校生最近都在问:现在开始准备公务员考试,还来得及吗先说结论:来得及,但前提是你要走对路径这几年考公环境已经发生明显变化报考人数持续增加岗位信息越来越透明单纯刷题已经不再有效考公正在从拼努力,变成拼策略…...
G-Helper:华硕笔记本电池健康管理的终极轻量化解决方案
G-Helper:华硕笔记本电池健康管理的终极轻量化解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地…...
Nuxt4 官网访问来源统计的实现
今天我遇到一个值得记录的问题,场景是这样的:官网后台需要做访问统计,我得把访问来源和访问目标的 URL 传递给后端。绕了好一阵子,才终于理清楚。 项目结构上,Nuxt 4 负责官网展示,后端是 Java 服务。核心…...
C++的std--ranges算法自定义比较器与等价关系在集合操作中的运用
C20引入的std::ranges库为算法操作带来了革命性改进,其中自定义比较器与等价关系的灵活运用,显著提升了集合操作的表达能力。通过精确控制元素间的比较逻辑,开发者能够实现更复杂的业务需求,例如处理自定义对象集合或实现非标准排…...
自动化立体仓库堆垛机设计(设计说明书+17张CAD图纸+开题报告+任务书+实习报告+中期检查报告+外文翻译)
自动化立体仓库堆垛机作为现代物流系统的核心设备,其设计需兼顾机械结构强度、运动控制精度与系统稳定性。该设计通过三维建模与力学仿真验证,确保堆垛机在高速运行时的结构可靠性,同时优化货叉伸缩机构与载货台升降导轨的配合间隙࿰…...
高效对接Tiktok电商API:PHP开发者的一站式解决方案指南
高效对接Tiktok电商API:PHP开发者的一站式解决方案指南 【免费下载链接】tiktokshop-php Unofficial Tiktok Shop API Client in PHP. Use API version 202309 and later 项目地址: https://gitcode.com/gh_mirrors/ti/tiktokshop-php 在瞬息万变的电商生态中…...
小红书数据采集自动化工具实战:突破反爬限制的零基础搭建指南
小红书数据采集自动化工具实战:突破反爬限制的零基础搭建指南 【免费下载链接】XiaohongshuSpider 小红书爬取 项目地址: https://gitcode.com/gh_mirrors/xia/XiaohongshuSpider 高效数据采集是内容分析与市场研究的基础,但面对小红书等平台的反…...
哲学家吃饭问题没搞懂?用Python模拟信号量帮你彻底理解进程同步(附可运行代码)
用Python动态模拟哲学家进餐问题:从死锁到解决方案的完整实践指南 在操作系统的学习中,哲学家进餐问题堪称进程同步与死锁的"经典案例"。这个看似简单的场景却蕴含着并发编程中最棘手的挑战——如何协调多个进程对有限资源的访问。本文将带你…...
终极解决方案:uesave-rs 让你轻松编辑虚幻引擎游戏存档
终极解决方案:uesave-rs 让你轻松编辑虚幻引擎游戏存档 【免费下载链接】uesave 项目地址: https://gitcode.com/gh_mirrors/ue/uesave 还在为游戏存档损坏而抓狂吗?面对一堆看不懂的二进制数据,想要修改游戏进度却无从下手ÿ…...




