热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

软件测试用例篇

在自己的简历上可以书写掌握黑盒测试用例的方法,等价类,边界值,因果图等在简历上可以写掌握黑盒测试设计测试用例的方法,如等价类

在自己的简历上可以书写掌握黑盒测试用例的方法,等价类,边界值,因果图等

在简历上可以写掌握黑盒测试设计测试用例的方法,如等价类,边界值,场景设计法

掌握java单元测试框架JUnit,并掌握响应式页面的测试



1.软件测试的方法

测试用例:是为了实施测试而而向被测试系统提供的一组集合,这组集合包括测试环境,操作步骤,测试数据,预期结果等要素;

好的测试用例使一个不熟悉业务的人也可以依据用例来很快的进行测试,一个好的测试用例应该包括以下优点:

1)用例表达清楚,无二义性,小张理解是一个意思,小王理解是一个意思;一定要描述清楚,对一个功能的测试都没有描述清楚,无法保证此次软件测试的质量;

2)用例的可操作性强,例如进行性能测试,并发,该系统的支付功能1000个人同时并发使用的时候,他的系统的响应时间,这人也太多了,每个人的反应速度都不一样,按鼠标的时间;可以用性能测试工具,进行模拟用户的操作,模拟1000个用户进行支付功能,这样可操作性就强,测并发的操作性要强

3)测试用例多种情况混在一起,容易漏测,一条用例只有一个预期结果;

4)测试用例的可维护性要好

5)用户对需求的覆盖率高

6)暴露BUG的能力强


2.测试用例的整体设计方法


1.根据需求来写测试用例:

首先要保证的需求的合理性和正确性,首先要验证需求,理解需求,把大需求细化成小需求,根据每一个小需求提炼出功能点,根据每一个功能点来发散的考虑他的测试用例,去写测试用例,用具体设计测试用例的方法;


举个例子:购买3000元以内的华为智能手机

功能点:3000元以内-->小于等于3000;京东618活动,华为mate 40Pro原价59999,秒杀1元钱,这是符合用户需求;输入3001,2999;

品牌手机----华为;别买苹果,输入小米

手机---智能,别买老人机,输入老人机,返回false

手机功能的验证:打电话,接电话,发短信,收短信


再举个例子:

1 .用户没有收到激活邮件,可在登录界面录入电子邮箱和密码后,再次发送邮件;

1)未收到激活邮件,分成两个测试点,已经收到激活邮件/没有收到激活邮件

已经收到激活邮件后,再次输入电子邮箱和密码,不能再次发送邮件;

没有收到激活邮件,登陆时输入电子邮箱和密码,再次发送激活邮件

2)录入电子邮件和密码,正确的电子邮件和错误的密码,错误的电子邮件和正确的密码

每次发的激活邮件,仅在发送邮件后的24小时内有效,超过24小时后重新发送邮件;

24小时之内,打开邮件,进行点击激活

正好24小时(在23小时59分59秒进行测试),打开邮件,进行点击激活

超过24小时,打开邮件,进行点击激活

已经在24小时内点击激活邮件成功进行激活操作,超过24小时之后,又重新激活邮件进行点击?

提示:您已激活,请勿重复操作,链接已经失效;

除此之外,链接要保证正确,邮件内容要保证正确,少一个/都不行;

还要进行页面检查:确认收到激活邮件,邮件的内容完整况且正确,再次激活显示已经激活,过期激活显示已经过期


2.具体的实际测试用例的方法


1)等价类:为了解决测试用例无法穷举的情况,我们无法测试到每一个测试用例,思想把输入分成若干个等价类,每一个等价类当中选一个测试用例进行测试,如果这个测试用例通过,我们就说这个测试用例代表的等价测试通过;

把输入(特殊情况下才考虑输出,或分成若干个等价类,从每一个等价类中选一个测试用例,如果说这个测试用例通过,那么我们就说这个测试用例代表的等价类测试通过,

包括有效等价类和无效等价类;

有效等价类:对于程序的规格说明书是合理的,有意义的输入数据组成的集合,利用等价类验证程序是否实现了规格说明中所规定的功能和性能;

无效等价类:根据需求说明书,不满足需求的集合;

例如我想要去商店买水果,有效等价类是苹果,桃子和梨;无效等价类是饮料,米

a
{
if(a>10)
{
printf("a大于10");
}
b=a;
printf("b等于a");
}
这时把a>10的数据归到一个等价类中,把所有小于10的数据归到一个等价类中,例如拿1和15举例子

输入用户名:字符类型A-Z,不区分大小写,长度是6-15位(6和15就是边界)

有效等价类:A-Z,a-z,大小写混合,大于等于6位,小于等于15位的任何数字;

无效等价类:汉字,特殊符号#,?(),数字,空格,字母和前面符号的混合;小于6位,大于15位;


2.边界值

针对我们的输入输出的边界进行测试用例的设计,是一种黑盒测试方法,for循环(int i=0;i

还有6-15位,那么就要对5,6 ,7和14位,15位,16位边界点进行测试

设计测试用例的时候,会把等价类和边界值结合在一起用于进行测试用例的设计;


3.因果图:逻辑图,当输入有多个,并且不同的输入组合对应着不同的输出,可以用因果图法来分析这个输入和输出之间的逻辑关系

输入有多个,不同的输入组合有不同的输出,为了防止漏测,就要用因果图来设计测试用例

因果图:一个逻辑图,恒等(输入为真,输出为真),与(输入有多个条件,多个条件都为真的时候输出为真,有一个为假,输出结果就是假),或(输入有多个条件,有一个为真的时候,输出就为真),非(输入为真,输出为假);

用因果图法设计测试用例:

1)找出所有的输入和输出

2)确定不同的输入组合和输出之间的关系

3)用因果图来表示输入与输出(最终可能造成的一个结果)之间的关系

4)根据输入输出的关系因果图画判断表·

5)根据判定表来写测试用例

假设某业务单据的处理规则为:淘宝618活动,订单已经提交,订单金额大于300或者有红包,则进优惠

输入:提交订单,订单金额大于300,有红包

输出:有优惠,没有优惠

关系:

订单已提交,没有红包,订单大于300,有优惠

订单已提交,有红包,订单小于300,有优惠

订单已提交,没红包,订单没有大于300,没有优惠

订单已经提交,有红包,订单大于300,没有优惠

订单没有提交,无优惠;(红包和金额组成了四种情况)

1)订单没有提交,金额大于300,有红包,没有优惠

2)订单没有提交,金额大于300,没有红包,没有优惠

3)订单没有进行提交,金额小于300,有红包,没有优惠

4)订单没有提交,金额小于300,没有红包没有优惠;

 

 


4.正交设计法:研究多水平(因素的取值)(例如订单已经提交,订单没有进行提交)(金额大于300,金额小于300)多因素(输入类型的种类)的一种测试用例的设计方法,根据正交性,在所有的实验组和中找到最优的组合进行测试,通过这些最优组合的解来验证整个实验整体的效果;

例如说邮箱注册,写姓名,邮箱,密码,确认密码,验证码,有32种情况,用较少最优的测试用例来判断整个功能的情况,来判断实验的结果;

正交表:行:(水平数-1)*因素数+1;

列:因素数,也就是说输入的个数;

水平数:每一个因素的取值;

正交表的性质:

1)每一列各数据出现的次数一样多

2)不同两列不同的数据组合出现的次数一样多

根据正交表设计测试用例的步骤:

1)确定因数:输入

2)确定每一个因数的水平,找出因素数和水平数

3)根据因素数和水平数确定正交标的行和列

4)根据正交表的性质去填充正交表里面的数据

5)根据正交表的每一行设计测试用例

6)补充正交表里面没有的,但是你认为比较关键的测试用例

因素:姓名,邮箱,密码,确认密码,验证码

水平:填写,不填写

因素数:5

水平数:2

列=因素数=5,行=(水平数-1)*因素数+1=6

这是为了验证注册的这5个必填项分别在填写和不填写各种情况下的表现,只要这里面有不填写的项,就都会注册失败

根据这个正交表此时就可以写测试用例了,测试用例为:

1)姓名输入,邮箱不输入,密码输入,确认密码输入,验证码不输入。。。。

除此之外还要考虑姓名,邮箱,密码,确认密码,验证码全部输入;

姓名,密码,邮箱,确认密码,验证码全部不进行输入;

———————————————————————————————————


5.场景法:把各个孤立的功能点按照一定的策略组合起来,形成一个应用场景

ATM取款机取款场景:插卡-选择语言-输入密码-输入取款金额-取钱-退卡

1)插卡:插反了,插错卡,或者插入一些饭卡,会员卡,不是本行的;

2)输入密码:密码错误,密码输入正确

密码输入共有三次机会,密码第一次输入正确,第二次输入正确

密码前两次输入错误,第三次输入正确;

3)输入钱数小于等于银行卡总金额,输入钱书大于银行卡金额;输入的不足整百

4)超过每日取款限额,超过每日取款最大上限,超过每日取款最大次数

5)取款时,确认取款钱数后,ATM机会吐出相应的钱数,但是当ATM机操作超时,长时间不取吞出来的钱

6)ATM机断电,断网,出现故障,或者当用户的所有操作都超时,就会出现吞卡,这是一种安全机制;


6.错误猜测法:这是根据测试人员的直觉,知识,经验,判断软件的哪一块有问题,专门针对性的设计测试用例

验证码大小写是否进行区分?把输入的搜索信息的前后空格忽略

练习题:

1)此时对程序的需求为:

姓名:1-20个字符,不可以包含数字,不可以为空格

年龄:18-60之间的整数,不能为空格

等价有效类:1-20个非数字,非空格字符,大写,小写,特殊字符;

无效等价类:1-20数字,1-20空格,1-20空格数字空格混合,1-20数字字符混合,1-20数字空格混合,1-20空格字符组合,不输入,大于20个字符;

边界值:0个字符,1个字符(非数字,非空格),两个非数字,非空格字符

年龄:17岁,18岁,19岁,59岁,60岁,61岁

有效等价类:18-60之间的整数

无效等价类:18-60之间的非整数,小于18的整数,小于18的非整数;大于60的数,大于60的非整数,为空

边界值:17,18,19,59,60,61

2)自动饮料的售卖机,可以输入1.5毛钱硬币或者2元钱硬币,一瓶饮料的价钱1.5,如果输入两元钱,出饮料的同时会找回5毛硬币;可乐,红茶,雪碧,出哪种饮料取决你于你付完钱后按下哪个键

输入:1.5元硬币,2元硬币,可乐,雪碧,红茶

输出:5毛硬币,可乐,雪碧,红茶

——————————————————————————————————

测试金字塔

从下往上投入相同的时间与精力越往上测试产出的越少

越往上测试效率越低

越往上发现问题后定位问题越困难

所以测试要尽早地进行接入;

1.UI界面层,花费时间最多,直接对他进行测试,不能看到到底是哪一个接口使用错了,哪一个类,哪一个SQL语句,哪一个方法发生了错误

当我们对其投入的精力越多,输出产出比从下到上逐层递减

所有的操作只能通过鼠标操作界面来进行完成,web前端页面,后端的代码实现细节都不给予展示已经被屏蔽,也就是说不可以从后台测结果;

兼容性测试:看看同样的网页在不同的浏览器显示会不会出问题,看看我们做的网站是否可以兼容不同的浏览器; 

2.业务逻辑层:可以接触到底层的一些接口了,可以看到一个完整的输入和输出,软件组成的更小的一个单元了;

对代码进行测试,开发人员A,开发同一个系统页面的登陆功能,开发人员B,开发同一个系统页面的注册功能(开发的很慢),开发人员A早早地就把活干好了,但是开发人员B还没有开发完成,此时开发人员A就可以进行模拟用户的注册功能,这叫做客户端模拟测试

内外接口测试:不同系统之间的调用,例如A调用B的web接口

3.数据处理层:单元测试,可以看到完整的代码,对代码的某一个类和方法进行测试,这样也越来越高效率了;

先看出错的功能调用的是哪一个接口,他又调用了哪一个类中的哪一个方法,这样逐层的解析问题


1.按照开发阶段划分:

——————————————————————————————————————————


1)单元测试:对程序的最小的单元进行测试,这个单元可能是一个类,也可能是一个方法;

测试阶段:开发前(编码前,编码啥也没写,测试驱动开发,先写测试脚本这时出现异常之后开发人员再去看,根据这些异常来编写代码),编码后(对代码进行测试);

测试对象:单元模块(类或者方法)

测试人员:白盒测试工程师/开发工程师

测试内容:模块接口测试,局部数据结构,边界测试,错误处理测试,逻辑结构测试

模块接口的测试:输入和输出,输入参数的数量(double,int),类型(几个参数),类型的排列顺序,输出是否符合模块接口设计的文档

局部数据结构测试:(方法)例如追踪不同变化的值,看看它的值的变化是否是正确的,

路径测试:if else switch,逻辑判断之类的东西;

错误处理测试:看看是否会执行finally里面的东西,try Catch

边界测试:小于等于

如何去做单元测试?java的三元测试如何进行?

1)在pom.xml添加依赖

2)下载插件,file-setting-plugins junit;

3)选中被测试的类

创建相应的单元测试用例:crtl+shift+t,这时会出现create new...按回车,这样就可以创建单元测试类了;

这样就可以测试单独的一个类,也可以单独的测试一个具体的方法,但是我们想让他执行其中的两个方法,想要忽略其中的一个方法;就在要忽略的方法前面加上@Ignore

@before:在每一个方法开始执行前,执行的方法

@After:在每一个方法执行完后,进行执行的方法

@Test:这是表明有这个类要进行测试

_____________________________________________________________________________


2)集成测试:按照一定的策略逻辑组合组装单元模块,把他形成一个整体,然后对这个组装在一起的模块进行测试

测试阶段:在单元测试之后;

测试对象:接口

测试方法:黑盒和白盒相结合

测试人员:黑盒测试工程师,白盒测试工程师

测试依据:概要设计文档,集成测试文档

测试内容:接口之间数据的传输(A调B)是否正确,全局数据结构(把很多的单元模块组合在一起),模块组装功能的正确性,单个功能模块的缺陷对整体的影响,模块与模块之间的功能冲突及接口

面试题:局部数据结构测试和全局数据结构测试出现在哪一个测试阶段?????


3)系统测试:系统已经开发完了

测试阶段:集成测试之后

测试方法:黑盒测试方法

测试人员:黑盒测试工程师

测试依据:详细设计文档

测试内容:功能 界面 易用性 性能 安全性 兼容性 可靠性

1)回归测试:属于系统测试,开发人员在增加新的功能的时候会加入新的代码,或者在修改BUG的时候会增加新的代码,新的代码的产生很有可能会影响到以前的老功能;就要进行回归测试,当系统引入新的代码之后;

每当一个软件进行更新增加新的功能的时候,并且当功能越来越多的时候,回归测试的成本与时间也越来越多;所以评估回归测试的策略很重要,估计他的新增功能对老功能的影响范围,并进行测试;

自动化测试:写一个脚本

2)冒烟测试:属于系统测试,是一种特殊的测试,就是对系统的主要功能和核心功能进行测试,是评判系统是否进入到测试环节的依据-准入原则;如果说冒烟测试都没有通过,那么就把这段代码打回给开发人员,是一种准入原则;

提测用例:很少,主要是针对本次迭代的主要功能和系统的核心流程进行测试用例的分析


4)验收测试

客户按照用户的需求对系统进行测试

测试阶段:系统测试过后

测试依据:用户需求

测试方法:黑盒

测试人员:客户

测试内容:与系统测试一致,文档测试(软件设计文档,功能设计文档,用户使用手册,详细的产品功能使用文档等),拿这些文档和系统功能进行对比,才能进行上线;

——————————————————————————————————


2.按照实施组织区划分:

1)a测试:在系统测试完成之后,把公司中的非测试非开发人员召集到一起,到我们的项目组开发环境下进行测试;用户发现问题之后会及时的反馈给开发人员;缺点:用户在开发环境下可能会受到开发人员和测试人员的一个思维控制,因为如果此时开发人员和测试人员对你进行指导,可能会受到他们的一个思维的影响,思维定式;

2)b测试:实际用户在真实的环境下进行测试,测试环境地域不受限制,

优点:测试的结果跟接近用户实际使用情况的反馈,b测试在a测试之后很长一段时间;

地域不一样,a是在开发环境下,b环境是在用户实际使用环境下;同时时间的集中程度也不一样,a测试时间相对比较集中,b测试相对来说比较分散;

3)第三方测试

由软件的第三方测评机构进行测试

————————————————————————————————————————


3.是否运行去划分?

1)静态测试:看代码,不运行代码,通过静态分析代码的语法,编写规范,逻辑,结构,功能的实现,看他开发的逻辑和软件测试文档的需求是否一致,是否符合公司的一些标准和规范

静态质量标准:看看代码的功能是否符合用户的需求

代码性能上的表现:响应时间,资源利用率,容量;

兼容性:手机app在不同的品牌上用户体验的效果

容错率,可靠性:当用户进行了一些错误操作,和一些外来因素的影响,系统内部对于处理这些突发情况的表现;

维护性:以后我还可以重复使用,有错误还可以很好的进行修改

可移植性:对于不同的平台

2)动态测试:写测试用例,运行程序,对系统进行测试,查看分析系统的输出是否符合预期

————————————————————————————————————————


4.按照是否进行手工划分

1)手工测试(黑盒测试人员):设计测试用例,运行程序,运行系统,一步一步手动的执行测试,对系统进行测试,分析结果

缺陷:量大,容易出错,效率比较低;

优点:思路比较灵活,例如让机器来写测试用例,一旦写好了,就是不可变的了;但是对于人来说,修改测试用例增加一些测试点,或者当功能和需求有一点点改变的时候,是可以随时修改测试用例的;测试比较灵活,可以根据不同的测试用例进行测试用例的修改和完善;所以说无论何时,自动化测试都不可以取代手工测试

2)自动化测试

把手工测试的测试用例转化成自动化脚本,让机器执行脚本;给定一个预先设计好的条件和方案以及结果的预判去执行;

接口自动化,性能自动化,web自动化,app自动化,dijiagou,sele

自动化的意义:解放双手,提高测试用例,节省人力和资源

自动化测试的条件:系统功能稳定之后

如何判断一个自动化脚本有价值?

主要是看自动化脚本的使用率,使用频率越高越有价值

什么样的项目可以使用自动化脚本?

项目周期要长,(一周就结束了,以后也不会迭代开发),不停的迭代

适用于需求比较稳定的项目,测试完之后可以保存;

——————————————————————————————————————————————————


5.按照是否查看代码来划分?

面试题1:黑盒测试设计测试用例的方法有哪些?
等价类,边界值,因果图法,场景法,错误猜测法
面试题2:按照开发阶段划分的哪几个阶段用的是黑盒测试?
集成测试,系统测试,验收测试

单元测试:白盒测试

黑盒测试:测试的时候只关心输入和输出,不去看具体的功能的内部逻辑,代码具体的实现,代码已经进行屏蔽;

白盒测试:对程序内部的逻辑,结构,功能进行的测试

白盒测试的方法:

语句覆盖法:写一段代码对源代码中的每一条语句都测试到;

循环覆盖:while,do while循环,对循环中的每一条语句在都要走一遍;

逻辑覆盖法:路径覆盖,条件覆盖,判断覆盖,条件组合,判定组合

if(A)
{
}else if(C&&D)
{
}else(B)
{
}

判定覆盖:判定为真走一遍,判定为假走一遍,他只判定一个具体的结果;

判定组合覆盖:A&&B&&E

true:A B C都为真

false:A为假,B,E为真;B为假,A,E为真;E为假,A,B为真;A,B,E都为假

灰盒测试:基于白盒测试和黑盒测试之间,既要关心输入和输出,又要关心程序内部的逻辑结构,和集成测试和接口,有时还要看软件文档;

朋友圈删除照片:拖拽到最下面


————————————————————————————————————————
6.按地域划分测试:

软件国际化:这些软件可以适用于不同国家的语言,以及适用于不同国家的风俗习惯人民的使用习惯;例如我们国家的字体,宋体..,辛丑年;

开发一款软件的时候运用了一种工程技术,可以使得软件使用不同国家的语言和当地的风俗习惯而不用修改软件的源码;

如何进行软件国际化的测试?

本地化处理:语言,提示信息(提示语音),年月日,辛丑年;国外没有这回事;一些悲痛的日子,页面要变成灰色,所以要知道国家的一些重大的日子;

在不同的屏幕分辨率下界面是否正常显示,不同国家使用的硬件关键设备,芯片技术是不同的,硬件不一样,在系统上面的表现是完全不一样的;

不同的国家的语言长度不同,可能会影响排版;

货币单位,质量单位,排序顺序,


7.按照测试对象划分:


1)根据业务进行测试:把一个个的孤立的功能点按照一定的策略组合在一起,形成一个业务,对这个业务进行测试

例如:ATM取款机取款流程----ATM取款机取款业务


2)界面设计,UI设计师的设计稿

1)界面:文字(字体的大小,字体的类型,粗细,是否斜体,是否加下划线,字体的颜色,是否是链接)

2)图片:大小,排版,颜色,清晰度,是否重叠:

3)按钮:按钮,文本框,滚动条,下拉框,勾选框

4)有效的控件:置灰,高亮,按钮,滚动条是否可以正常使用

5)页面元素有效无效的状态,弹出框,提示框的位置布局要合理

7)用户进行操作下一步,是否可以简单的进行

备注,提示说明,语言表达是否清楚,整体布局的排版

UI设计师,产品的UI设计图,测试人员根据UI设计图来进行测试的;

响应式测试:系统的页面可以随着屏幕的分辨率不同而自适应,不同的分辨率大小人家会有不同的设计


那么如何进行响应式页面的测试呢?

1)页面大小进行切换的时候,切换过程中页面元素展示无缝衔接,丝滑,不会出现页面空白,图片或者功能缺失

2)页面从大到小进行切换的时候,页面图片,文字都不会丢失

3)页面从大到小进行切换,页面功能不缺失,并且可以正常进行使用

4)页面从大到小进行切换,都遵循UI界面设计需求;

页面测试常见的BUG:不合适的快捷键,丢失的文字,截断,自动换行,重叠,重复的快捷键,没有对齐;

————————————————————————————————————————


3)容错性测试

数据级别:时间,货币

校验级别:前后空格,验证码,同系统前后信息一致

环境级别:断电,断网,服务器瘫痪,无缝切换

界面级别:界面会屏蔽违规违法操作,对于一些固定的输入,可以采用下拉框或者固定信息选择,模糊匹配,对于一些复杂或者危险的操作,有详细的用户提示信息;

当系统因为外部环境的影响或者用户的误操作导致系统发生错误,但是系统可以正常处理,从而使系统稳定运行,不显示给用户

例如发红包塞钱,0.01,0.001,0.00001当金额小于0.01的时候,就不可以再进行转账了;

例如要进行时间戳的一个转换,把2月31日转化成秒,就会转化错误

1)级别:日期,时间,货币

2)验证级别:查询信息的前后空格,用java里面的trim(),验证码输入错误,同一个系统的前后信息的容错处理,例如要填写个人信息;前面要填写一些身份证信息,后面还会进行填写,如果前面的身份信息和后面的身份信息不一致,就会出现报错信息;

注册,密码,确认密码

环境容错处理:当系统运行的时候断电,断网,服务器故障的时候可以随时切换用电器,网络备用服务器,让用户无感知;他们的服务器肯定有备用服务器;例如双11,服务器一旦被挤爆了,必须有备用服务器,否则就会亏本;

界面的容错处理:进行一些危险操作的时候或者用户禁用操作的时候,有没有给用户提示,或者把这些功能屏蔽;

注册的时候账号和密码的位数限制,最多16位,当用户输入过多时就会限制输入;

当用户输入一些规定好的固定选项的时候,会议下拉框的形式展示,在一些复杂容易出错的操作,会给用户提示;

灾难恢复性测试:人为让系统出现崩溃,让系统出现一些断网断电的极端情况,检测系统是否可以自我用户恢复数据信息,以及恢复这些数据的正确性和耗时;

————————————————————————————————————————

文档测试:软件开发过程中产生的文档进行测试,软件设计文档,流程图文档,功能分析设计文档,用户使用手册,要保证主要测试文档和软件系统的一致性,软件系统文档和测试文档的功能要一致;

文档的术语是否得当,以及它的正确性,完整性,易用性

————————————————————————————————————


4.兼容性测试:

1)平台的兼容性:

web系统的兼容性,Windows:Windows 10,Windows 7;

Mac IOS的不同版本

浏览器:Firefox,Chrome,edge,Opera,safari,360,IE,搜狗,QQ;

手机端:不同的安卓系统,IOS

例如我可以先下载一个Windows10系统的一个浏览器,然后再下载以上的浏览器,在后再逐一进行测试;不同的浏览器的当下市场上的主流版本进行测试也要进行测试;

因为不同的浏览器,他的内核不一样,对同一个页面的内容的解析不一样;代码一样,显示的内容不一样;IE浏览器,对基本的CSS和图片都无法进行解析,当我们的一个产品进行上线的时候,如果使用IE浏览器不能解析出一个完整的页面,那么此时使用IE浏览器的用户就会崩溃;

APP兼容测试:太多了,都是测的是一个功能,可以写自动化脚本提高测试效率来做这个繁杂的兼容性测试,因为手工的话效率太低了;

IOSAPP:iphone12 iphone6S iphone13,不同的苹果机型,对他不同版本的IOS系统(用户主流的适用版本);

Android:华为,OPPO,小米,vivo,锤子,魅族;这些不同的手机在市场上又有不同的主流版本,每一个品牌上有不同的机型,在每一个机型上,进行安卓系统的主流版本的测试;

例如说抖音这个功能,不同的社会群体都在用,有老年人,学生,中年人,他们所用的手机品牌一定都是不一样的

方法:运用自动化测试,先写好自动化脚本,对不同的手机机型品牌的手机,放到一个配置文件里面;每次进行测试的时候,只需要在配置文件里面把手机的机型等读取一下就好了换一下配置;脚本的内容本身是不需要进行改变的;

软件本身向前和向后的一个兼容性:新增的功能不可以影响到前面的功能,或者你添加了这个功能,后续的功能无法再进行扩展和开发了;

软件是否和其他相关的软件的兼容性:例如小红书可以用微信登陆,QQ登录,微博登录,如果不兼容,那么就不可以调用第三方接口了,就可以直接在别的软件上把他的用户信息,头像信息,直接拿过来了;

淘宝和支付宝他们之间就有一个数据的兼容性,当要买东西的时候,淘宝就可以在支付宝里面获取数据;还有在淘宝里面买的每一笔商品,在支付宝里面都有正常的一份记录,会有统计;

数据的兼容性:支付宝可以获取到淘宝里面的物流信息,肯定就调用了一些接口,他们的数据肯定是兼容的;

——————————————————————————————————————————


5,易用性测试,用户体验测试

要体现人体工程学的概念,用户体验性测试,符合标准规范,直观性,灵活性,舒适性,实用性,如果开发人员没有考虑到这些,把一个严重警告信息的编辑框开发成白色,这就出现问题:

符合标准规范:信息提示框

用户信息提示符号,白色提示符号

警告信息符号表示,符号提示黄色

严重错误提示符号,红色的,还会发出响声,还会有感叹号;

直观性:

做一个备忘录,周天要和同学约会,有下拉框,年月日,看看约会的时间是否是在星期天,然后查一下日期,看看自己在那天有没有事情;选择日期的时候,都会显示那一天具体的日子,例如劳动节;什么农历,小离,除夕,元宵节;

灵活性:用户可以按照自己的兴趣爱好,思维习惯来使用同一个功能。可以修改朋友圈观看的一个范围,或者把朋友圈屏蔽掉,视频号屏蔽掉;手机键盘,九宫格,英文中文;

舒适性:压缩文件进度,进度条,让用户可以看到系统工作的调度,缓解用户焦虑;

实用性:不要让用户觉得这个功能很复杂,语音可以转化成文字,用户体验效果非常好;

———————————————————————————————————————————

APP的安装卸载测试

app的安装方式:应用商城(华为商城,安装包,压缩包解压),浏览器下载,命令行,第三方应用的安装;这些安装方式都要进行测试;

app的卸载方式:以下的这些卸载方式也要进行测试,应用商店,桌面卸载,第三方应用的卸载,命令行卸载;

安装的时候可能会出现一些极端的情况:断电,断网,在断电断网之后,是否可以恢复到之前安装卸载的这样一个状态;安装的过程中空间不足怎么办?安装的过程中如果暂停,继续安装是否会成功的进行安装;手机异常关机,手机开机后是否可以进行安装和卸载?是否可以把他这个软件相关产生的数据全部清除?


——————————————————————————————————————


5.安全性测试,SQL语句注入

安全测试:

1)木马病毒渗入

2)SQL注入:查询功能

3)上传下载:不要信息被别人半路截获,对于付费,保密的文件进行测试;在上传有病毒的文件,上传.jpg,.doc,有一些木马病毒,后面加一个.jpg或者.doc;

上传过大的文件或者下载过大的文件,要提示文件过大;

4)防爬虫:获取网站的信息

5)XSS注入:输入一段查询词,后面加一段HTML代码

6)内存泄漏:在使用一些函数的时候或者分配内存,或者无法释放,导致系统运行占用资源越来越多,速度越来越慢,导致系统崩溃;

7)使用API函数不正确

程序写的有问题,无法释放内存空间,分配了内存空间,忘记进行释放


这是要进行静态测试,读代码,工具进行测试
6.性能测试:响应时间

1)希望用户有很好的体验,系统能够快速地响应用户的需求

2)系统可以处理预期的一个用户负载,最多可以支持300个用户访问

3)系统可以处理预期的事务数量负载;

4)系统在满足上述指标的情况下,可以稳定的运行,用户要有良好的体验,客户端和服务器交互速度要快;

测试内容:

响应时间:3/5/10;3s,5s,在这个时间内用户发出的请求客户端要及时地进行响应,不然等到10s以后,有户会显得很不耐烦;

TPS:(Transaction Per second)这个表示每秒钟可以处理的事务数量,这是衡量服务器处理请求的一个重要指标;这个是有专门的工具来进行测试的;

吞吐量:系统在单位时间内处理的信息量(字节)

点击率:每秒向服务器发送HTTP请求的个数;

系统在运行时占用的资源的情况:CPU,内存,磁盘,宽带,网络带宽,耗电量,当运行一个功能的时候,如果他的耗电量比较大,那么它耗费的资源也比较多,性能就比较低;最多站CPU的70%;以及电源的使用情况;

在一个功能使用的时候,一定要分析它占用系统资源的一个情况,占用越少,性能越高;


推荐阅读
author-avatar
光头之祖_617
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有