大数跨境
0
0

作为测试人员,如何理解线程同步异步

作为测试人员,如何理解线程同步异步 博雅慧聚
2021-01-22
0
导读:作为测试人员,如何理解线程同步异步

背景

    日常测试中,程序加载数据文件,时常出现页面卡顿、程序无响应、程序崩溃等情况,排查发现与程序进程中线程的同步异步有关。

案例描述

问题描述: 
    使用文件查看器打开压缩文件时,出现程序无响应问题。 
问题原因: 
    1、经排查发现,在文件查看器打开压缩文件时,会对压缩文件中所有资源进行遍历,在遍历过程中某个资源解析出错,导致任务阻塞。
    2、进一步了解后发现,开发在实现功能时,将资源遍历线程放在了主线程中进行同步加载,所以资源遍历线程阻塞时,导致主线程无响应。 
解决方案: 
    1、对资源遍历线程阻塞场景添加保护,保证遍历线程正常执行; 
    2、将资源遍历压缩文件线程从主线程放到子线程进行,形成异步加载,避免单个线程失败导致主线程直接挂掉,影响程序使用; 
    通过以上案例可以看出,逻辑实现中使用同步或异步线程,对程序的效率提升以及主线程的保护是非常重要的。

延伸思考

1、 开发层面对线程的使用: 
    1) 使用线程的场景: 
        ① 移动APP程序模块需要加载框架+内容时,使用线程更为高效; 
        ② 优化程序性能时,更偏向使用线程; 
    2) 线程同步异步在程序中的应用: 
        ① 主线程在执行任务时,将异步任务在子线程中执行,主线程无需等待子线程的结果返回,完成主线程上的操作即可,等待子线程的结果返回后,再回调给到主线程,完成整个进程。这是线程的异步加载操作,这样可以提高执行的效率(如下图);

        ② 主线程在执行任务1时,需等待任务1响应完成后,才能开始任务2,如任务1阻塞,则整个进程不能进行,这样的同步线程对执行效率有很大的影响(如下图)。 

2、线程对测试的影响: 
    1)线程对case设计的影响: 
        ① 数据流加载类的功能。这类功能多为异步线程,可以从网络层面和加载量级层面考虑测试case的设计; 
        ② JS注入类的功能。这类功能多为同步线程,可以从注入JS功能的生效性和JS注入时机考虑测试case的设计。 
    2)线程对程序性能的影响: 
        ① 从安全和性能层面考虑,同步线程虽然解决了线程的安全问题,但每次都有判断锁,导致性能降低; 
        ② 相对同步线程来说,异步线程对程序性能的影响是积极的,效率更高,一般APP程序中都建议使用异步线程,保证程序的效率。

 
注意:在安全与性能之间,首先考虑的是安全,其次是性能。

结束语

       了解程序实现逻辑是测试工作中必不可少的,只有了解的更细更清楚,才能对测试方案有更全面的思考,从而保证产品质量。在此希望小伙伴们技术越来越棒,在软件测试这条路上越走越高!


博 雅 慧 聚     

博雅慧聚科技发展有限公司(简称"博雅慧聚BoyaFocus")成立于2017年3月16日,是博雅软件股份有限公司和徐州市软件园科技发展有限公司共同发起成立的高科技公司,公司实缴注册资金5000万元,总部位于淮海经济区中心城市-徐州市。

博雅慧聚业务方向:软件测试、基于大数据的信息化应用。

软件测试:公司依托股东的支持,结合徐州以及淮海经济圈的区域经济特征,以互联网+服务为核心,与国内著名高校合作,研发自有知识产权的测试软件,打造国内首家“互联网+测试”服务商云平台。

大数据应用:在生态环境领域,公司应用大数据技术,针对大气污染形势严峻问题,研发了多维度空气质量监测分析平台,为环保智能化管理提供专业的数据分析和技术支持,全方位提升大气环境监察能力和管控手段;在交通安全领域,公司利用现代高科技,围绕云服务、大数据应用、先进检测、智能传感器、物联网(IoT)等先进技术,在道路危化品运输分析及监管、道路运输重点管控车辆安全态势分析及实时监控方面做出了多项大数据创新应用,为智慧交通提供全面优质的技术服务。





长按识别二维码关注&下载博雅环保APP




【声明】内容源于网络
0
0
博雅慧聚
博雅慧聚致力于成为面向行业和应用的、以IT服务为核心的科技型创新公司。
内容 554
粉丝 0
博雅慧聚 博雅慧聚致力于成为面向行业和应用的、以IT服务为核心的科技型创新公司。
总阅读179
粉丝0
内容554