8年测试总结,App测试要点常见bug分类,从功能到性能测试...

news2025/4/4 15:34:55

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

而针对手机应用软件APP的系统测试,我们通常从如下几个角度开展:功能模块测试、兼容性测试、安装和卸载测试、软件更新测试、性能测试、用户体验性测试、交叉事件测试、用户界面测试等。

功能测试要点及常见缺陷

1、APP崩溃
这是测试中的常见问题,这类问题也是非常严重的,会直接影响用户对产品的第一印象,例如我们正在使用某个APP,正在使用突然应用就停止响应,界面上弹出“强制关闭错误”的窗口,需要强制关闭应用,或者正在使用时出现闪退的现象。

这些情况都很影响用户的体验,导致用户卸载该APP。通用的触发移动APP崩溃的测试场景,如下:
验证在有不同的屏幕分辨率,操作系统和运营商的多个设备上的APP行为;
用新发布的操作系统版本验证APP的行为;
验证在如隧道,电梯等网络质量突然改变的环境中的APP行为;
通过手动网络从蜂窝更改到Wi-Fi,或反过来,验证APP行为;
验证在没有网络的环境中的APP行为;
验证来电/短信和设备特定的警报(如警报和通知)时的APP行为;
通过改变设备的方向,以不同的视图模式,验证APP行为;
验证设备内存不足时的APP行为;
通过用测试工具施加载荷验证APP行为;
用不同的支持语言验证APP行为。

2、功能未实现或只实现了部分
这类问题在测试过程中也经常出现,送测的版本有的只实现了部分功能,未实现产品需求说明书里的全部功能,例如账单明细查询,要求显示每笔交易账单的明细并且显示是否已入账,开发实现了每笔交易账单的明细,但是未实现显示该笔账单是否已入账。

3、功能实现错误
未按产品需求说明书中的功能实现,如按照产品需求说明书,白名单内的用户进行登陆时不受单点登陆的限制,也就是说同一个账号可以同时在A手机和B手机登录,但是开发实现错误,白名单内的用户在A手机登录后,在B手机登录,然后点击A手机上APP的功能,会弹出提示:该账号在B手机已登录,A手机强制退出登录。

4、功能测试要点
根据产品需求文档编写测试用例;
软件设计文档编写用例;
测试要求:保证输入数据正确,并且进行了正确的操作,明确正确的输出结果和中间数据数值及格式。

5、兼容性测试要点及常见的兼容性缺陷
IOS系统常见版本有7.0、8.1、8.4、9.1等,硬件常见iPhone4S、iPhone5、iPhone5S、iPhone5C、iPhone6、iPhone6S、iPhonePlus、iPad系列;
安卓常见的版本有4.3、4.4、5.1、6.0,硬件更是数之不尽,不同的品牌,常见的如三星系列、华为系列、小米系列、OPPO系列、VIVO系列等;

测试APP在不同的机型上由于软件、硬件等不同而出现各种各样的问题,这些都是缺陷聚集的地方,一个页面可能在安卓手机上显示正常,但可能在iPhone手机上显示错位。

所以测试中尽量覆盖主流的手机型号和版本,如iPhone系列、三星系列、华为系列、小米系列、oppo系列、vivo系列等,找出在这些主流手机上使用app出现的缺陷并修复。

6、安装、卸载测试要点及常见缺陷
安装过程中出现闪退;
安装完成后,点击APP无反应;
安装完成后,点击APP,APP出现闪退;
已经存在旧版本,但不卸载旧版本,进行覆盖安装新版本时,版本号是新版本的版本号,但APP的内容仍然是旧版本。

7、安装、卸载测试要点
安装测试很重要,用户使用APP的第一个动作就是安装APP,如果安装APP出现问题,会让用户直接弃用该APP。

测试中主要从以下方面进行测试:
应用是否可以在IOS不同系统版本或Android不同系统版本上安装(有的系统版本过低,应用不能适配);

软件安装后是否可以正常运行,安装后的文件夹及文件是否可以写到指定的目录里;

安装过程中是否可以取消,安装空间不足时是否有相应提示;
检查安装包是否齐全,尤其DLL,检查安装手册;
如果应用需要通过网络验证之类的安装,需要测试一下断网情况下是否有相应提示;

是否可以删除应用(可通过桌面删除,也可以通过软件卸载安装。曾发现在IOS手机上有个应用安装时未完全安装,终止安装后,未完成安装的应用图标一直显示在手机上,并且无法成功删除);

测试卸载后文件是否全部删除所有的安装文件夹;

卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以正确卸载;
卸载是否支持取消功能,单击取消后软件卸载情况是否正常。

8、软件更新测试要点
当客户端有新版本时,有更新提示;
软件更新一定要测,确保Android软件更新可以正确更新新版本,且安装运行正确;

确保IOS软件更新会有限制,正式版只有上了商店且有版本更新时才能测试;

用户取消版本更新时,老版本可以正常使用,但是下次启动应用时,仍出现更新提示;

当有新版本时,不删除客户端的情况下,直接更新检查是否能正常更新,且更新后客户端的功能是否最新版本(正常来讲不用强制删除本地客户端可以正常更新);

出现跨版本更新的时候,可以更新成功。

性能测试要点及常见缺陷

加载时间过长;
应用程序首次启动速度慢;
进入某个界面速度慢;
启动某一有动画效果的界面,动画执行过程不流畅,或者动画执行卡顿时间长;
响应某一用户事件时长时间无响应;
应用长时间运行后,随机出现卡顿现象;
服务器无法响应,报HTTP500错误;
APP出现黑白屏;
APP崩溃。

性能测试要点

性能也是衡量APP质量的一个指标,如果加载时间过长,响应时间过长,用户没耐心等待,很可能直接卸载APP

APP的启动时长是否过长;
APP使用时对CPU、内存的消耗情况;
APP使用时Crash的几率是否较多,可以进行埋点分析测试;
APP使用时,电量流量的使用;
反复长期的操作情况下,系统该资源的使用情况;
响应能力测试,验证各种情况下不通操作能否满足用户的响应请求。

1、用户体验性测试及常见缺陷
以主观的普通消费者的角度去感知产品或服务的舒适、有用、易用、友好亲切程度。通过不同个体、独立空间和非经验的统计复用方式去有效评价产品的体验特性,提出修改意见提升产品的潜在客户满意度。主要从易用性和友好性方面进行测试。

2、常见缺陷
界面显示是否美观,界面的色彩、字体大小是否合适、布局是否美观,提示语是否友好;
按钮、对话框、列表和窗口等是否符合用户的使用习惯;
是否易于导航、导航是否直观、导航与页面结构、菜单、连接页面的风格是否一致。

3、用户体验性类的缺陷
界面显示不美观、界面色彩用户使用不舒服、界面色彩和按钮、其他的编辑框等不搭调、图片和字体显示布局不美观(文字包围图片方面)、界面的字体不满足视力不好的用户、菜单层次太深、相关的选项离得太远、按钮不可点击(如果按钮处于不可用状态,一定要灰掉,或者拿掉按钮,否则会给用户误导)

超长的页面加载时间,移动端的要求比较高,一般要求无等待间隔的加载,页面加载时间过长,会导致用户没耐心等待而弃用该APP。

页面排版过长,一般很少有浏览者有兴趣看页面中最下面的内容,90%的用户,打开一个页面,只浏览第一屏的内容,就以为看到了全部,而不会向下滚动。一个过长的页面很容易引起浏览者的视觉疲劳;

不友好的导航,不友好的导航是最影响用户操作的,不能让用户很方便的找到自己想到的内容。用户来到一个页面不知如何返回上一页,不知道当前页面是在哪个栏目下的。

这样很可能用户来了一次就不会再来了,这也是现在比较强调信息架构设计的原因,导航设计是信息架构中的一部分。用户每次都得用重新打开APP的方式来寻找内容的话,很难有用户会留存;

过期的信息,很久不更新的信息,很容易让浏览者感到反感,而且在心中也会对你这个产品的品牌形象大打折扣。过期的新闻,过期的促销信息、活动信息都是致命伤;
死链接或链接错误;

缺少互动的内容,缺少用户的参与,不能让用户表达情感和思想,注定这个产品只是个固步自封的产品。

现在最基本的,都要提供的一个“意见反馈”的入口,以便产品的忠实用户发表看法,从而收集这部分反馈去改进产品。再者有互动的口子,也会让用户觉得产品是比较开放的;
恶意插件,恶意弹出窗口;
提示语粗暴不友好。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有拼尽全力,才能谱写出人生最华美的篇章。不要畏惧失败,要坚定自己的信念,迎难而上,一步一个脚印地向成功前进。相信自己,勇往直前,未来就在你手中。

每个人都有自己的梦想和奋斗目标,但只有勇于追求、坚持不懈的人才能实现它们。即使路途中遇到挫折和困难,也要保持信心和毅力,相信自己可以克服一切困难,最终成就自己的理想。

生命中最艰难的事情之一是坚持自己的梦想,但这也是最值得追求的。我们应该始终保持热情和动力,向前迈进,即使在困难时期也不要停下来。只有通过不断努力,才能实现我们想要的一切。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字IC设计怎么入门?(附学习全流程)

看到很多小伙伴都不了解数字IC设计该怎么学,下面就来给大家来具体讲讲。 其实对于初级数字 IC 设计工程师而言,不仅仅需要较好的 Verilog 语法功底,还要熟悉企业的 Linux 环境以及 EDA 工具,此时你就需要掌握 Shell,V…

Django 权限管理和guardian插件

内置权限管理 Django内置的权限管理, 是一种表权限, 就是可分别配置某管理员用户对某个表的全部数据有没有增删改查4种权限. 图形界面配置权限 之前提到,使用命令行创建超管用户: python manage.py createsuperuser这其实是在最普通的用户的基础上将…

百度网盘的最新插件(懂得都懂)

下面先给大家介绍一下油猴插件。 这个插件为什么叫油猴? 现在我们经常提到的油猴插件,常指Tampermonkey,但Tampermonkey翻译过来是叫篡改猴,为什么会叫油猴呢?原因是因为另一个插件Greasemonkey,它翻译过…

Qt编写iFIx组态软件日报表插件的实现

一、iFIx中生成report.MDB文件 在Ifxi组态软件的【调度】中新建调度任务【report】添加【定时器调度项】FixTimer5,间隔1h触发一次。通过此任务及脚本程序,将相关变量定时存入自动生成的report.MDB文件中。 用户脚本程序如下: ---- User Co…

Sui对外开放开发者Office Hour

Sui宣布开启新一轮的Sui开发工程师Office Hour。本期的Office Hour由Sui基金会和Mysten Labs共同主办,为Sui上开发的相关技术问题进行答疑解惑并提供支持。 开发工程Office Hour将于每周五1:00 AM(GMT8)开设,时长为1小时。 每个…

程序性能优化实践总结——JAVA

文章目录 1、 衡量程序性能的指标2、Java 程序性能优化切入点3、获取程序的性能数据1、nmon:获取系统性能数据2、jvisualvm:获取JVM性能数据3、jmc:获取Java应用详细性能数据4、arthas:获取单个请求的调用链耗时5、wrk获取Web接口的性能数据 4、应用程序优化1、缓冲区2、缓存3、…

vm.min_free_kbytes调整导致GI异常,kernel: oracle: page allocation failure

有个11204 rac的测试环境,客户反馈凌晨rman全备时偶尔会有内存耗尽导致数据库重启的情况,不是合同内的维护环境,请我们帮忙处理。我估计是没配置vm.min_free_kbytes,之前也调整多次每次都成功完成,就没有多想&#xff…

ROS1 图像数据转发

为节约带宽提高效率采用jpeg: sensor_msgs::CompressedImage image_msg; ros::Publisher img_pub n.advertise<sensor_msgs::CompressedImage>(“image1”, 10); image_msg.format“jpeg” ; image_msg.data.resize(jpeg_data_size); memcpy(image_msg.data.data(),jpeg…

【CUDA编程】 动态体素化实现

动态体素化实现 动态体素化DV克服了硬体素化HV的一些缺点。动态体素化DV保留了分组grouping阶段&#xff0c;相反&#xff0c;它没有采样固定的点数或体素容量&#xff0c;它保留了点和体素之间的完全映射。因此&#xff0c;体素数和每个体素中的点数都是动态的&#xff0c;依…

深入理解 SpringBoot 日志框架:从入门到高级应用——(七)SpringBoot日志配置

SpringBoot 官方文档&#xff1a;https://docs.spring.io/spring-boot/docs/2.7.12/reference/htmlsingle SpringBoot 底层依赖 Spring Boot 对所有内部日志记录使用 Commons Logging&#xff0c;但使底层日志实现保持为打开状态。 为 Java Util Logging、Log4J2 和 Logback …

【计算机网络自顶向下】如何学好计网-第一章概论

相关术语 URI&#xff1a;Uniform Resource Identifier 统一资源标识符&#xff0c;指的是一个资源 URL&#xff1a;Uniform Resource Location 统一资源定位符&#xff0c;URI的子集&#xff0c;用地址定为的方式指定一个资源 URN&#xff1a;Uniform Resource Name 统一资…

DBeaver连接SQLite数据库

一、前言 SQLite小巧轻便的开源免费关系型数据库&#xff0c;适合嵌入单机应用随身携带。桌面版推荐使用DBeaver。 官网&#xff1a;SQLite Download Page github&#xff1a;GitHub - sqlite/sqlite: Official Git mirror of the SQLite source tree 类似的开源免费且小巧…

vue+elementui实现app布局小米商城,样式美观大方

目录 一、效果图 1.首页效果图 2.分类 3.购物车 4.我的 5.登录注册 6.商品详情 7.搜索 二、项目实现 1.项目结构、设计说明 2.路由配置实现 3.首页实现源码 4.登录注册实现&#xff0c;模拟登录注册流程&#xff0c;用户数据存储到本地浏览器缓存 三、总结 一、效果…

『2023北京智源大会』开幕式以及基础模型前沿技术论坛

『2023北京智源大会』开幕式以及基础模型前沿技术论坛 文章目录 一. 黄铁军丨智源研究院院长1. 大语言模型2. 大语言模型评测体系FlagEval3. 大语言模型生态(软硬件)4. 三大路线通向 AGI(另外2条路径) 二. Towards Machines that can Learn, Reason, and Plan(杨立昆丨图灵奖得…

UE4/5样条线学习(四):样条线的创建和自然摆动

这一次我们创建一个actor蓝图&#xff0c;不过我们这次并不需要在一开始就创建样条线组件&#xff0c;而是在游戏中根据两个点去创建样条线&#xff0c;然后用时间轴根据样条线带动物品旋转位移。 制作&#xff1a; 组件部分&#xff1a; 第一步&#xff0c;创建一个actor蓝图…

CSDN铁粉增长秘籍

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

【Jmeter】在进行综合场景压测时,由于不同的请求,要求所占比例不同,那如何实现呢?

在进行综合场景压测时&#xff0c;由于不同的请求&#xff0c;要求所占比例不同&#xff0c;那如何实现呢&#xff1f; 有人说将这些请求分别放到单独的线程组下&#xff0c;然后将线程组的线程数按照比例进行配置&#xff0c;这种方法不是很好&#xff0c;想想&#xff0c;不…

【计算机网络自顶向下】如何学好计网-第二章应用层

第二章 应用层 应用层协议原理 网络应用程序体系结构 客户机/服务器体系结构&#xff1a;至少有一个服务器&#xff0c;一个客户机&#xff0c;其中服务器总是打开的&#xff0c;具有固定的众所周知的IP地址&#xff0c;主机群集常被用于创建强大的虚拟服务器&#xff0c;而客…

OpenCV 笔记_1

笔记_1 文章目录 笔记_1Mat类数据类型读取Mat类支持的运算图像读取&#xff0c;显示&#xff0c;保存imread 图像读取namedWindow 创建要显示的窗口imshow 窗口显示imwrite 图像保存 视频加载与摄像头的使用VideoCapture 加载视频或摄像头get 获取属性VideoWriter 保存视频 图像…

vue 生命周期

人的-生命周期 一组件从 创建 到 销毁 的整个过程就是生命周期 Vue_生命周期 1. 钩子函数 Vue 框架内置函数&#xff0c;随着组件的生命周期阶段&#xff0c;自动执行 作用: 特定的时间点&#xff0c;执行特定的操作 场景: 组件创建完毕后&#xff0c;可以在created 生命周期…