测开知识

208 阅读15分钟

测试开发的工作内容:

  1. 首先针对测试这边的工作有(可以根据测试流程来回答):
  • 需求分析阶段:需求分析与评审、学习业务流程、提取功能点、编写需求分析说明书
  • 测试设计阶段:编写测试计划说明书(5W1H)、编写测试用例(涉及自动化测试的话需要编写测试用例脚本)
  • 测试执行阶段:提交BUG、跟踪BUG修改状态(这里可能会有回归测试,并且在测试执行之前会搭建测试环境)
  • 测试总结阶段:提交BUG表单、编写测试总结报告

2、针对开发这边的工作:

  • 自动化测试:编写测试脚本,执行测试,分析,提交BUG,跟踪BUG状态、总结

  • 对测试工具的开发

  • 软件开发(就是开发的工作)

  • 二次开发(在开发人员开发好的软件上进行二次开发)

黑盒测试和白盒测试

一般地,我们将软件测试活动分为以下几类:黑盒测试、白盒测试、静态测试、动态测试、手动测试、自动测试等等。

黑盒测试

黑盒测试又叫功能测试、数据驱动测试或给予需求规格说明书的功能测试。这种测试注重于测试软件的功能性需求。

采用这种测试方法,测试工程师把测试对象看作一个黑盒子,不需要考虑程序内部的逻辑结构和特性,只需要依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试能更好更真实的从用户角度来考察被测系统的功能性需求实现情况。在软件测试的各个阶段,如单元测试、集成测试、系统测试及确认测试等阶段都发挥着重要作用。尤其在系统测试和确认测试中,其作用是其他测试方法无法取代的。 黑盒测试较为知名的测试方法有:等价类划分、边界值分析、因果图分析、错误猜测等。

  1. 等价类划分:将输入值划分为若干个等价类,每个等价类包含一组相似的输入数据,可以代表同类输入中的典型情况,测试时只需要从每个等价类中选择一个输入进行测试。
  2. 边界值分析:针对输入值的边界情况进行测试,因为边界值往往是出错的概率较高的地方。
  3. 因果图分析:通过分析系统中各个因果关系来设计测试用例,以覆盖所有可能的场景。
  4. 错误猜测:根据经验或直觉,猜测系统可能存在的错误,然后设计相应的测试用例进行验证。

白盒测试

白盒测试又称结构测试、逻辑驱动测试或基于程序代码内部结构的测试。此时,需要深入考察程序代码的内部结构、逻辑设计等等。白盒测试需要测试工程师具备很深的软件开发功底,精通相应的开发语言,一般的软件测试工程师难以胜任该工作。

对于白盒测试,常用的测试方法有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖等等。

  1. 语句覆盖:测试用例需要覆盖到被测代码的每一条语句,即使每个语句都被执行,也不能保证代码的完全正确性,但是可以保证代码的一定程度的可靠性。
  2. 判定覆盖:测试用例需要覆盖到被测代码的每个判定点(if语句、switch语句等),并且每个判定点都需要被执行到 true 和 false 两种情况,这样可以保证被测代码的逻辑正确性。
  3. 条件覆盖:测试用例需要覆盖到每个条件表达式的真假值,即需要通过至少两个测试用例来覆盖到每个条件表达式的两个可能结果。
  4. 判定/条件覆盖:测试用例需要同时覆盖到被测代码的每个判定点和条件表达式,可以保证代码的逻辑正确性和条件表达式的正确性。
  5. 多重条件覆盖:测试用例需要覆盖到每个条件表达式中所有条件的组合情况,即需要通过至少两个测试用例来覆盖到每个条件表达式的所有组合可能。

静态测试

静态测试,顾名思义,就是静态的、不执行被测对象程序代码而寻找缺陷的过程。通俗地讲,静态测试就是用眼睛看,阅读程序代码,文档资料等,与需求规格说明书中的需求进行比较,找出程序代码中设计的不合理,以及文档资料中的错误。

在进行代码的静态测试时,可以采用一些代码走查的工具,如 QA C++、C++ Test等。

动态测试

动态测试即为实际的执行被测对象的程序代码,输入事先设计好的测试用例,检查程序代码运行的结果与测试用例中设计的预期结果之间是否差异,判定实际结果与预期结果是否一致,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能状况。

动态测试由四部分组成:设计测试用例、执行测试用例、分析比较输出结果、输出测试报告。

动态测试结合使用白盒测试和黑盒测试。

如何进行具体的测试

  • 功能测试
  • 易用性测试
  • 界面测试
  • 性能测试
  • 安全测试
  • 兼容性测试

性能测试的指标

  • 响应时间
  • 并发数
  • 吞吐量
    • QPS
    • TPS
    • 并发数
    • 响应时间
      • QPS(TPS)  = 并发数/平均响应时间
      • 并发数 = QPS*平均响应时间

QPS vs TPS:QPS 基本类似于 TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。如,访问一个页面会请求服务器2次,一次访问,产生一个“T”,产生2个“Q”。

几种常见的性能测试

  • 性能测试
    • 是否满足明确指标
  • 负载测试
    • 测试系统上限
      • 缓存饱和
      • 响应时间超限
  • 压力测试
    • 继续加大压力到崩溃
  • 稳定性测试
    • 模拟真实场景,给一定压力,看业务是否能稳定运行

App测试和Web测试的区别

  • web和app的区别
    • web项目,一般都是b/s架构,基于浏览器的。
    • App则是C/S的,必须要有客户端。那么在系统测试测试的时候就会产生区别了。

首先从系统架构来看的话,Web测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是App端是不能够保证完全一致的,除非用户更新客户端。如果是App下修改了服务端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。

  • 性能方面
    • web页面可能只会关注响应时间。
    • App则还需要关心流量、电量、CPU、GPU、Memory这些了。
  • 兼容方面
    • Web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容,不过一般还是以浏览器的为主。而浏览器的兼容则是一般是选择不同的浏览器内核进行测试(IE、chrome、Firefox)。
    • App的测试则必须依赖phone或者是pad,不仅要看分辨率,屏幕尺寸,还要看设备系统。系统总的来说也就分为Android和iOS,不过国内的Android的定制系统太多,也是比较容易出现问题的。
  • 相比较web测试,app更是多了一些专项测试:
    • 一些异常场景的考虑以及弱网络测试。这里的异常场景就是中断,来电,短信,关机,重启等。
    • 而弱网测试是App测试中必须执行的一项测试。包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。需要测试丢包,延时的处理机制。避免用户的流失。
    • 安装、卸载、更新:
      • web测试是基于浏览器的所以不必考虑这些。而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件,更新的强制更新与非强制更新、增量包更新、断点续传、弱网,卸载后删除App相关的文件等等。
    • 界面操作
      • 现在app产品的用户都是使用的触摸屏手机,所以测试的时候还要注意手势,横竖屏切换,多点触控,事件触发区域等测试。

单元测试、集成测试、系统测试

  • 粒度不同:
    • 单元测试粒度最小,集成测试粒度居中,系统测试粒度最大。
  • 测试方式不同:
    • 单元测试一般由开发小组采用白盒方式来测试,集成测试一般由开发小组采用白盒加黑盒的方式来测试,系统测试一般由独立测试小组采用黑盒方式来测试。
  • 测试内容不同:
    • 单元测试主要测试单元是否符合“设计”,集成测试既验证“设计”,又验证“需求”,系统测试主要测试系统是否符合“需求规格说明书”。
  • 使用阶段不同:
    • 单元测试为开发人员在开发阶段要做的事情,集成测试和系统测试为测试人员在测试周期内级层做的工作。
  1. 单元测试(Unit Testing)

单元测试是对软件系统中最小的可测试单元进行测试,通常是指对软件的某个函数、方法、类等独立模块进行测试。单元测试通常由开发人员编写,并在开发过程中进行。它的目的是确保单元模块的正确性、稳定性和可靠性,并尽早地发现和修复潜在的缺陷。

  1. 集成测试(Integration Testing)

集成测试是将单元测试通过各种方式集成起来进行测试,检验不同单元之间的协作和交互。集成测试通常由测试人员或专门的集成测试团队进行,并在开发完成后的集成测试阶段进行。它的目的是确保不同单元之间的集成、交互和数据传递的正确性、稳定性和可靠性,并发现和修复可能的集成问题。

  1. 系统测试(System Testing)

系统测试是对整个软件系统进行测试,包括所有的功能、性能、安全性、兼容性等方面的测试。系统测试通常由测试人员或专门的系统测试团队进行,并在软件开发完成后的系统测试阶段进行。它的目的是确保整个软件系统的正确性、稳定性和可靠性,并满足用户需求和预期。

总之,单元测试、集成测试和系统测试都是软件测试的重要组成部分,通过不同的层次和角度对软件进行全面、系统、深入的测试,以提高软件质量和可靠性。

聊天功能设计测试用例

  • 发送对象(普通用户、公众号、群、其他特殊主体)
  • 衍生功能(转发、语音转文字、删除等)
  • 消息发送---单聊、群聊、语音、文字、图片、表情、链接、字符及长度
  • 消息管理---发布通知、接受通知、发文件、消息提醒、通知提醒、声音、震动、好友请求、请求处理
  • 发送内容(空白、正常文字、超长文字、以前曾经引起过崩溃的特殊内容、特殊字符、表情、图片、多媒体、红包、语音等)
  • 消息推送---在线、离线、收发、时序
  • 权限管理---开放群(任何人入群),半开放群(验证入群),验证加好友,不需验证加好友
  • 隐私管理---黑名单,允许好友查看动态,允许陌生人查看动态,允许通过手机号查找,允许真实姓名查找
  • 成员管理---加人,被加,退出,被动退出,编辑,删除
  • 群组管理---创建群,消息设置,申请入群,扫二维码入群,退群,通知提醒,头像编辑,名称编辑,简介编辑,权限编辑,成员编辑
  • 好友管理---扫二维码加人,加好友,查好友,好友推荐,群组推荐,联系人导入,拉黑名单,解除好友,备注名
  • 动态管理---发动态,发投票,点赞,表情,评论,增加,删除,分享,隐藏,编辑
  • 登录退出---忘记密码,更换账号
  • 文件管理---接收,离线接收,预览,删除,分享,转存,文件格式,大小
  • 语音聊天---接通/挂断、通话质量、耳机插拔、音量调解、话筒/扬声器切换、打开/关闭麦克风、后台挂起
  • 视频聊天---接通/挂点/切换语音、视频质量、耳机插拔、音量调解、话筒/扬声器切换、前置后置摄像头切换、视频框切换、后台挂起

微信红包功能怎么测试

  • 功能
    • 在红包钱数,和红包个数的输入框中只能输入数字
    • 红包里最多和最少可以输入的钱数 200 0.01
    • 拼手气红包最多可以发多少个红包 100、超过最大拼手气红包的个数是否有提醒
    • 当红包钱数超过最大范围是不是有对应的提示
    • 当发送的红包个数超过最大范围是不是有提示
    • 当余额不足时,红包发送失败
    • 在红包描述里是否可以输入汉字,英文,符号,表情,纯数字,汉字英语符号,是否可以输入它们的混合搭配
    • 输入红包钱数是不是只能输入数字
    • 红包描述里许多能有多少个字符 10个
    • 红包描述,金额,红包个数框里是否支持复制粘贴操作
    • 红包描述里的表情可以删除
    • 发送的红包别人是否可以领取、发的红包自己可不可以领取 2人
    • 24小时内没有领取的红包是否可以退回到原来的账户、超过24小时没有领取的红包,是否还可以领取
    • 用户是否可以多次抢一个红包
    • 发红包的人是否还可以抢红包 多人
    • 红包的金额里的小数位数是否有限制
    • 可以按返回键,取消发红包
    • 断网时,无法抢红包
    • 可不可以自己选择支付方式
    • 余额不足时,会不会自动匹配支付方式
    • 在发红包界面能否看到以前的收发红包的记录
    • 红包记录里的信息与实际收发红包记录是否匹配
    • 支付时可以密码支付也可以指纹支付
    • 如果直接输入小数点,那么小数点之前应该有个0
    • 支付成功后,退回聊天界面
    • 发红包金额和收到的红包金额应该匹配
    • 是否可以连续多次发红包
    • 输入钱数为0,"塞钱进红包"置灰
  • 性能
    • 弱网时抢红包,发红包时间
    • 不同网速时抢红包,发红包的时间
    • 发红包和收红包成功后的跳转时间
    • 收发红包的耗电量
    • 退款到账的时间
  • 兼容
    • 苹果,安卓是否都可以发送红包
    • 电脑端可以抢微信红包
  • 界面
    • 发红包界面没有错别字
    • 抢完红包界面没有错别字
    • 发红包和收红包界面排版合理,
    • 发红包和收到红包界面颜色搭配合理
  • 安全
    • 对方微信号异地登录,是否会有提醒 2人
    • 红包被领取以后,发送红包人的金额会减少,收红包金额会增加
    • 发送红包失败,余额和银行卡里的钱数不会少
    • 红包发送成功,是否会收到微信支付的通知
  • 易用性(有点重复)
    • 红包描述,可以通过语音输入
    • 可以指纹支付也可以密码支付

微信朋友圈的点赞功能

  • 是否可以点赞、取消点赞
  • 多次点赞会出现什么情况
  • 多人点赞时的顺序是否按照时间顺序进行排列
  • 点赞是否显示头像和名称
  • 点赞之后能否进行评论
  • 点赞之后退出该页面,再次进入朋友圈点赞消息是否还存在
  • 多用户点赞,再次打开朋友圈是是否可以按照顺序看到是谁谁谁赞了我
  • 弱网络的情况下点赞能否实时更新
  • 点赞时有短信或电话进来,能否显示点赞情况
  • 点赞的人是否在可见分组里
  • 点赞之后共同好友的点赞和评论是否会提醒你

软件测试-微信点赞和APP功能测试用例

image.png