功能测试框架

功能测试框架可以包括:界面友好性测试、功能测试、链接测试、容错测试、稳定性测试、常规性能测试、配置测试、算法测试等等。
  1.1.1 界面友好性测试
  风格、样式、颜色是否协调
  界面布局是否整齐、协调(保证全部显示出来的,尽量不要使用滚动条
  界面操作、标题描述是否恰当(描述有歧义、注意是否有错别字)
  操作是否符合人们的常规习惯(有没有把相似的功能的控件放在一起,方便操作)
  提示界面是否符合规范(不应该显示英文的cancel、ok,应该显示中文的确定等)
  界面中各个控件是否对齐
  日期控件是否可编辑
  日期控件的长度是否合理,以修改时可以把时间全部显示出来为准
  查询结果列表列宽是否合理、标签描述是否合理
  查询结果列表太宽没有横向滚动提示
  对于信息比较长的文本,文本框有没有提供自动竖直滚动条
  数据录入控件是否方便
  有没有支持Tab键,键的顺序要有条理,不乱跳
  有没有提供相关的热键
  控件的提示语描述是否正确
  模块调用是否统一,相同的模块是否调用同一个界面
  用滚动条移动页面时,页面的控件是否显示正常
  日期的正确格式应该是XXXX-XX-XX或XXXX-XX-XXXX:XX:XX
  页面是否有多余按钮或标签
  窗口标题或图标是否与菜单栏的统一
  窗口的最大化、最小化是否能正确切换
  对于正常的功能,用户可以不必阅读用户手册就能使用
  执行风险操作时,有确认、删除等提示吗
  操作顺序是否合理
  正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。
  系统应该在用户执行错误的操作之前提出警告,提示信息.
  页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。
  合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。
  检查本地化是否通过:英文版不应该有中文信息,英文翻译准确,专业。
  背景灰度冻结
  1.1.2 功能测试
  使用所有默认值进行测试
  根据所有产品文档、帮助文档中描述的内容要进行遍历测试
  输入判断
  所有界面出现是和否的逻辑,要测试
  异常处理
  敏感词
  根据需求文档的流程图遍历所有流程图路径
  根据程序内容,遍历if elif else switch的逻辑点要遍历
  界面各种控件测试
  如对于输入框测试:
  一、字符型输入框:
  字符型输入框:英文全角、英文半角、数字、空或者空格、特殊字符“~!@#¥%……&
?[]{}”特别要注意单引号和&符号。禁止直接输入特殊字符时,使用“粘贴、拷贝”功能尝试输入。
  长度检查:最小长度、最大长度、最小长度-1、最大长度+1、输入超工字符比如把整个文章拷贝过去。
  空格检查:输入的字符间有空格、字符前有空格、字符后有空格、字符前后有空格
  多行文本框输入:允许回车换行、保存后再显示能够保存输入的格式、仅输入回车换行,检查能否正确保存(若能,检查保存结果,若不能,查看是否有正常提示)、
  安全性检查:输入特殊字符串
  二、数值型输入框:
  边界值:最大值、最小值、最大值+1、最小值-1
  位数:最小位数、最大位数、最小位数-1最大位数+1、输入超长值、输入整数
  3.异常值、特殊字符:输入空白(NULL)、空格或"~!@#$%^&()_+{}|[]:"<>?;’,./?;:’-=等可能导致系统错误的字符、禁止直接输入特殊字符时,尝试使用粘贴拷贝查看是否能正常提交、word中的特殊功能,通过剪贴板拷贝到输入框,分页符,分节符类似公式的上下标等、数值的特殊符号如∑,㏒,㏑,∏,+,-等、
  输入负整数、负小数、分数、输入字母或汉字、小数(小数前0点舍去的情况,多个小数点的情况)、首位为0的数字如01、02、科学计数法是否支持1.0E2、全角数字与半角数字、数字与字母混合、16进制,8进制数值、货币型输入(允许小数点后面几位)、
  安全性检查:不能直接输入就copy
  三、日期型输入框:
  合法性检查:(输入0日、1日、32日)、月输入[1、3、5、7、8、10、12]、日输入[31]、月输入[4、6、9、11]、日输入[30][31]、输入非闰年,月输入[2],日期输入[28、29]、输入闰年,月输入[2]、日期输入[29、30]、月输入[0、1、12、13]
  考虑开始日期与结束日历的比较,特别是在查询的时候.
  异常值、特殊字符:输入空白或NULL、输入~!@#¥%……&(){}[]等可能导致系统错误的字符
  安全性检查:不能直接输入,就copy,是否数据检验出错?
  1.1.3 业务流程测试(主要功能测试)
  业务流程,一般会涉及到多个模块的数据,所以在对业务流程测试时,首先要保证单个模块功能的正确性,其次就要对各个模块间传递的数据进行测试,这往往是容易出现问题的地方,测试时一定要设计不同的数据进行测试。
  如某一功能模块具有最基本的增删改查功能,则需要进行以下测试:
  单项功能测试(增加、修改、查询、删除)
  增加——>增加——>增加 (连续增加测试)
  增加——>删除
  增加——>删除——>增加 (新增加的内容与删除内容一致)
  增加——>修改——>删除
  修改——>修改——>修改 (连续修改测试)
  修改——>增加(新增加的内容与修改前内容一致)
  修改——>删除
  修改——>删除——>增加 (新增加的内容与删除内容一致)
  删除——>删除——>删除 (连续删除测试)
  1.1.4 链接测试
  主要是保证链接的可用性和正确性,它也是网站测试中比较重要的一个方面。
  可以使用特定的工具如XENU来进行链接测试。
  1.1.5 容错测试
  输入系统不允许的数据作为输入
  把某个相关模块或者子系统停掉,验证对当前系统的影响
  配置文件删除或者配置错误
  数据库注入错误数据
  1.1.6 稳定性测试
  系统不间断运行(7* 24),验证是否内存泄露、系统其他资源是否存在泄露
  如果很紧急上线,可以跑一晚上或者周末跑两天。
  一般压力很大的情况下,数据库连接数问题、内存泄露问题会曝露的比较快但是死锁可能不能体现,所以要看系统重要性,如12306稳定性则最好7*24小时
  1.1.7 常规性能测试
  连接速度测试
  用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
  另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
  负载测试
  负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?
  压力测试
  负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。
  进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
  压力测试的区域包括表单、登陆和其他信息传输页面等
  1.1.8 易用性测试
  系统界面的控件是否可以通过tab键遍历,并且顺序合理
  主要功能的入口和操作是否易于理解
  界面是否布局合理,功能是否易于查找和使用
  操作步骤
  操作习惯
  有足够的提示信息,且信息文字描述准确
  1.1.9 兼容性测试
  兼容性测试不只是指界面在不同操作系统或浏览器下的兼容,有些功能方面的测试,也要考虑到兼容性,
  包括操作系统兼容和应用软件兼容,可能还包括硬件兼容
  比如涉及到ajax、jquery、javascript等技术的,都要考虑到不同浏览器下的兼容性问题。
  转载自:https://www.cnblogs.com/ray-mr-huang/p/10926830.html

热门文章

暂无图片
编程学习 ·

Hadoop----HDFS的API操作

HDFS文件上传 1、源代码` @Test public void testCopyFromLocalFile() throws IOException,InterruptedException,URISyntaxException{//1、获取文件系统Configuration configuration = new Configuration();configuration.set("dfs.replication","2");//副…
暂无图片
编程学习 ·

Easyui网上书城前端界面

Easyui网上书城前端界面登录界面注册界面首页界面查询书籍界面购物车界面login.htmlregister.htmlindex.htmlsearch.htmlshopping.html 接上一篇博客. 首先,前端界面所需要的界面有 登录 注册 首页 查询书籍 购物车 登录界面注册界面首页界面查询书籍界面购物车界面login.html…
暂无图片
编程学习 ·

Docker的帮助和镜像命令

帮助命令 docker version 查看docker版本 docker info 显示全系统信息 docker --help 显示docker相关的所有命令 镜像命令 列表镜像 docker images 列表本机上的镜像REPOSITORY --表示镜像的仓库源 TAG --表示镜像的标签 IMAGE ID --镜像的ID CREATED --镜像的创建时间 SIZE --…
暂无图片
编程学习 ·

windows 搭建es 集群 使用cerebro

1.2.一次修改三个节点下配置文件具体操作:主节点nodecluster.name: my-applicationnode.name: nodenode.master: truenode.attr.rack: r1network.host: 127.0.0.1http.port: 9200transport.tcp.port: 9300discovery.seed_hosts: ["127.0.0.1:9300","127.0.0.1:…
暂无图片
编程学习 ·

python 实现螺旋矩阵

创建一个大小为m * n的矩阵, 并以螺旋方式遍历它。 在遍历时,我们跟踪变量“ val”以填充下一个值, 我们将“ val”一个接一个地递增,并将其值放入矩阵中。 以下是简单实现: def spiral_matrix(m,n)::param x: colunm index:param y: row indexa = [[0 for _ in range(m)]…
暂无图片
编程学习 ·

记录一下开始搭建springboot+jsp项目遇到的一个问题

记录一下开始搭建springboot+jsp项目遇到的一个问题简述自己搭建项目的过程错误及解决总结加补充 最近刚开始学习搭建springboot项目,用到的ide工具是idea,前端用的是jsp 简述自己搭建项目的过程 直接上图在idea中创建一个springboot项目,选择好自己使用的jdk 刚创建好的项目…
暂无图片
编程学习 ·

梯度直方图和灰度共生矩阵

下面这三篇文章写的不错:https://blog.csdn.net/guanyuqiu/article/details/53117507https://blog.csdn.net/qq_32892383/article/details/79768684https://blog.csdn.net/qq_32892383/article/details/79779513
暂无图片
编程学习 ·

https://www.cnblogs.com/hdk1993/p/5853233.html

c++文件打开方式详解 csdn编译器使用方法 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与…
暂无图片
编程学习 ·

数据结构之查找

【知识框架】一、查找的基本概念 1、查找表 查找表是由同一类的数据元素(或记录)构成的集合。集合中的数据元素之间存在着完全松散的关系,因此查找表是一种非常灵便的数据结构。 2、关键字 关键字是数据结构(或记录)中某个数据项的值,用它可以标识一个数据元素(或记录)…
暂无图片
编程学习 ·

jupyter引用当前目录下的文件不成功解决方案

1.创建一个Ipynb_importer.py 文件内容如下: import io, os,sys,types from IPython import get_ipython from nbformat import read from IPython.core.interactiveshell import InteractiveShellclass NotebookFinder(object):"""Module finder that locates…
暂无图片
编程学习 ·

冒泡排序

冒泡排序 public class Test{public static void main(String[] args){int[] arr = {20,5,15,10,0,25};int temp = 0;for (int j=0;j<arr.length-1;j++ ){for (int i=0;i < arr.length-1-i ;i++ ){if (arr [i] > arr [i+1]){temp = arr [i+1];arr [i+1] = arr [i];arr…
暂无图片
编程学习 ·

LeetCode 237. 删除链表中的节点

目录结构1.题目2.题解1.题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为:示例:输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那…
暂无图片
编程学习 ·

uni-app app平台微信支付

一、App平台支付流程 流程:支付平台功能申请 -> manifest.json 里配置支付参数 -> uni-app 里调用 API 进行支付 二、微信App支付功能申请到 微信开放平台 申请移动应用并开通支付功能,申请应用后可以获取 AppID 和 AppSecret 值 应用接入 微信商户平台,选择 App 支付…
暂无图片
编程学习 ·

力扣简单题 169. 多数元素(摩尔投票法)

题目: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [3,2,3] 输出: 3示例2: 输入: [2,2,1,1,1,2,2] 输出: 2做法分析: 对于2,2,1,3,1,…
暂无图片
编程学习 ·

react全局监听路由变化

关于WithRouter作用:把不是通过路由切换过来的组件中,将react-router 的 history、location、match 三个对象传入props对象上介绍一个简单应用通过withRouter将三个属性传入组件的props上,路径变化,属性就会变化,属性变化,就会触发componentWillReciveProps这个钩子,我们…
暂无图片
编程学习 ·

Python入门教程:pip的安装和使用

我们都知道python有海量的第三方库或者说模块,这些库针对不同的应用,发挥不同的作用。我们在实际的项目中,或多或少的都要使用到第三方库,那么如何将他人的库加入到自己的项目中内呢? 打个电话?大哥你好,想用下你那个库,麻烦给邮箱发个源码呗!显然这是个笑话。Python官…