阅读 257

软件测试基础(二)

1.1静态测试和动态测试

静态测试,是指不实际运行被测试软件,而只是静态的检查程序代码、界面或者文档中可能存在的错误的过程。

动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

2.1功能测试和性能测试

一,功能测试

是黑盒测试的一部分,它检查实际软件的功能是否符合用户的需求。

功能测试可以细分逻辑功能测试,界面测试,易用性测试,安装测试和兼容性测试。

逻辑功能测试:测试应用是否符合逻辑,比如应该先注册账号之后,才能进行登录,登录之后才能看我的购物车

界面测试:窗口大小,按钮大小,点击按钮弹出什么样的提示框,是否有滚动条,下拉菜单是否有展示内容...

易用性测试:从软件使用的合理性和方便性等角度对软件系统进行检查,比如,软件窗口长宽比例是否合适,颜色色彩是否赏心悦目,字体大小是否合适


image.png

兼容性测试:

硬件兼容性测试和软件兼容性测试

硬件兼容性:

比如一款软件在pc机,笔记本上是否兼容

软件兼容性测试:

比如一款软件在windows8和windows10上是否兼容

二,性能测试

时间性能:

软件的一个具体事务的响应时间。比如点击一个登陆按钮,到登录成功(失败)的反应时间,浏览器非常常见,ANR(Application not responding 应用程序无响应)

空间性能:

软件运行时所消耗的系统资源,比如对内存和cpu的消耗

一般性能测试:

软件正常运行,不向其施加任何压力的测试

稳定性测试:

也叫可靠性测试,是指连续运行被测系统,检查系统运行时的稳定成都。

负载测试:

让被测系统在其能够忍受的压力范围之内连续运行,来测试系统的稳定性。(测试载重)

压力测试:

持续不断的给被测试的系统增加压力,直到被测试的系统压垮为止,用来测试系统所承受的最大压力。(测试强度)

3.1.回归测试、冒烟测试、随机测试

回归测试

是指对软件的新版本进行测试时,重复执行上一个版本测试时的用例,比如在1.0版本中,有一个bug,到了2.0版本中,再重新测试1.0中这个bug

冒烟测试

指对一个软件进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

测试小组在正式测试一个新版本之前,先指派一两个测试人员测试一下软件的主要功能,如果没有实现,则打回开发组重新开发,这样做可以节省大量的时间成本和人力成本。

随机测试

是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。

4.1单元测试、集成测试、系统测试和验收测试

image.png

5.1测试分类占比

image.png

6.15.软件测试的原则

1.尽早原则
2.边界和极端原则
3.28原则
4.确认原则
5.回归关联

image.png

7.1软件开发模式

1.线性模型与渐进式模型

线性模型:

最常见的“瀑布模型”,基础框架,但缺点在于“集成之日就是爆炸之日”。(立项分析-需求分析-设计-编码-测试-维护)很多企业使用后使用迭代进行修改。

渐进式模型:

最常见的“螺旋模型”,(需求分析-风险分析-设计、编码-测试、评审),迭代开发和增量开发模式。

注意:

每一次迭代原型出来后,测试人员都需要从原型界面,系统主要功能,性能等方面对原型进行评审。

8.1软件生命周期模型

软件生命周期 同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生命周期(软件生存周期)[1] 。软件生命周期模型是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考。


image.png

1.边做边改模型

image.png

2.瀑布模型

瀑布模型是最早出现的在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。对于经常变化的项目而言,瀑布模型毫无价值。


image.png

3.增量模型

增量模型也是原型化开发方法


image.png

4.原型化模型

原型化模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,经过和用户针对原型的讨论和交流,弄清需求以便真正把握用户需要的软件产品是什么样子的。充分了解后,再在原型基础上开发出用户满意的产品。
如图所示:原型严格来说不算一种软件生命周期模型,它只是一种获取需求的方法,在实际工作中该方法是相当重要的方法。


image.png

5.螺旋模型

螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来。使得软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。螺旋模型的整个开发过程如图所示。


image.png

图中的螺旋线代表随着时间推进的工作进展;开发过程具有周期性重复的螺旋线形状。4个象限分别标志每个周期所划分的4 个阶段:制定计划、风险分析、实施工程和客户评估。螺旋模型要点:统一了瀑布模型与原型模型,与增量模型相似,更强调风险分析。
1.软件分多个版本开发,每个版本就是一次螺旋。
2.每个版本按照这样的顺序进行:
1)确定软件目标,选取定实施方案,弄清项目开发的限制条件;(图中左上象限)
2)分析所选取方案,考虑如何识别和消除风险;(图中右上象限)
3)实施软件开发;(图中右下象限)
4)评价开发工作,提出修正建议,调整计划。(图中右下象限、左下象限)
3.需求不是一次获取和实现的,通过多个螺旋来完善。
4.计划也不是一次成型的,每次螺旋都需要调整。

优点:

1)设计上很灵活,可以在项目的各个阶段进行变更;
2)以小的分段来构建大型系统,使成本计算变得简单容易;(国企项目)
3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;
4)随着项目推进,客户始终掌握项目的最新信息 , 从而能够和管理层有效地交互;
5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。、

缺点:

螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的。
因此,这种模型往往适应于内部的大规模软件开发。该模型建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。

6.V模型

V 模型的左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。
V 模型的优点在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发各阶段的对应关系。


image.png

1、需求分析阶段对应生成需求规格说明书,对应测试生成系统测试方案,即为系统测试准备的,该阶段已经完成了单元测试和集成测试,主要是对软件产品的功能与非功能进行测试,几乎不测试代码,所以测试方法以黑盒为主;

2、概要设计阶段对应生成概要设计说明书,对应测试生成集成测试方案,该阶段已完成单元测试,是将各个功能模块组装起来进行的测试,所以也叫组装测试。主要看模块调用是否正常,接口是否可用,数据传输是否正确等,所以用到的测试方法几乎是白盒的方法,如路径覆盖,条件组合覆盖等;

3、详细设计阶段对应生成详细设计说明书,对应测试生成单元测试方案,该阶段是开发人员编码后的第一个测试阶段,是对开发出来的单独模块进行测试,以确保每一个功能模块的功能正常,可以构建桩模块和驱动模块来回调用,方法也是以白盒为主。

4、白盒测试的准则是尽可能覆盖程序内部的逻辑结构,黑盒则是尽可能覆盖所有的输入输出接口,包括文档等一些静态的测试。除常用的测试方法外,仍需补充大范围的随机测试,尽可能达到覆盖率100%。

V模型的缺陷及解决思路
V模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,需求的满足情况一直到后期的验收测试才被验证。
7.W模型
相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。


image.png

9.1.敏捷开发和测试

image.png

10.19.软件质量模型

image.png

11.0软件测试的常识知识

11.1.测试部门的组织结构

5个开发(java) 1个测试 2个移动(AND IOS) 1 个前端 1个产品/项目

按需求来分类: 1个组长: 制定测试计划 和 对测试用例的评审 编写测试报告和测试总结
1个功能测试: 按照测试用例进行点点的人
1个性能测试/接口测试: 满足需求文档上的性能指标
1个自动化测试 python uI自动化 接口自动化 单元自动化
Java
按项目模块划分: pc 移动
具体一级菜单栏 按底部导航栏

image.png

image.png

11.0测试工具的种类

文档工具: word excel
Bug管理工具: 禅道 jira
抓包工具: charles fiddler wineshark
a.抓包 b.模拟弱网测试c.断点替换 d.过滤 e:压力测试
性能工具: jmeter Loadrunner (对业务场景测试)
命令: Linux adb Monkey
编程语言: python
自动化 ; selenium appnium (ui自动化) pytest (测试用例 单元测试) innerHtml (发送测试报告) alluer
数据库 mysql
Bug管理工具: 禅道 Jary
自动化 selenium appnium (ui自动化) pytest (测试用例 单元测试) innerHtml (发送测试报告)
性能测试工具 jmeter Loadrunner、
抓包工具 Fiddler charles (弱网测试的)
接口工具 postman
录制脚本 bodyboy jmeter

云测 腾讯云 模拟不同的移动端或者是web浏览器

命令 Linux adb monkey
数据库 myql
语言 python

最新经典测试用例

朋友圈测试用例

功能测试

1 是否可以点赞成功
2 点赞成功后是否可以去取消
3 没有网络情况下是否可以点赞
4 点赞成功后是否可以评论
5 是否按照点赞顺序,按时间进行排序
6 点赞一排可以显示多少人头像
7 是否有点赞人数限制
8 是否可以多次点赞
9 点赞完成后对手机是否有影响
10 点赞是手机是否有会出现故障
11 是否可以点赞刚删除的朋友圈
12 同一个朋友圈,是否能有多人观看及点赞
13 朋友圈是否有限制不可观看
14 朋友圈是否有设置三天后不可见
15 朋友圈是否对你开放
16 好友是否将你拉黑
17 是否可以点赞1天前朋友圈
18 是否可以点赞7天前朋友圈
19 是否可以点赞30天前朋友圈
20 是否可以点赞1年前朋友圈
21 是否可以点赞半年前朋友圈
22 是否可以点击自己发送的朋友圈
23 是否可以点击刚加好友的朋友圈
24 朋友点赞是否有提示本人收到朋友圈被朋友点赞信息
25 朋友评论是否有提示本人收到朋友圈被朋友评论信息
26 是否能接收朋友圈发的纯文字
27 是否能接收受朋友圈发的表情
28 是否能接受朋友圈发的图片
29 是否能接受朋友圈发的视频
30 是否能接收朋友圈发的音频

性能测试

1 点赞完成后下放点赞的头像显示速度
2 网速对点赞是否有影响
3 能否及时刷新点赞人数
4 能否及时刷新评论人数
5 网速对评论是否有影响

界面测试

1 界面与ui设计的效果图是否一致
2 图片位置显示是否正确
3 下拉朋友圈是否刷新
4 是否是中午简体
5 是否有错别字

易用性测试

1 操作是否简单
2 是否适合于不同年龄段人使用

兼容性测试

1 不同操作系统是否好用
2 不同微信版本
3 不同手机型号

安全测试

1 朋友圈内容涉嫌不良信息
2 看是否为好友,不是好友不可以进行看别朋友圈
3 微信必须要登录

弱网测试

1 2g网络点赞需要时间/是否可以点赞/是否可以评论
2 3g网络点赞需要多长时间/是否可以点赞/是否可以评论
3 4g网络点赞时间多长时间/是否可以点赞/是否可以评论
4 5g网络点赞时间多长时间/是否可以点赞/是否可以评论
5 公共网络点赞多长时间/是否可以点赞/是否可以评论

作者:阿桐随记
链接:https://www.jianshu.com/p/0b93f8381d5e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

支付测试用例

支付的测试用例:

一、在支付金额上

1、金额的最小值 :如0.01
2、无实际支付意义的金额:如0元订单
3、支付金额错误:格式错误 、数字错误(支付金额为负数)
3、超大金额 :设置的最高金额上限。(如微信红包单个最大值为200等)
4、余额小于实际需要支付的金额
5、银行卡或其他设置当日消费金额或者是单笔消费金额超限

二、支付接口上

关于支付会设计到很多第三方接口的相关的事件。比如:支付宝 、微信、网银系统 、手机银行、POS机的终端服务 甚至是 扫码枪 等硬件设备也是有关系的。

三、支付的操作问题上

1、指纹支付
2、免密支付
3、账号+密码支付
4、动态获取支付验证码支付
5、银行卡号+密码绑定支付
6、信用卡可能会设计到支付码等
如今的支付方式多样化、快捷支付和银行卡支付之间的差异性。信用卡和普通储蓄卡之间的差异处。等都是需要考虑的。

四、产品的容错性上(异常处理)

1、如何处理退款
2、支付时出现断网
3、支付失败之后 如何补单和退单
4、支付金额不足的情况下 ,充值后 是否可以继续支付
5、持续点击 是否会出现多次扣款
6、如果发生多次扣款,如何退款到支付账号

五、产品后台处理上

成功订单的账务处理、失败订单的账务处理、退款订单的账务处理、差错账处理等等。

微信发红包测试用例

功能

1.在红包钱数,和红包个数的输入框中只能输入数字
2.红包里最多和最少可以输入的钱数 200 0.01
3.拼手气红包最多可以发多少个红包 100
3.1超过最大拼手气红包的个数是否有提醒
4.当红包钱数超过最大范围是不是有对应的提示
5.当发送的红包个数超过最大范围是不是有提示
6.当余额不足时,红包发送失败
7.在红包描述里是否可以输入汉字,英文,符号,表情,纯数字,汉字英语符号,
7.1是否可以输入它们的混合搭配
8.输入红包钱数是不是只能输入数字
9.红包描述里许多能有多少个字符 10个
10.红包描述,金额,红包个数框里是否支持复制粘贴操作
12.红包描述里的表情可以删除
13.发送的红包别人是否可以领取
13.1发的红包自己可不可以领取 2人

  1. 24小时内没有领取的红包是否可以退回到原来的账户
    14.1 超过24小时没有领取的红包,是否还可以领取
    15.用户是否可以多次抢一个红包
    16.发红包的人是否还可以抢红包 多人
    17.红包的金额里的小数位数是否有限制
    18.可以按返回键,取消发红包
  2. 断网时,无法抢红包
    20.可不可以自己选择支付方式
    21.余额不足时,会不会自动匹配支付方式
    22.在发红包界面能否看到以前的收发红包的记录
    23.红包记录里的信息与实际收发红包记录是否匹配
    24.支付时可以密码支付也可以指纹支付
    25.如果直接输入小数点,那么小数点之前应该有个0
    26.支付成功后,退回聊天界面
    27.发红包金额和收到的红包金额应该匹配
    28.是否可以连续多次发红包
    29.输入钱数为0,"塞钱进红包"置灰

性能

1.弱网时抢红包,发红包时间
2.不同网速时抢红包,发红包的时间
3.发红包和收红包成功后的跳转时间
4.收发红包的耗电量
5.退款到账的时间

兼容

1.苹果,安卓是否都可以发送红包
2.电脑端可以抢微信红包

界面

1.发红包界面没有错别字
2.抢完红包界面没有错别字
3.发红包和收红包界面排版合理,
4.发红包和收到红包界面颜色搭配合理

安全

1.对方微信号异地登录,是否会有提醒 2人
2.红包被领取以后,发送红包人的金额会减少,收红包金额会增加
3.发送红包失败,余额和银行卡里的钱数不会少
4.红包发送成功,是否会收到微信支付的通知

易用性(有点重复)

1.红包描述,可以通过语音输入
2.可以指纹支付也可以密码支付

作者:迪子也重名

原文链接:https://www.jianshu.com/p/38adf9e5b944

文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐