功能测试+性能测试+界面测试+兼容性测试+易用性测试+安全测试
功能测试:肯能来自于需求文档,也可能来自于生活经验。
性能测试:功能没有问题不代表性能一定是好的,性能往往表现在极端的情况下。
界面测试:颜色、形状、大小、材质、文字、输入框、图片、下拉框...所有可以看到的元素。
兼容性测试:浏览器的兼容性、版本兼容性、系统兼容性、数据兼容性。
易用性测试:软件是否具备简单易上手的属性。
安全测试:密码是否加密、数据库是否对隐私数据加密、SQL注入。
SQL注入:select id, info where name = 关键词;假如用户在前端输入的关键词是1 or 1=1;SQL语 句就变成了:select id, info from user where name = 1 or 1 = 1;
例如:水杯的测试用例
兼容性测试里需要注意:
不同的浏览器
不同的版本
可能会有非常非常多,难道所有的版本和浏览器我们都需要测试吗?我们选型的标准是什么?
如何回答?
大部分用户使用的
在工作中是有数据后台可以检测到大部分用户使用到的浏览器/版本/手机型号....后台可以将这些数据进行检测和管理起来
例如:登陆页面的测试用例
基于需求的设计方法
等价类
边界值
因果图
正交排序
场景设计法
错误猜测法
分区/分块的概念。依据需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。
等价类的划分:
有效等价类:针对需求文档的要求是有意义的集合
无效等价类:针对需求文档的要求是没有意义的集合
步骤:
(1)确认有效等价类和无效等价类
(2)编写测试用例,写测试的数据
边界值指的是有效边界+无效边界。
例:成绩大于60可以获奖
边界值:60(无效边界)、61(有效边界)
适用场景:输入条件的组合对应不同的结果
判定表设计测试用例的步骤:
确认输入条件和输出条件
找出输入条件和输出条件之间的关系
画判定表
根据判定表编写测试用例
案例:当订单使用了红包或者订单量金额大于300元,则该订单是优惠订单,否则是不优惠的订单。
确定输入条件和输出条件
找出输入条件和输出条件的关系
画判定表
根据判断表编写测试用例
(1)有红包并提交订单,则该订单为有优惠订单。
(2)金额大于300元并提交订单,则该订单为有优惠订单。
(3)有红包,金额大于300元并提交订单,则该订单为有优惠订单。
(4)有红包,金额小于300元,不提交订单,则该订单为无优惠订单。
(5)无红包,金额大于300元,不提交订单,则该订单为无优惠订单。
(6)无红包,金额小于300元,提交订单,则该订单为无优惠订单。
(7)有红包,金额大于300元,不提交订单,则该订单为无优惠订单。
(8)无红包,金额小于300元,不提交订单,则该订单为无优惠订单。
判定表法和因果图法其实步骤差不多,只不过因果图法例多了一步叫做”设计因果图“
基本事件流和备选事件流
编写测试用例:
基本事件流的用例:先插卡,输入正确的密码,选择取款功能......取卡
备选事件流
(1)插入卡之后,卡被ATM卡住......退卡
(2)插入卡之后,输入密码错误......退卡
................
判定表里:3个输入条件,2个输出条件,给出了8个测试用例(2^3);假如输入条件不止3个,若为10个,那么我们要设计1000 多个测试用例。
正交实验设计法指从大量的试验中挑选出适量的,有代表性的点,依据“正交表”从而合理的设计出测试用例~
例:假如地图软件,从出发地到目的地需要耗时多久~~
我们要考虑的因素很多,比如:下班的高峰期,今天不限号,天气原因,所经路段红灯时间长,地段(城市路段/郊区),道路施工,行驶人的驾车技能好坏,车况等等。
正交表
正交表的表示 L4(2^3),4代表的是4组实验(4个测试用例),3代表的是因素数(输入条件),2代表的每个因素数对应的水平数(输入条件的可能选项)。
正交表的特性:
每一列中,不同数字出现的次数相等
任意两列中数字的排列方式齐全而且均衡
根据正交表设计测试用例的步骤:
(1)找出因素数和水平数
(2)生成正交表(需要借助生成正交表的工具:allparis)
(3)根据正交表来编写测试用例
(4)补充可能存在遗漏但是非常重要的测试用例
案例:
找出因素数和水平数
因素数:5 (姓名、电子邮箱、密码、确认密码、验证码)
水平数:2 (填写、不填写 )
使用allparis生成正交表
(1)将水平和因素写入excel
(2)allpairs同级目录创建一个新的txt文件,复制excel中的因素和水平,粘贴到txt文件中,直接保存不需要任何处理
(3)使用allpairs工具生成正交表(cmd)
注意:0111jg.txt是自动生成的,打开之后就会出现如下正交表~
利用allpairs生成的正交表跟实际的正交表可能有出入,但是仍然不影响我们使用allpairs生成正交表~
根据正交表编写测试用例
(1)全部填写姓名、电子邮箱、密码、确认密码、验证码
(2)填写姓名、不填写电子邮箱、密码、确认密码、验证码
(3)填写电子邮箱、确认密码、不填写姓名、密码、验证码
(4)填写密码、验证码、不填写姓名、电子邮箱、确认密码
(5)填写姓名、电子邮箱、密码、不填写确认密码、验证码
(6)填写确认密码、验证码、不填写姓名、电子邮箱、密码
(7)全部都不填写姓名、电子邮箱、密码、确认密码、验证码
可靠性即可用性,是指系统正常运行的能力或者程度,一般用正常向用户提供软件服务的时间占总时间的百分比表示。
可靠性=正常运行时间/(正常运行时间+非正常运行时间)*100%
可用性指标一般要求达到4个或5个“9”,即99.99%或者99.999%
例:如果想要达到4个9(99.99%),对于全年不休息的系统来说,不可用的时间是多少呢?
设不可用时间为x
24*60*365=525600min
(525600-x)/525600*100%=99.99%
即x=52h
容错性测试是指系统能够处理异常,用户的错误操作而不至于系统崩溃,从而能够提高系统的可用性。
容错性和考考性的区别:
例:有一架飞机,飞机有四个引擎。假如说有一个引擎坏掉了,但是我们的飞机能正常的飞行。
一个引擎:不可靠的表现
飞机:容错性的表现(容错性好~)
工作中很容易遗漏安装和卸载的测试
内存泄漏的检测方法:
人工静态法:代码走读,人工查找未被回收的内存。
自动工具法:借助相应的测试内存泄露的工具,如Visual Leak Detector,记录每次内存分配,清楚的告诉用户内存是如何泄露的。
安卓手机来说如果一直刷不到内容,可能会出现anr弹窗。如果有时候网不太好,可能会造成客户端频繁的发送请求。
怎样实施弱网测试?
借助工具去模拟弱网环境~
打开Fiddler,打开弱网设置选项
2.打开弱网设置的脚码。
黑盒测试也叫做纯功能测试,不关心具体是怎样实现的 (系统测试)
关注程序的内部实现 (单元测试)
介于黑盒和白盒之间 (集成测试)
为什么不能让灰盒测试取代黑盒测试和白盒测试?
灰盒测试没有白盒测试那么详尽,灰盒测试没有黑盒测试覆盖产品的广度大。所以灰盒测试不能取代黑盒和白盒测试。
面试题:哪种测试方法用的多?
黑盒测试和白盒测试 测试人员都会使用到,在工作根据具体情况来结合白盒测试和黑盒测试。通常情况下对于测试人员来说使用黑盒测试相对要多一些。
对程序“最小单元”进行测试。
为了在集成时测试模块/组件,以验证它们是否按预期工作,即测试单独工作的模块在集成时没有问题。
开发人员完成开发任务后,交给测试人员进行测试的第一步,评估软件/系统是否具备可测试的条件。
对历史版本,历史功能进行测试,保证功能都是符合要求的,借助自动化来进行回归测试。(自动化也是测试人员写的,自动化的测试是有局限性的,而且只是协调测试人员进行测试的一个工具~)