软件测试整理二:根据软件特性进行测试

系列文章目录

一、根据软件特性进行测试

评价软件质量的六个特征为:

  1. 功能性

软件所实现的功能满足用户需求的程度。

功能性反映了所开发的软件满足用户称述的或蕴涵的需求的程度,即用户要求的功能是否全部实现了。

  1. 可靠性

在规定的时间和条件下,软件所能维持其性能水平的程度。

可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时能继续运行的程度。

  1. 易使用性

对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。

  1. 效率

在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。

效率反映了在完成功能要求时,有没有浪费资源,此外"资源";这个术语有比较广泛的含义,它包括了内存、外存的使用,通道能力及处理时间。

  1. 可维修性

在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。

可维修性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。

  1. 可移植性

从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。

测试分为功能测试和非功能测试,

非功能测试又可以分为性能测试(压力测试、容量测试、可靠性测试、配置测试)、安全性测试、恢复性测试、备份测试、协议测试、兼容性测试、可用性测试、界面(GUI)测试。

1.手机app测试

手机 App 测试的范围 :

功能测试、性能测试、 安全测试、交叉事件测试、兼容性测试、安装/卸载测试、接口测试、网络测试

2.web测试

Web 测试的范围

功能、性能、界面、兼容性、安全性、数据库、文档

在这里插入图片描述

3.web测试和app测试的不同点

系统架构方面:

web项目,一般都是b/s架构,基于浏览器的 browser

app项目,则是c/s的,必须要有客户端,用户需要安装客户端。client

web测试只要更新了服务器端,客户端就会同步会更新。App项目则需要客户端和服务器都更新。

性能方面:

web页面主要会关注响应时间

而app则还需要关心流量、电量、CPU、GPU、Memory这些。

它们服务端的性能没区别,都是一台服务器。

兼容方面:

web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统的方向的兼容

app测试则要看分辨率,屏幕尺寸,还要看设备系统。

web测试是基于浏览器的所以不必考虑安装卸载。

而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景,包括安装时的中断、弱网、安装后删除安装文件 。

此外APP还有一些专项测试:如网络、适配性。

2.功能测试

功能测试也叫黑盒测试或数据驱动测试,是在已知产品所应具有的功能的情况下,通过测试来检测每个功能是否能正常使用。只需考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码

“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,因此不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

常见的功能测试(黑盒测试)的方法有:

等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。

2.1 web功能测试

摘自‘尚学堂.百战程序员’ppt
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 app功能测试

摘自‘尚学堂.百战程序员’ppt*****

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.性能测试

性能测试是指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。一般在已通过系统测试,功能比较稳定之后进行性能测试。

性能测试包括负载测试、压力测试、并发测试、可靠性测试、容量测试、配置测试

应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。

并发性能测试的基本策略是自动负载测试,通过在一台或几台PC机上模拟成百或上千的虚拟用户同时执行业务的情景,对应用程序进行测试,同时记录下每一事务处理的时间、中间件服务器峰值数据、数据库状态等。通过可重复的、真实的测试能够彻底地度量应用的可扩展性和性能,确定问题所在以及优化系统性能。预先知道了系统的承受力,就为最终用户规划整个运行环境的配置提供了有力的依据。

并发性能测试是在客户端执行的黑盒测试,一般不采用手工方式,而是利用工具采用自动化方式进行

3.1性能测试的指标

性能测试的指标

性能测试常见术语浅析——吞吐量与吞吐率

● 请你回答一下性能测试有哪些指标,对一个登录功能做性能测试,有哪些指标,怎么测出可同时处理的最大请求数量

性能测试常用指标从外部看主要有:

  • 1、吞吐量:每秒钟系统能够处理的请求数,任务数

  • 2、响应时间:服务处理一个请求或一个任务的耗时

  • 3、错误率:一批请求中结果出错的请求所占比例

从服务器的角度看:

  • CPU,内存,服务器负载,网络,磁盘I/O

对登录功能做性能测试

  • 单用户登陆的响应界面是否符合预期

  • 单用户登陆时后台请求数量是否过多

  • 高并发场景下用户登录的响应界面是否符合预期

  • 高并发场景下服务端的监控指标是否符合预期

  • 高集合点并发场景下是否存在资源死锁和不合理的资源等待

  • 长时间大量用户连续登录和登出,服务器端是否存在内存泄漏

怎么测出可同时处理的最大请求数量

  • 可以采用性能测试工具(WeTest服务器性能),该工具是腾讯wetest团队出品,使用起来很简单方便,但测试功能相当强大,能提供10w+以上的并发量,定位性能拐点,测出服务器模型最大并发

3.2性能测试的分类

1)负载测试(Load Testing)

通过对被测试系统不断的加压,直到超过预定的指标或者部分资源已经达到了一种饱和状态不能再加压为止。

通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。此方法主要是为了寻找系统最大的负载能力,为性能调优提供依据。

2)压力测试(Stress Testing)

当系统已经达到一定的饱和程度(如 CPU、磁盘等已经处于一种饱和状态)时,测试系统处理业务的能力,测试系统是否会出现崩溃等。通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

一般通过模拟负载等方法,使系统资源达到一个较高水平。一般用于系统稳定性测试。

怎么做压力测试

  • 1、首先对要测试的系统进行分析,明确需要对那一部分做压力测试,比如秒杀,支付

  • 2、通过写脚本产生压力机器人对服务器进行发包收报操作、或者借助一些压力测试工具比如Jmeter,LoadRunner对测试点进行施压

  • 3、用压力测试工具或者其他方法录制脚本,模拟用户的操作
    对测试点进行正确的施压

  • 4、明确压力测试限制的数量,即用户并发量对测试点设计合适的压力

  • 5、通过测试可以得到吞吐量,平均响应时间等数据,这个数据的背后是整个后台处理逻辑综合作用的结果,这时候就可以先关注系统的CPU,内存,然后对比吞吐量,平均响应时间达到瓶颈时这些数据的情况,然后就能确认性能问题是系统的哪一块造成的

3)并发测试(Concurrency Testing)

通过模拟用户并发访问,测试多用户同时访问同一应用、模块或数据,观察系统是否存在死锁、系统处理速度明显下降等性能问题。

  • 并发用户:同一时刻与服务器进行数据交互的所有用户数量,在线用户未必是并发用户。

4)容量测试(Volume Testing)

寻找软件系统某项指标的极限值(如最大并发用户数、数据库记录数、最大负载、工作量等)的测试。是一种测试目标。

5)可靠性测试(Reliability Testing)

也称稳定性测试、健壮性测试

当系统在一定的业务压力下,让系统持续运行一段时间,观察系统是否达到要求的稳定性。

可靠性测试一般必须给出一个明确的要求,如系统能够持续无故障运行多少天。是一种测试目标。

6)配置测试(Configuration Testing)

  1. 配置测试

通过调整系统软/硬件环境,了解不同环境对系统性能的影响,从而找到系统的最优配置,一般用于系统调优和规划。

  1. 基准测试

在一定的软硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测过程中,通过运行相同的业务场景来比较测试结果确定调优是否达到效果或为系统的选择提供决策依据

  • 虚拟用户:在性能测试中使用虚拟用户模拟真实用户的行为

3.3 web性能测试

1) 链接速度测试

链接的响应时间不能太长,一般不超过 5 秒。

2)负载测试(Load Testing)

测试系统能够承受的最大负载(如最大用户量、最大业务量、最大数据量等)以及性能表现。

3)压力测试(Stress Testing)

测试系统在一定压力下的性能表现,通常业务的错误率不能超过 5%。

3.4 手机APP性能测试

包括内存、cpu、流量、响应时间、电量、压力测试

1、内存:

内存消耗测试节点的设计目标是为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性。

评估典型用户应用场景下,系统资源的使用情况。内存测试一般包括:

  • 空闲状态下的应用内存消耗;
  • 中等规格状态下的应用内存消耗;
  • 满规格状态下的应用内存消耗;
  • 应用内存峰值;
  • 应用内存泄露;
  • 应用是否常驻内存;
  • 压力测试后的内存使用。

对内存进行压力测试:

  • 反复/长期操作下、系统资源是否占用异常。
  • App 反复进行安装卸载,查看系统资源是否正常。
  • 其他功能反复进行操作,查看系统资源是否正常。

注*

  • 空闲状态指打开应用后,点击home键让应用后台运行,此时应用处于的状态叫做空闲;
  • 中等规格和满规格指的是对应用的操作时间的间隔长短不一,中等规格时间较长,满规格时间较短。

2、cpu

获取 App 在典型使用场景及待机状态下的 CPU 占用率。

3、流量:

网络流量测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试。流量测试一般包括:

1)应用首次启动流量提示;

2)典型使用场景及待机状态下消耗的流量。

3)应用后台连续运行2小时的流量值;

4)应用高负荷运行的流量峰值。

4、电量:

测试手机安装目标APK前后待机功耗无明显差异;
常见使用场景中能够正常进入待机,待机电流在正常范围内;
长时间连续使用应用无异常耗电现象。

5、启动速度(响应时间):

  • 响应时间:应用系统从用户发出请求开始,到客户端接收到所有数据所消耗的时间。

1)App 安装、启动、卸载的响应时间。

  • 首次启动:应用首次启动所花费的时间;
  • 非首次启动:应用非首次启动所花费的时间;

2)App 各类功能性操作的响应时间。

3)测试 App 中的各类操作是否满足用户响应时间要求

4)应用界面切换:应用界面内切换所花费的时间。

5)获取 App 特定页面的内容加载耗时。

6)获取 App 退出的耗时

6、在各种边界压力情况下,如电池、存储、网速等,验证 App 是否能正确响应。

  • 内存满时安装 App。
  • 运行 App 时手机断电。
  • 运行 App 时断掉网络。
  • 低电量(例如 5%电量)状态下是否能正确响应
  • 处于特殊地理位置(例如上海)时是否能正确响应
  • 处于特定网络状态下(例如 3G)下是否能正确响应

4.安全测试

摘自‘尚学堂.百战程序员’ppt*****

web安全性测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

手机app安全测试

在这里插入图片描述
在这里插入图片描述

5.兼容性测试

兼容性测试验证软件与其所在的环境的依赖程度,包括对硬件的依赖程度,对平台的依赖程度、其他软件的依赖程度等。

兼容性测试的测试点

1)硬件兼容

  • 包括主板、处理器、内存、显卡、显示器、打印机等。

  • 如不同品牌和架构的计算机、不同频率或不同位数的 CPU、不同大小的内存、 硬盘、不同带宽的网络等。

2)操作系统兼容

  • 包括操作系统类型、位数、补丁版本等。选择测试平台要考虑操作系统的流行程度、 年份、类型、生产厂商等方面。
  • 不同操作系统如 Windows、Mac、 Solaris、Linux 等;
  • 手机平台如 Android、IOS、 Windows Phone。

3)软件并发兼容

  • 浏览器兼容,不同浏览器如 IE、FireFox、Chrome 和 Safari 等。
  • 与其他软件兼容

4)分辨率兼容

  • 测试不同分辨率下软件都能正常使用。

5)向前、向后兼容

  • 向后兼容或向下兼容

指较高版本的程序能顺利处理较低版本程序的数据或者在较老系统中使用;

新版本软件能够兼容以前各种版本产生的历史数据,确保数据向后兼容, 如 Word2013 能够正常打开之前多个 Word 版本(如 Word 2003、Word 2007 等)产生的用户.doc 文件。

  • 向前兼容或向上兼容

指以前的版本支持现在版本生成的数据,现在的版本支持以后的版本数据或者在更高版本的系统中使用。

6)不同客户端软件版本和服务器系统的兼容

  • 服务器上一般部署的都是最新版本,但客户端就不一定。

7)数据共享兼容

  • 测试文档的保存和读取数据格式兼容
  • 剪贴板(考虑格式兼容)

手机app兼容性测试

  • Android、iOS 版本的兼容性。
  • 手机不同操作系统版本的支持。
  • 手机不同厂家系统的支持。
  • 手机不同尺寸的支持。
  • 手机分辨率兼容性。
  • 网络的兼容性:2G/3G/4G/5G/Wifi,弱网下、断网时。
  • 不同浏览器兼容性。
  • 与其他 APP 兼容性。

6.界面测试

摘自‘尚学堂.百战程序员’ppt*****
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

web界面测试

GUI(Graphical User Interface)即图形用户界面。

1)格式验证

  • 验证 Web 页面中一些空间默认的标准定义,如默认值、项目按顺序排列等。

2 )导航条测试

  • 各页面导航条是否能正确地显示;
  • 各页面下导航条显示的内容是否正确;
  • 不同状态下(如登录与未登录),导航条显示的内容是否正确;
  • 导航条的每项内容链接是否正确。

3) 拼写和语法测试

  • 验证页面内容、菜单和链接、图片、表格内容的拼写和语法。

4) 页面排版测试

  • 页面标题验证;
  • 页面元素(文字、窗体、菜单、链接、公司商标等)排版验证;
  • 页面图形验证;
  • 页面版本信息验证;
  • 不同分辨率下的页面显示情况验证;
  • 页面长度验证

5) Tab 键测试

  • Tab 顺序正确跳转。

7.易用性测试

软件测试之易用性测试

易用性指软件产品被理解、学习、使用和吸引用户的能力。

易用性包括五个子特性:易理解性、易学习性、易操作性、吸引性和依从性。对应的易用性测试包括五个方面:易理解性测试;易学习性测试;易操作性测试;吸引性测试;依从性测试。

易用性测试方法有:静态测试、动态测试、动静态相结合测试。

(1)易理解性。

易理解性是指用户认识软件的结构、功能、向导、逻辑、概念、应用范围、接口等难易程度

该特性更多的是指文档内容易于理解,所有文档语言简练,内容应该与产品实际情况相一致,且所有文档中的语句无歧义。对于功能使用时界面显示的向导应该清楚明了,能很好地解释每一步骤的含义,用户一看便清楚。

(2)易学习性。

易学习性是指用户使用软件或产品的容易程度(运行控制、输入、输出)。

对于易学习性有两个方面的约束:

  • 1)所有与用户有关的文档内容都应该详细、结构清晰、语言准确

  • 2)软件或产品本身易学,菜单选项很容易找到,一般菜单不要超过三级,各图标含义明确、简单易懂,操作步骤向导解释清楚、易懂,产品本身具有很好的引导性,即一个软件客户不用看说明书都能正确地使用。

(3)易操作性。

易操作性是指用户操作和运行控制产品难易程度

易操作性要求人机界面友好、界面设计科学合理、操作简单等。易操作的软件让用户可以直接根据窗口提示进行使用,无须过多地参考使用说明书和参加培训。各项功能流程设计直接明了,尽量在一个窗口完成一套操作。在一个业务功能中可以关联了解其相关的业务数据,具有层次感。合理的默认值和可选项的预先设定,避免过多的手工操作。

如果某个操作将产生严重后果,该功能执行应是可逆的,或程序应给出该后果的明显警告,并且在执行该命令前要求确认。一旦出现操作失败,及时的信息反馈是非常重要的,没有处理结果或者是处理过程没有相关信息反馈的系统不是一个优秀的系统。

在易用性和功能性方面,产品设计是个取舍的问题,易用性和功能两者存在一定冲突。对于核心业务的处理能力比易用性更重要,合理地规划和平衡易用性与功能性的取舍是值得关注的,这需要对应用软件的整体把握和经验的不断积累。

(4)易吸引性。

易吸引性是指用户第一次接触产品时,对产品的喜爱程度

易吸引性主要表现为产品的外观或软件的界面设计方面,一个拥有良好外观和界面设计的产品,显然可以更好地吸引客户的眼球。

(5)依从性。

依从性是指软件产品依附于同易用性相关的标准、约定、风格指南或规定的能力

在产品设计过程中,产品的易用性应该遵守国家系统与易用性的标准,这是最基本的要求。而很多企业对于产品外观、界面都有自己的一套标准,在产品设计过程中应该遵守企业的这些相关标准,如界面设计,企业往往会对界面的颜色搭配、按钮大小、按钮形状等有明确的规定。

摘自‘尚学堂.百战程序员’ppt*****
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.数据库测试

web数据库测试

数据库测试是为了发现错误和缺陷而运行数据库的过程。数据库测试方法也分为白盒测试和黑盒测试。

数据库黑盒测试主要包括以下方面:

  • 数据库表结构是否合理;
  • 数据结构(如数据类型、长度)是否正确定义,并且需要注意数据结构与输入界面中数据的类型和长度是否一致,如果不一致,数据库则会报错;
  • 表与表之间的关系是否正确,主外键是否合理;
  • 索引的创建是否合理;
  • 存储过程功能是否完整,能否正确接受输入、输出正确结果;
  • 能否正确插入(增加)、更新、删除数据;
  • 数据库操作权限定义是否正确;
  • 能否正确处理并发操作;
  • 表级、列级完整性约束条件是否满足;
  • 数据库的处理能力、可靠性、可维护性、性能是否满足要求。

9.网络测试

手机APP网络测试

外网测试主要实现模拟客户使用网络环境,检验客户端程序在实际网络环境中使用情况进行业务操作。

外网测试主要覆盖到 WiFi/2G/3G/4G/5G/wap、电信/移动/联通、所有可能的组合进行测试。

模拟信号屏蔽时候。

在高山、丘陵、火车上等特殊环境下进行全面测试。

10.接口测试

手机app接口测试

Client 端和 Service 端的交互。

Client 端的数据更新和 Service 端的数据是否一致。

Client 端更新时断开。

Client 端更新时,Service

二、测试工具

app测试工具

1.功能测试自动化

a) 轻量接口自动化测试

  • jmeter

b) APP UI层面的自动化

  • android:UI Automator Viewer,Android Junit,Instrumentation,UIAutomator,

  • iOS:基于Instrument的iOS UI自动化,

2.性能测试

a) Web前端性能测试

  • 网络抓包工具:Wireshark
  • 网页文件大小:webpagetest、pagespeed insight、chrome adb

b) APP端性能测试

  • Android内存占用分析:MAT
  • iOS内存问题分析:ARC模式
  • Android WebView性能分析
  • iOS WebView性能分析

c) 后台服务性能测试

  • 负载,压力,耐久性、可拓展性,基准:apacheAB,Jmeter,LoadRunner,

3.专项测试

a) 兼容性测试

  • 手工测试:操作系统,分辨率,rom,网络类型
  • 云平台:testin,脚本编写,Android。

b) 流量测试

  • Android自带的流量管理,
  • iOS自带的Network
  • tcpdump抓包
  • WiFi代理抓包:Fiddler

流量节省方法:

压缩数据,json优于xml;WebP优于传统的JPG,PNG;控制访问的频次;只获取必要的数据;缓存;

c) 电量测试

  • 基于测试设备的方法,购买电量表进行测试。
  • GSam Battery Monitoe Pro
  • iOS基于Instrument Energy工具

d) 弱网络测试

  • 手机自带的网络状况模拟工具

基于代理的弱网络的模拟工具:

  • windows:Network Delay Simulator
  • Mac:Network Link Conditioner

猜你喜欢

转载自blog.csdn.net/weixin_45486448/article/details/119967694