软件测试之兼容性测试
对于基于计算机平台的软件,在测试过程中必须考虑软、硬件的兼容性,在设计测试用例的过程中必须考虑数据转换或转移的问题,应该尽力发现其可能带来的错误。不仅是基于计算机平台的软件,对于嵌入式软件也一样,在软件升级时,也需要考虑硬件平台的兼容性。一个软件具有良好的兼容性,不仅可以降低技术支持的成本,还可以减少系统的维护版本,但不至于仅仅因为兼容性的问题而升级系统。
一、软件兼容
软件兼容是指待发布软件与常用软件在同一环境下使用时,相互之间的影响。计算机中常用的软件有下载类软件、即时通信类软件、压缩解压类软件、文档编辑类软件、位图图像处理类软件、矢量图图像制作类软件、动画制作类软件、杀毒类软件、光盘刻录类软件、系统镜像类软件、多媒体播放软件和其他类软件。
软件兼容主要考虑三个方面:浏览器兼容、分辨率兼容和打印机兼容。但对于嵌入式产品几乎不存在软件方面的兼容性问题,因为不可能和其他软件同时运行于当前的产品中。
1.1 浏览器兼容
浏览器是Web 客户端最核心的构件,来自不同厂商的浏览器对Java、JavaScript、ActiveX、Plug-ins 或不同的HTML 规格有不同的支持。例如ActiveX 是Microsoft 的产品,是为Internet Explorer而设计的,JavaScript 是Netscape 的产品,Java 是Sun 的产品等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java 的设置也不一样。
测试浏览器兼容性的方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
1.2 分辨率兼容
分辨率兼容测试是为了验证页面版式、界面显示以及相关字符在不同的分辨率模式下显示的情况。
通常情况下,在需求规格说明书中会明确地定义系统所支持的分辨率。但是客户计算机的分辨率多种多样,因此在测试过程中几乎不可能全部覆盖到所有的分辨率,并且在成本上也是一个很大的挑战,所以一定要完成需求规格说明书中定义的分辨率,并且一定要在说明书中注明系统所支持的最佳分辨率。常用的分辨率为1024×768、1440×900、1280×800 和1366×768,这是客户最可能使用的几种分辨率,系统一定要支持,其他的分辨率可以尽量兼容。有时为了降低风险,在启动系统时,系统会对当前的分辨率进行判断,如果当前的分辨率不是最佳分辨率,系统则会将分辨率强制转换为系统所支持的最佳分辨率。
1.3 打印机兼容
打印机兼容测试是指使用不同的打印机进行打印报告,观察打印出来的报告排版、内容是否正确。
现在很多系统都具备打印报告的功能,由于客户使用的打印机型号各不相同,所以系统需要兼容各厂家的打印机型号,保证打印报告的内容没有问题。一般情况下需求规格说明书中会明确定义系统支持哪些型号的打印机,但是客户如果已经有打印机了,肯定不希望因为购买了我们的系统而另外再买一台打印机。客户希望系统能支持他们现有的打印机。一般测试打印机兼容需要注意两个问题:一是不同厂家的打印机型号;二是打印纸的规格。
打印机型号兼容性方面,主要是兼容一些常用的打印机型号,由于不同型号的打印机对系统的字体兼容略有不同,所以有可能出现打印出乱码或打印内容丢失的现象。一般情况下需要规格说明书中详细定义兼容的打印机型号,但在系统设计过程中可以尽量考虑通过程序来做到更好的兼容,解决字体对打印结果的影响。
打印纸规格兼容性方面,主要是对常用的B4 和B5 纸进行兼容,由于纸张的大小不一样,对于纸张的兼容更重要的是注意排版内容是否正确、合理。需要注意的是,如果系统销售到国外,必须测试对Letter 纸张类型的兼容,因为国外主要使用的是Letter 类型的纸张。
1.4 数据库兼容
数据库兼容性主要包含两种情况:一是主动地升级数据库,包括数据库平台的升级;二是被动地升级,由于原数据库本身的缺陷或用户需求的更改,不得不升级数据库。
数据库兼容性测试要点如下:
(1)完整性测试。
检查原数据库中各种对象是否全部移入新数据库,比较数据表中数据内容是否与升级前数据库中的内容相同。
(2)应用系统测试。
模拟普通用户操作应用的过程,并结合其应用操作的运行结果进行检查,在数据库移植过程中,存储过程比较容易出错。
(3)性能测试。
数据库升级后,需要对升级后的数据库性能进行详细测试,并与升级前的数据库性能进行比较,检查数据库升级后性能变化的情况。
1.5 操作系统兼容
操作系统兼容性是指在一个操作系统上开发的应用程序,不做任何修改、不用重新编译即可直接在其他操作系统上运行。
由于软件开发技术的限制以及各种操作系统之间存在着巨大的差异性,因此目前大多商业软件并不能达到理想的平台无关性。如果该软件承诺可以在多种操作系统上运行,那么就需要测试它与操作系统的兼容性。
通常所说的操作系统测试,更多的是指在客户端的使用情况,即客户可能使用到的不同的操作系统平台。但对于一个多层次的系统,其兼容性不仅指客户端的使用,还包括服务器端兼容性,但服务器更换平台的情况相对较少,因此操作系统的兼容性更多是指客户使用的操作系统平台。操作系统兼容性的测试内容不仅包括安装,还需对关键流程进行检查。需要测试哪些操作系统上的兼容性,首先取决于软件用户文档上对用户的承诺。
客户端使用到的操作系统更多的是Windows 操作系统,在测试过程中需要注意以下一些问题:
(1)操作系统类型。
常见的Windows 操作系统主要包括 Windows XP、Windows Vista、Windows 7 和Windows 8操作系统,但欧洲地区使用更多的是Windows 7 和Windows 8 操作系统,Windows XP 相当来说使用得比较少。
(2)操作系统位数。
操作系统主要包括32 位和64 位两种,但需要注意在国内主要使用的是32 位操作系统,欧洲地区主要使用的是64 位操作系统。所以在测试中文的操作系统时就没有必要测试64 位了,只要测试32 位即可,同理对于英文操作系统一般只要测试64 位操作即可。
(3)操作系统补丁。
由于操作系统补丁不同,可能对应用程序带来影响,最主要的是不同补丁带来的库函数的影响。
1.6 数据共享兼容
数据共享兼容是指系统与其他系统进行数据传输的能力。应用程序之间数据共享可以增强系统的可用性,并且用户可以轻松与其他系统进行数据共享、传输。数据共享兼容性测试需要注意以下
几个方面:
(1)是否支持文件保存和文件读取操作;
(2)是否支持文件导入与导出操作;
(3)是否支持剪切、复制和粘贴操作,剪切、复制和粘贴操作是程序之间无需借助磁盘传输数据的最常见的数据共享方式;
(4)DDE(Dynamic Data Exchange,动态数据交换)和OLE(Object Linking Embedding,对象链接与嵌入)是Windows 操作系统中在两个程序之间传输数据的方式,DDE 和OLE 数据可以实时地在两个程序之间流动;
(5)是否支持磁盘的读写。
相关文章:

软件测试之兼容性测试
对于基于计算机平台的软件,在测试过程中必须考虑软、硬件的兼容性,在设计测试用例的过程中必须考虑数据转换或转移的问题,应该尽力发现其可能带来的错误。不仅是基于计算机平台的软件,对于嵌入式软件也一样,在软件升级…...

笔记(一)——容器
容器分类:序列式容器:每个元素都有固定位置,取决于插入的时机和地点,和元素无关,如vector、deque、list、stack、queue。关联式容器:元素位置取决于特定的排序准则,和插入顺序无关,如…...

C++入门:命名空间
假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。同样的情况也出现在 C 应用程序中。例…...

操作系统(复试准备)
操作系统(复试准备) 第一章知识点 操作系统概述 操作系统的概念 负责协调软硬件等计算机资源的工作 为上层用户,应用程序提供简单易用的接口 是一种系统软件 操作系统的功能与目标 资源的管理者 处理机管理,存储器管理&#x…...

2023年CDGA考试模拟题库(501-600)
2023年CDGA考试模拟题库(501-600) 501.希望从数据中获取价值的组织认识到,高质量数据比低质量数据更有价值。使用劣质数据充满风险,会损害组织的声誉,导致罚款、收入损失、客户流失和负面的媒体曝光等组织基于各种业务驱动因素而着手进行数据质量管理活动,下列哪项不属于上述驱…...

NCNN+Int8+yolov5部署和量化
【GiantPandaCV引言】 还记得我在两个月前写的文章吗,关于yolov4-tiny+ncnn+int8量化的详细教程:NCNN+INT8+YOLOV4量化模型和实时推理 后来准备写yolov5+ncnn+int8量化的教程,却在yolov5的量化上遇到了麻烦,一方面是量化后速度更慢了,另一方面是精度下降严重,出现满屏都…...

springboot+vue.js协同过滤算法之智能旅游推荐系统java
目 录 第一章 绪论 3 1.1课题背景 3 1.2课题研究的目的和意义 3 1.3 研究现状 4 1.4论文所做的主要工作 4 第二章 技术介绍 5 2.1B/S结构 5 2.2MySQL 介绍 5 2.3MySQL环境配置 6 第三章 系统分析与设计 8 3.1系统说明 8 3.2系统可行性分析…...

Google Brain新提出的优化器“Lion”,效果要比Adam(W)更好
Google Brain新提出的优化器“Lion”,效果要比Adam(W)更好 论文地址:https://arxiv.org/abs/2302.06675代码地址:https://github.com/google/automl/blob/master/lion/lion_pytorch.py 1 简单、内存高效、运行速度更快 与 AdamW 和各种自适…...

慢雾:Discord 私信钓鱼手法分析
事件背景 5 月 16 日凌晨,当我在寻找家人的时候,从项目官网的邀请链接加入了官方的 Discord 服务器。在我加入服务器后立刻就有一个"机器人"(Captcha.bot)发来私信要我进行人机验证。这一切看起来相当的合理。我也点击了这个验证链接进行查看…...

2023-2-25 刷题情况
交换字符使得字符串相同 题目描述 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 “x” 和 “y”,你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候,你都可以在两个字符串中各选一个字符进行交换。 …...

【数据结构】双向链表的接口实现(附图解和源码)
双向链表的接口实现(附图解和源码) 文章目录双向链表的接口实现(附图解和源码)前言一、定义结构体二、接口实现(附图解源码)1.初始化双向链表2.开辟新空间3.尾插数据4.尾删数据5.打印双向链表中数据6.头插数…...

数据结构与算法之[把数字翻译成字符串]动态规划
前言:最近在刷动态规划的算法题目,感觉这一类题目还是有一点难度的,但是不放弃也还是能学好的,今天给大家分享的是牛客网中的编程题目[把数字翻译成字符串],这是一道经典的面试题目,快手,字节跳…...

java 面向对象三大特性之多态 万字详解(超详细)
目录 前言 : 一、为什么需要多态 : 1.白璧微瑕 : 2.举栗(请甘雨,刻晴,钟离吃饭): 3.代码 : 4.问题 : 二、什么是多态 : 1.定义 : 2.多态的实现步骤(重要) : 三、多态的使用 : 1.多态中成员方法的使用(重要…...

git push origin master 情况
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领…...

ElasticSearch查询优化routing
如果一个索引分片多达一百,再加上每个分片数据量大的情况下ES查询速度会慢,这种情况可以根据业务情况考虑使用_routing优化。 _routing 路由 当索引一个文档的时候,文档会被存储在一个主分片上。在存储时一般都会有多个主分片。Elasticsearch 如何知道一个文档应该放置在哪…...

【HashMap 1.7和1.8】
Java中的HashMap是一种常用的数据结构,用于存储键值对。在Java 1.7和1.8中,HashMap的实现有一些不同。 Java 1.7中的HashMap实现是基于“拉链法”的哈希表。每个哈希桶(bucket)是一个链表,存储了散列值相同的键值对。当键值对数量过多时&…...

【Zabbix实战之故障处理篇】Zabbix监控中文乱码问题解决方法
【Zabbix实战之故障处理篇】Zabbix监控中文乱码问题解决方法 一、问题展现1.查看Zabbix仪表盘2.问题分析二、检查Zabbix环境1.检查Zabbix监控主机2.检查Zabbix各组件状态三、在宿主机安装中文字体库1.安装中文字体2.查看字体文件四、安装中文字库1.查看Zabbix所有组件容器2.拷贝…...

学习(mianshi)必备-ClickHouse高性能查询/写入和常见注意事项(五)
目录 一、ClickHouse高性能查询原因-稀疏索引 二、ClickHouse高性能写入-LSM-Tree存储结构 什么是LSM-Tree 三、ClickHouse的常见注意事项和异常问题排查 一、ClickHouse高性能查询原因-稀疏索引 密集索引: 在密集索引中,数据库中的每个键值都有一个索引记录&…...

在Kotlin中探索 Activity Results API 极简的解决方案
Activity Results APIActivity Result API提供了用于注册结果、启动结果以及在系统分派结果后对其进行处理的组件。—Google官方文档https://developer.android.google.cn/training/basics/intents/result?hlzh-cn一句话解释:官方Jetpack组件用于代替startActivity…...

样式冲突太多,记一次前端CSS升级
目前平台前端使用的是原生CSSBEM命名,在多人协作的模式下,容易出现样式冲突。为了减少这一类的问题,提升研效,我调研了业界上主流的7种CSS解决方案,并将最终升级方案落地到了工程中。 样式冲突的原因 目前遇到的样式…...

如何解决报考PMP的那些问题?
关于PMP的报考条件,报考PMP都需要什么条件呢?【学历条件】:需要满足23周岁/高中毕业5年以上/大专以上学历,三个满足一个即可;【PDU条件】:报考PMP需要PDU证明(学习项目管理课程的学时证明&#…...

数据结构栈的经典OJ题【leetcode最小栈问题大剖析】【leetcode有效的括号问题大剖析】
目录 0.前言 1.最小栈 1.1 原题展示 1.2 思路分析 1.2.1 场景引入 1.2.2 思路 1.3 代码实现 1.3.1 最小栈的删除 1.3.2 最小栈的插入 1.3.3 获取栈顶元素 1.3.4 获取当前栈的最小值 2. 有效的括号 0.前言 本篇博客已经把两个关于栈的OJ题分块,可以根据目…...

数据结构与算法之打家劫舍(一)动态规划思想
动态规划里面一部题目打家劫舍是一类经典的算法题目之一,他有各种各样的变式,这一篇文章和大家分享一下打家劫舍最基础的一道题目,掌握这一道题目,为下一道题目打下基础。我们直接进入正题。一.题目大家如果刚接触这样的题目&…...

无人驾驶路径规划论文简要
A Review of Motion Planning Techniques for Automated Vehicles综述和分类0Motion Planning for Autonomous Driving with a Conformal Spatiotemporal Lattice从unstructured环境向structured环境的拓展,同时还从state lattice拓展到了spatiotemporal lattice从而…...

C++ sort()函数和priority_queue容器中比较函数的区别
普通的queue是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。priority_queue中元素被赋予优先级。在创建的时候根据优先级进行了按照从大到小或者从小到大进行了自动排列(大顶堆or小顶堆)。可以以O(log n) 的效率查找…...

STM32开发(14)----CubeMX配置ADC
CubeMX配置ADC前言一、什么是ADC?二、实验过程1.单通道ADC采集STM32CubeMX配置代码实现2.多通道ADC采样(非DMA)STM32CubeMX配置代码实现3.多通道ADC采样(DMA)STM32CubeMX配置代码实现总结前言 本章介绍使用STM32CubeMX对ADC进行配置的方法&a…...

Simple RNN、LSTM、GRU序列模型原理
一。循环神经网络RNN 用于处理序列数据的神经网络就叫循环神经网络。序列数据说直白点就是随时间变化的数据,循环神经网络它能够根据这种数据推出下文结果。RNN是通过嵌含前一时刻的状态信息实行训练的。 RNN神经网络有3个变种,分别为Simple RNN、LSTM、…...

【原创】java+swing+mysql生肖星座查询系统设计与实现
今天我们来开发一个比较有趣的系统,根据生日查询生肖星座,输入生日,系统根据这个日期自动计算出生肖和星座信息反馈到界面。我们还是使用javaswingmysql去实现这样的一个系统。 功能分析: 生肖星座查询系统,顾名思义…...

CentOS 环境 OpneSIPS 3.1 版本安装及使用
文章目录1. OpenSIPS 源码下载2. 工具准备3. 编译安装4. opensips-cli 工具安装5. 启动 OpenSIPS 实例1. OpenSIPS 源码下载 使用以下命令即可下载 OpenSIPS 的源码,笔者下载的是比较稳定的 3.1 版本,读者有兴趣也可前往 官方传送门 sudo git clone htt…...

SQL95 从 Products 表中检索所有的产品名称以及对应的销售总数
描述 Products 表中检索所有的产品名称:prod_name、产品id:prod_idprod_idprod_namea0001egga0002socketsa0013coffeea0003colaOrderItems代表订单商品表,订单产品:prod_id、售出数量:quantityprod_idquantitya0001105…...