案例描述

在日常测试中,当程序加载数据文件时,经常会出现页面卡住、程序不响应、程序崩溃等情况。,调查发现与程序进程中线程的同步和异步有关。

问题描述:

使用文件查看器打开压缩文件时,程序没有响应。

问题原因:

1。经过调查发现,文件查看器打开压缩文件时,会遍历压缩文件中的所有资源,在遍历过程中,出现资源解析错误会导致任务阻塞。2.经过进一步了解,我们发现开发实现该功能时,资源遍历线程放入主线程同步加载,所以当资源遍历线程被阻塞时,主线程没有响应。

解决方案:

1。对资源遍历线程的阻塞场景增加保护,保证遍历线程的正常执行;2.将资源遍历压缩文件线程从主线程放到子线程,形成异步加载,避免单线程失败导致主线程直接挂机,影响程序使用;从以上案例可以看出,在逻辑实现中使用同步或异步线程对于提高程序效率和保护主线程非常重要。

扩展思维

1.开发层面的线程使用:1)使用线程的场景:①当手机APP程序模块需要加载框架+内容时,使用线程效率更高;②优化程序性能时,更倾向于使用线程;2)线程同步和异步在程序中的应用:①主线程执行任务时,异步任务在子线程中执行。主线程可以在主线程上完成操作,而不需要等待子线程的结果返回,然后调用回主线程完成整个过程。这是线程的异步加载操作,可以提高执行效率(如下图);

②当主线程正在执行任务1时,需要等待任务1的响应完成后才能启动任务2。如果任务1被阻止,整个过程将无法继续。这样的同步线程对执行效率影响很大(如下图所示)。

2.线程对测试的影响:1)线程对用例设计的影响:1)数据流加载类的作用。这些功能大部分是异步线程,测试用例的设计可以从网络级和负载级来考虑。②JS注入类的功能。这些函数大部分都是同步线程,所以可以从注入JS函数的有效性和JS注入的时机来考虑测试用例的设计。2)线程对程序性能的影响:①从安全性和性能的角度来看,同步线程虽然解决了线程的安全问题,但始终存在判断锁,导致性能下降;②与同步线程相比,异步线程对程序性能有积极影响,效率更高。一般建议在APP程序中使用异步线程,以保证程序效率。

注:在安全和性能之间,安全是第一考虑因素,其次是性能。

理解程序实现的逻辑在测试工作中是必不可少的。只有更仔细、更清晰地了解,才能对检测方案有更全面的思考,从而保证产品质量。在这里,希望朋友们在技术上越来越好,在软件测试上越来越高!

阿里软件测试工程师手把手教学—作为测试,如何理解线程同步异步相关推荐

  1. 阿里软件测试工程师手把手教学—如何快速定位bug 编写测试用例?

    作为一个测试人员,如果你连常见的系统问题都不懂得分析,频繁地把前端人员问题分配给后端人员,把后端人员问题分配给前端人员,那么你在团队发展中的地位是显而易见的,声誉.赏识.加薪应该是你遥不可及的梦想. ...

  2. 阿里软件测试工程师手把手教学——自动化测试报告太丑,怎么办?

    TestNG的报告太难看了?测试结果维度显示受限?无法确定用例的优先级?查看错误信息不方便吗? Allure测试报告框架帮助您轻松实现"高"报告呈现.本文通过实例演示了如何将All ...

  3. 阿里软件测试工程师手把手教学——如何更好地设计测试用例?

    不知道大家知不知道软件质量模型这个概念. 软件质量模型是衡量软件整体质量效果的度量标准.目前常见的质量模型包括麦考尔模型.博恩模型.FURPS模型.德罗梅模型和ISO9126模型. 一般来说,软件产品 ...

  4. 阿里软件测试工程师手把手教学:自动化脚本中的设计模式-PO模式详解

    请点击输入图片描述(最多18字) 当我们以脚本的形式编写了大量的自动化测试代码后,很容易发现代码可读性太差了.任何一个测试脚本几乎毫无扩展能力或者说扩展起来只能修改边边角角.一旦被测系统的UI层发生变 ...

  5. 好书推荐:《零基础快速入行入职软件测试工程师》学测试一本就

    推荐理由: 全面介绍软件测试的基础知识,帮助零基础读者快速入门! 详细讲解自动化测试和接口测试,帮助读者快速进阶! 深入解析操作系统和数据库,帮助读者进一步提高测试水平! 本书具有以下特点: 1.对初 ...

  6. 软件测试工程师面试题-测试概念篇

    转载于:https://www.cnblogs.com/mrwuzs/p/7976534.html 1.你的测试职业发展是什么? 测试经验越多,测试能力越高.所以我的职业发展是需要时间积累的,一步步向 ...

  7. 虚拟WIFI软件测试工程师,【Wifi测试工程师是什么职位】中互联zhl.com2021年Wifi测试工程师待遇怎么样-看准网...

    岗位职责: 1. 根据项目计划制定路由测试工作计划,包括系统测试.性能测试.自动化测试和回归测试. 2. 对整个测试项目进行跟踪管理,对最终的产品质量负责: 3. 编写路由测试方案.测试计划.测试报告 ...

  8. 软件测试工程师-开发与测试模型

    开发与测试模型 1.开发模型--瀑布模型 优点:开发阶段,各个阶段比较清晰:强调早期计划及需求调查:适合稳定需求的产品开发. 改良:每个阶段都可以融入小的迭代工作. 2.开发模型--快速原型模型 实现 ...

  9. 转正报告不会写?资深软件测试工程师手把手教学,赶紧收藏

    转正报告不知道怎么写?为大家写了个模板,可能写的不好,给各位参考参考\ 进入公司的三个月时间里,在领导和同事们的悉心关怀和指导协助下,使我在较短的时间内适应了公司的工作环境,也熟悉了公司的支付业务流程 ...

最新文章

  1. 如何使用jquery判断一个元素是否含有一个指定的类(class)
  2. 前端一HTML:二十CSS的三种存在方式
  3. 蓝桥杯2016初赛-网友年龄-枚举
  4. vue 字典_【开源】基于Vue的前端组件库HeyUI
  5. [小技巧][JAVA][转换]字符数组char[]与字符串String之间互相转换
  6. 多个containers 共用一个pvc_2020阜新PVC-UH市政管厂家-烟台塑胶
  7. 去除div css背景,jQuery-拖动div CSS背景
  8. bootstrap拖动div_JS组件系列——Bootstrap Table 表格行拖拽(二:多行拖拽)
  9. c#按照指定长度切分字符串
  10. 模型操作_77个典型岗位员工胜任素质模型操作指导手册
  11. pandas mysql insert_python – Pandas将数据插入MySQL
  12. docunment对象
  13. jpeglib的jpeg_finish_compress函数疑似越界
  14. 计算机桌面音量键在哪,电脑音量调节快捷键_电脑音量快捷键设置
  15. 日系插画学习笔记(三):光影与结构
  16. 你的格局决定你的结局
  17. 深圳梅林中学2021年高考成绩查询,2019深圳梅林中学中考录取分数线是多少
  18. 投了10亿元发展“影游IP”的阿里游戏
  19. 推荐几款比较好Android视频播放器
  20. 自制系统(用VMware制作)

热门文章

  1. linux上安装Openssl步骤详解
  2. 软考信息系统监理师备考攻略
  3. 2021-11-02计算从今天算起,100天以后是几月几号,并格式化成xxxx年x月x日的形式打印出来。
  4. Outlook添加网易企业邮箱总是无法验证您连接到的服务器使用的安全证书
  5. 数据科学面试终极指南
  6. ViewPager高度自适应
  7. mysql数据库保存图片路径_mysql数据库怎么存图片路径
  8. 基于matlab的频率特性测试仪,基于Matlab控制系统频率特性分析法
  9. IDEA快捷键【重要】
  10. 关于直播自动点赞功能的实现