• 11
  • 10
分享

  质量监控的范围和概念

  1.用户体验是否舒服:

  以用户的角度对产品进行使用,以找到不合理,体验差的功能点。

  2.产品设计是否符合:

  以产品的角度对产品设计的完整性进行检验。

  3.性能状况是否稳定:

  以系统运维的角度找到产品性能的瓶颈。

  4.逻辑设计是否存在漏洞:

  以开发人员的角度检测产品的逻辑合理性。

  5.系统安全,数据安全是否有保障:

  以不法分子,黑客的角度对产品进行攻击,以检测产品的安全性。

  测试用例设计方法:

  软测行内共识的设计方法不再赘述,转帖一篇文章小白们可以自己去看:

  测试用例的几种常见设计方法:

  已有的常规方法我们可以照搬照用,但是从质量管理的整体性来说,它仅仅是功能逻辑维度,主要参照物是产品设计文档,所以我要补充的是另外的几个维度。

  所以包含上述方法在内做个补充:

  产品逻辑维度:

  等价类,边界值,错误推测,判定表法,正交实验。

  文字逻辑维度:

  主语,谓语,宾语,定语,状语,补语为逻辑描述的基本要素。

  其中,主语,宾语通常是用户和客户端的关系,谓语可以理解为动作,定语状语为限制条件,补语为补充条件。

  首先是正常语句,其次逐级否定,最后是逐级反义。(有关这个方法本人已经用程序实现,可以自动化生成)

  UI维度

  通常由UI设计师进行检查,但是也有可能需要测试人员进行检查。人工检测包括字体,字号,色值,布局。

  写过UI自动化的都知道,UI自动化的主要原理是页面元素的的识别和命令赋予。

  所以大致我们把它分为以下几个设计方法:

  1、文本框:字符类型,空,等价类,边界值,特殊字符,编程语言关键字,sql关键字。

  字符类型的限制走的是if和else,空值走的是null的判断,等价类边界值走的也是if逻辑,特殊字符主要是考验数据库的兼容性,编程语言和sql关键字考验的是程序安全,避免报错信息出现代码片段,sql语句。

  2、复选框:数据来源,长度,数据量。

  其中需要注意上下左右是否超出页面范围,数据量考验的是响应时间和页面内存。

  3、列表:数据来源,数据量,翻页。

  这里说一下翻页,翻页主要验证的是sql是否有问题,数据是否重复,limit衔接处是否有重复。

  4、按钮:单击,双击,长按,长按移开,多点触发。

  重点说一下不符合产品设计操作的手势,比如单击按钮双击是否造成重复命令,页面重叠,请求重复(数据安全)。多点触发后是否出现重复页面和矛盾请求。这里面的形成的异常测试,最严重的后果就是产生垃圾数据。

  5、页面跳转:中断,返回。

  主要监测的是缓存是否正确,或者无效页面是否创建垃圾数据。

  6、多媒体:图片,语音,视频。正常查看,放大,音量,暂停,快进等常规性验证。

  设备维度

  1、设备按键:比如安卓手机:back键,menu键,home键。截图,录屏,旋转屏,耳机,音量,锁屏,左右滑动。电脑键盘:回车,方向page,home,end,backspace,insert,delete,printscr等是否符合用户习惯,尤其产品文档不太可能涉及这些细节时,这里应该遵循用户习惯。

  2、附件上传或下载:文件格式,下载方式。

  3、系统安全拦截:应该使用主流的杀毒软件,系统管家等对app或者网页进行检测,一方面如果确实有带着病毒或者广告的三方库或者框架,也能及时找出,避免发布上线后因为类似原因造成损失。

  4、内存管理:程序本身的运行需要占用一定的内存空间,如果涉及到本地存储,分为两个方向。第一个方向是,验证程序本身申请的内存大小的边界。第二是验证或计算设备本身的内存多久可以占满。通过程序本身或者系统管家类软件能否清理。

  5、网络:包括有线,wifi,2g,3g,4g,5g...网络下的超时表现,网络切换表现。

  6、三方服务:比如音频播放器,视频播放器,特定格式的编辑器,查看器,浏览器,多媒体输入/输出设备的兼容系。三方服务是否能够有效支撑,是否存在漏洞。如云服务,地图,聊天,输入法,各类前后端框架是否对我方程序有不合理限制。

  7、系统:系统版本,内核版本,苹果,安卓,windows,安卓定制化系统(如小米,华为,三星,OPPO,可参考市场占有率酌情选择),浏览器类型及版本(IE,谷歌,360,火狐等),兼容性测试的抽样选型,以产品要求为主,或者以用户量为主。

  接口维度

  包括调用是否正确,是否有次数限制,参数类型限制,响应时间,并发,稳定性。

  存储维度

  包含数据库,缓存服务,队列服务,搜索引擎。存储是否有字段缺失,获取是否准确。高可用,并发,稳定性。

  性能维度

  性能维度其实在上面已经涉及到了。但是这里也单独说一下。他包含客户端和服务端两个方面。客户端主要是内存上的抗压力。服务端主要是并发请求的抗压力。同时两端都需要进行稳定性测试。

  安全维度

  攻击,窃取等方式手段有多种多样。用户资料主要存储于数据库和缓存服务器,或者是搜索引擎内。测试人员会尝试输入程序的“关键字”,那么程序在exception处理上,应该避免将数据库相关的语句,微服务的名称暴露出来。抓包拦截也是主要攻击手段之一,我们的用户拿着手机东北西走,很有可能进入被监控的无线网络内,如果接口内包含用户的账号密码,电话地址等,是很有可能被拦截窃取的。所以返代理机制需要考虑增加,被监控时应予以提醒。恶意压力请求是最为常见的,我们应该在关键的地方做拦截,比如IP拦截,同一用户单位时间请求量的拦截,请求间隔时间限制。对于数据的格式的严谨性需要增强,有必要的话应该加入加密字段,避免因为用户涉及黄色,暴力,低俗,政治敏感信息牵连我方。

  另外反编译技术可以获取到源代码,所以必要的版本判断需要增强,应该在检测被篡改的客户端发来的请求,要求其更新,否则不予处理。还有一种内存监控修改的方式,来跳转到不该进入的页面或状态。

  自动化维度

  ui自动化的设计,通常以页面为类,按钮为方法,并且命名一个页面为基础页面。校验结果也是页面元素。对象化调用的设计,混合api自动化快速制作需要的数据。

  api自动化的设计,通常以后端服务为类,接口为方法。校验结果包含固定响应,特殊响应,以及混合存储查询来验证写入的正确性。

  性能测试的设计,以ui或api为基础,它的关注点是性能状态。

  监控的设计,以ui或api为基础,把较为重要的部分进行心跳式调用,一旦发现crash或者500的情况要及时的通过邮件等方式发布警报。这个心跳间隔可以是任何时长。

  代码维度

  代码逻辑不仅是遵循业务逻辑那么简单,最重要的是处理异常。例如,字符类型的转化是否完整。多个if应该每个都要跑到。exception/catch是否能补货特定异常,是否能出现其它异常。如果我们的测试执行,没有走遍每一个ifelse,每一个trycatch,那么对于程序的完整性测试就没有做到。如果函数写得很粗糙,那么就会有很多的情况它无法处理,在代码维度上,通常是很难进行测试的。为什么呢,因为专职的开发工程师,是专精一门开发语言的,而测试通常掌握的都是脚本语言,有很多比较重的开发语言是不会的,即便是会了一门两门,那么可能换了工作环境了,你会的东西就用不到了,有的仁兄就说了,我能给开发检查代码,我还干什么测试呢。所以很多时候我们需要借助框架,借助工具去实现,去告诉我们代码覆盖率,哪些地方我们没有测试到,由检测程序来告诉我们。同时作为一名优秀的测试人员,应该培养读代码的能力,重要的沟通能力,起码做到,写虽然写不出来,但是你让我看,我能看明白代码的意义,语言都是想通的,只是各有各的规范而已。

  总结

  当然,我们都知道。测试工程师也是有相应的级别划分的。测试用例的设计本质,是为了给质量保障提供有依据的参照物。而通常设计测试用例的工作,由中级及以下工程师负责。而有一些维度尽管想到了也不知道如何进行。所以通常我们会把测试用例精确到UI维度。其它维度分别规划在自动化测试设,性能测试设计,以及安全测试设计,在后三个测试设计内,其实也不能称之为通常意义的测试用例了。目前测试团队通常有两种模式,一种是以敏捷开发衍生的全站式的测试工程师,一个功能模块下的任务归一个人负责到底,这个时候就适合做一个多维度的测试用例,从头到尾做好保障。另外一种团队模式是功能测试和测试开发分离的模式,功能测试仅负责到UI层面,而其它维度交给专职的测试开发工程师进行测试。无论哪一种执行方式都应该进行全方位的质量保障,如果有缺失,就会有隐患。尤其是用户量较大的知名企业,多少黑客和工作室再盯着,甚至国外的间谍都在打你们的主意,一不留神损失的不光是企业,甚至是国家。

  后续

  对于各个维度可以展开讨论心得。而一个标准化的测试用例编写平台是必要的,因为我们不可能记住每一个测试设计方法,需要一个标准化模板去做,起码在编写用例的过程当中给予相关的提示提醒。有机会的话,我会把更多的细节记录下来分享给朋友们,同时希望朋友们多多提供业内好的东西,大家共同学习。



作者:惯看秋月春风_6398   

来源:http://www.51testing.com/html/65/n-4476465.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前几天开了一次关于安全测试的讲堂,发现好多同学对安全测试拥有浓厚的兴趣,并且也有询问一些安全测试工具的使用方法,今天我就以几个常见的商业扫描器为例,讲解安全工具的使用方法,让你在没有任何基础的情况下快速上手安全测试,发现系统的漏洞。                                                  &nbs...
            1 0 2755
            分享
          • 一、大数据:大数据是一个大的数据集合,通过传统的计算技术无法进行处理。这些数据集的测试需要用各种工具、技术、框架进行处理。大数据涉及数据创建,存储、检索、分析,而且它在数量、多样性、速度方面都很出色。二、大数据的测试类型:验证其数据处理、性能和功能测试是关键;处理:批量、实时、交互;数据质量测试:字段一致性、准确性、重复性、有效性、数据完整性性能测试。三、大数据的测试步骤:step1:数据阶段验证:pre-Hadoop阶段,数据预测试阶段来自各方面的数据资源应该被验证,来确保正确的数据被加载进系统;将源数据与推送到Hadoop系统中数据进行比较,确保他们匹配;验证正确的数据被提取并加载到HDF...
            15 15 1076
            分享
          •   最近有众多网友表示,自己的闲鱼账号突然被封了!大家你一句,我一句,成功让“闲鱼大量封号”这个话题冲上微博热搜,引发更为广泛的关注。  对此,闲鱼方面作出回应,表示近期闲鱼升级了治理方案,闲鱼会根据账号注册实名要求及其他可能存在历史存量僵尸号等因素进行综合判断,若排查到疑似为风险账户,会根据情况进行不同程度的处罚,更前置地保障消费者权益。  有不少网友支持闲鱼的整顿动作,“该管管了,闲鱼的套路,那实在是太多了……”“现在好多都是二道贩子,普通卖家太少了。”  值得一提的是,这是闲鱼新晋成为阿里第一批战略级创新业务“四小龙”后的第一次大规模治理活动。  闲鱼于2014年诞生,上线九年,已经成长...
            0 0 1029
            分享
          •   美国的制裁可能已经将华为的智能手机业务逼到了绝境,但这家中国公司依然坚持不懈,并设法通过生产麒麟 9000S 绕过了这些贸易限制,这是其在短暂停滞后推出的这款定制 SoC被应用于新发布的 Mate 60 Pro 5G。  媒体对新发布的华为Mate 60 Pro 5G 进行了拆解,揭示了全新的麒麟 9000S 芯片 / 图片来源 - 彭博社  虽然在进行性能和效率比较时,麒麟 9000S 并不是能力最强的芯片组,但它的诞生标志着华为未来不再依赖高通等公司的意图,据一位分析师称,高通可能会因为这款新芯片而损失数十亿美元。  尽管华为受到贸易制裁,但仍是高通公司最大的客户之一,2022 年和 ...
            0 0 746
            分享
          •   十年测试心路历程:  由于历史原因,大部分测试人员,最开始接触都是纯功能界面测试,随着工作年限,会接触到一些常用测试工具,比如抓包,数据库,linux等。  我大学学的计算机专业,有一定的编程基础。我的软件测试职业开始和大多数测试人员一样,一开始在一家电商公司做软件功能测试。有人留言问到我,在一线城市做功能测试,如果定个小目标,想拿到年薪二十万,需要具备哪些技能?  首先必须熟练整个产品的业务流程、业务是基础,这样保证产品在快速迭代时、不仅保证新功能的完整性,而且快速回归原有功能不受影响。然后需要掌握一些常用测试工具来辅助测试:  Web端测试:浏览器开发者工具使用,network、con...
            0 0 1137
            分享
      • 51testing软件测试圈微信