zoukankan      html  css  js  c++  java
  • 测试用例

    从错测试:

    (1)引用/传递的字段是NULL

    (2)引用/传递的字段是空值

    (3)引用/传递的字段是空格

    (4)引用/传递的字段达到最大长度

    (5)引用/传递的字段超过限定的最大长度

    (6)填写的参数值不符合字段类型

    (7)输入特殊字符、ASCII字符等,程序不能报错

    上述测试用例只是在对软件的“显式功能”进行测试,作为一名高质量的测试工程师,其他的非功能性需求即隐式功能性需求也是极其关键的。
    
    显式需求与隐式需求
    显式需求 显式功能性需求(Functional requirement)的含义从字面上就可以很好地理解,指的是软件本身需要实现的具体功能, 比如“正常用户使用正确的用户名和密码可以成功登录”、“非注册用户无法登录”等,这都是属于典型的显式功能性需求描述。
    隐式需求 从软件测试的维度来看,非功能性需求主要涉及安全性、性能以及兼容性三大方面。
    
    
    安全性测试用例
    
    用户密码在网络传输过程中是否加密;
    密码是否具有有效期,密码有效期到期后,是否提示需要修改密码;
    不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面;
    密码输入框是否不支持复制和粘贴;
    密码输入框内输入的密码是否都可以在页面源码模式下被查看;
    用户名和密码的输入框中分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面;
    用户名和密码的输入框中分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改;
    连续多次登录失败情况下,系统是否会阻止后续的尝试以应对暴力破解;
    不同页面同时登录是否有一端被踢、本终端被踢下线后点击登录能否再次登录;
    密码输入是否有最大次数限制,超过最大次数限制后,是否采取强制手段限制登录或对账号暂时冻结处理;
    异地登录校验、更换设备登录校验、登录信息异常的情况
    是否可以使用登录的API发送登录请求,并绕开验证码校验;
    是否可用抓包工具抓到的请求包直接登录;
    截取到的token等信息,是否可以再其它终端直接使用,绕开登录;
    token过期时间校验;
    
    性能测试用例
    单用户登录的响应时间是否小于3秒;
    单用户登录时,后台请求数量是否过多;
    高并发场景下用户登录的响应时间是否小于5秒;
    高并发场景下服务端的监控指标是否符合预期;
    高集合点并发场景下,是否存在资源死锁和不合理的资源等待;
    长时间大量用户连续登录和登出,服务器端是否存在内存泄漏。
    弱网延迟或切换网络或断网时登陆是否正常
    
    兼容性测试用例
    不同浏览器下,验证登录页面的显示以及功能正确性;
    相同浏览器的不同版本下,验证登录页面的显示以及功能正确性;
    不同移动设备终端的不同浏览器下,验证登录页面的显示以及功能正确性;
    不同分辨率的界面下,验证登录页面的显示以及功能正确性;
    移动端横屏竖屏切换时显示是否正常;
    是否涉及第三方账号登录,能否正常调起不同版本第三方应用;
    一般来说,测试用例很难穷尽,因此我们在编写测试用例的过程中需要从“场景”出发,有效的利用等价类、边界值的方法,尽可能多的对测试点进行覆盖。
    测试用例的用途和目的
    
    执行测试,发现缺陷
    重复执行测试,重现缺陷
    管理测试过程
    回归测试,验证缺陷是否修复
    使测试更加方便的执行
    提高测试效率
    节省执行测试的时间
    使测试更能按照时间计划进行
    使测试过程更方便管理
    如何多方面考虑测试一个系统:
    
    
    【web页面的测试点的考虑】:
    
    基于整个页面:
    
    1、填写区域是否为空的检查:
    
    A、只填写一处
    
    B、填写部分、空白部分
    
    C、填写剩一处
    
    D、填写所有。
    
    2、针对单个填写框:
    
    A、考虑长度(最长、最短)
    
    B、考虑字符(数字、字母、特殊字符、组合)
    
    C、考虑全角半角
    
    3、测试点1和测试2的组合。
    
    4、存在关联的不同单元格之间的测试点的考虑:
    
    如单张发票金额不能大于累计发票金额。设计用例时就要考虑验证这点。
    
    5、考虑不同功能模块的入口,如正票开具,可以从菜单选择,也可以直接点击正票开具的按钮。不同入口出口的组合要遍历验证。
    
    
    
    【存在关联业务的测试点的考虑】:
    
    重点关注在当前业务走通的情况下,对其他相关联页面的影响。主要考虑如下几个方面:
    
    1、当前业务正常走通,其他相关模块是否能正常显示对应数据。
    
    2、当前业务执行过程中出现异常情况,对自身及子他模块数据的影响是否正常。
    
    3、考虑积累作用:长时间,重复操作本模块,是否会对其他模块的数据处理造成影响,相关模块数据处理是否正常。
    
    4、几个模块共同作用,都发生数据变更,查看彼此间的影响是否正常,数据处理是否正确。
    
    常用测试设计方法:
    
    整体把握:
    
    【测试类型分析法】
    
    单个功能点:
    
    【测试类型分析法】【测试场景分析法】【模块关联】【等价类边界值分析法】
    
    单个界面:
    
    【测试类型分析法】【模块关联】【表间关联】
    
    【等价类边界值分析法】【不同出入口遍历】
    
    单个输入框、选择框等:
    
    【表间关联】【等价类边界值分析法】
    
    测试类型分析法:
    
    【测试类型分析法】:
    
    即将一个功能点按照不同的测试类型进行划分,针对每一个测试类型都进行测试点设计的分析方法。
    
    举例说明:
    
    思维导图设计格式的原则:
    
    1、整体把握:
    
    使用【测试类型分析法】建立第一级目录。
    
    2、单类型测试点:
    
    A、首先以小的功能模块进行分级。
    
    B、小的功能模块里面按照“***执行成功”,“***执行失败”,“***关联性测试”,“异常情况测试”等若干模块。
    
    C、举例:“***执行成功”里面再分“一次执行成功”,“多次执行成功(考虑重复执行同一记录,不同记录)”。
    
    3、最后一级描述规则:
    
    【测试点】+【简洁扼要的测试步骤】+隔断符号+【预期结果】,如:
    
    “校验客户名称长度:点击进入客户信息新增界面,输入客户名称允许输入的最大长度,其他信息符合规则,点击保存。---对应客户信息能够正常保存,显示正常。”
    
    4、严格控制思维导图横向层级:
    
    为了思维导图转化用例时的方便,横向分级不宜过多。
    
    5、最后一级测试描述颗粒度:
    
    一个用例永远只关注一个测试点。比如关注一个输入框的输入内容的时候,就不考虑长度,不考虑其他单元框对他的影响。
    
    测试思维导图设计步骤_1:
    
    用例级别定义说明:
    
    Level1:最常用操作、主成功场景,门槛用例
    
    Level2: 异常场景、失败场景
    
    Level3:不太常用操作或者不太常用的比如边界值、冷僻输入的检查、不停点击按钮等类似的操作的对应用例。
    
    Level4:操作方法比较复杂、测试环境比较生僻,且执行起来有较大难度的对应用例。
    
    一般Level1:Level2:Level3:Level4的用例设计比例约为3:5:1.5:0.5,或者3:5.5:1:0.5
    
    用例执行结果标注说明:
    
    Pass:按照测试用例的操作步骤执行,实际执行结果与预期结果一致。
    
    Fail:按照测试用例的操作步骤执行,实际执行结果与预期结果不一致。出现界面显示异常、处理异常、死机、功能失效等异常情况。
    
    Block:由于测试环境或者其他外部条件的限制,导致用例无法执行。或者用例不适用,需要更新用例的情况。
    
    Unavailable:软件对应功能未实现,导致对应用例无法执行的情况。
    
    investgest    :不确定测试结果的对错,还需要再确认的情况
    
    用例设计原则说明:
    
    1、单个功能的用例设计条数需要考虑其重要程度、重要性高的功能,用例设计就相对完善、相对丰富些,重要性比较低的功能,用例设计的力度就小一些。
    
    2、Level1级别的用例多考虑正常流,少考虑异常流。
    
    3、单条用例执行的步骤和预期结果的条数要控制,步骤太多的话,容易引起测试遗漏。
    
    4、一个用例只有一个测试点。
    
    测试用例更新及维护:
    
    用例维护的方式:
    
    1、根据刷新后的需求说明书,更新用例。
    
    2、根据提交给测试的软件版本的具体实现,刷新用例。
    
    3、根据非pass用例的执行结果,进行分析后,刷新用例。
    
    4、对每个版本发现的问题进行分析,找到测试设计遗漏点,刷新用例。
    
    5、软件功能转测试后,出现变更,追加或删除,刷新用例。
    
    6、需求掌握程度加深后,发现测试设计遗漏点,刷新用例。
  • 相关阅读:
    js数组的基本用法及数组根据下标(数值或字符)移除元素
    Oracle备份一张表
    linux中常见的文件操作命令
    java图片二进制相互转换
    getParameterMap的使用
    前端常用
    Oracle 常用
    JAVA中int、String的类型转换
    MySQL 5.7 新特性大全和未来展望
    你有自己的Web缓存知识体系吗?
  • 原文地址:https://www.cnblogs.com/sunfanvlog/p/14139773.html
Copyright © 2011-2022 走看看