1.本发明属于计算机技术领域,尤其涉及一种软件测试方法、设备及系统。
背景技术:2.任何一款软件在交付客户之前,都需要进行大量的测试,以验证软件的功能是否达到预期目标,对指令的响应是否正确,运行过程是否稳定等。机顶盒中运行有中间件软件,以及各种功能的web应用,因此,对机顶盒中运行的软件进行测试,也是机顶盒厂商必须做的工作之一。
3.在机顶盒启动完成后,机顶盒会将预设的图像内容发送至与机顶盒相连的电视机,测试人员即可看到相应的显示画面。进行测试时,测试人员通过遥控器向机顶盒操作指令,同时通过电视机显示的画面查看机顶盒中应用软件对于操作指令的响应情况。比如,测试人员打开任一款web应用,通过遥控器发送焦点移动指令、确认指令、返回指令、音量调节指令等操作指令,同时观察该web应用对于操作指令的响应过程是否正确。
4.在实际应用中,机顶盒运行有多款软件,每一款软件的测试过程都需要测试人员重复的执行上述测试操作,整个测试过程耗时非常长,测试效率低下,难以满足实际应用需求。
技术实现要素:5.有鉴于此,本发明的目的在于提供一种软件测试方法、设备及系统,缩短机顶盒软件测试过程耗时,提高测试效率,满足实际应用需求,具体方案如下:
6.第一方面,本发明提供一种软件测试方法,应用于软件测试设备,所述软件测试设备与机顶盒通讯连接,所述方法包括:
7.获取预设测试指令;
8.发送所述预设测试指令至所述机顶盒,以使所述机顶盒中的待测软件执行所述预设测试指令;
9.接收所述机顶盒中所述测试软件返回的,与所述测试指令对应的执行结果;
10.将所述执行结果和预设参考结果进行比对,得到测试结果。
11.可选的,所述获取预设测试指令,包括:
12.获取预设指令列表,其中,所述预设指令列表记录有按预设顺序排列的多条预设测试指令;
13.解析所述预设指令列表,得到各所述预设测试指令。
14.可选的,所述发送所述预设测试指令至所述机顶盒,包括:
15.按照所述预设顺序发送各所述预设测试指令至所述机顶盒。
16.可选的,所述获取预设测试指令,包括:
17.获取预设指令集中任意一条预设测试指令。
18.可选的,所述获取预设测试指令,包括:
19.在预设时长内,按预设周期在预设指令集中获取包括多条预设测试指令的测试指令组。
20.可选的,所述测试指令组中包括一条确定指令,所述发送所述预设测试指令至所述机顶盒,包括:
21.依次发送所述测试指令组中所述确定指令以外的其他预设测试指令;
22.在所述确定指令以外的其他预设测试指令发送完后,发送所述确定指令。
23.可选的,本发明第一方面任一项提供的软件测试方法,还包括:
24.在发送任一所述预设测试指令后,执行预设延时指令。
25.可选的,所述执行结果包括日志文件和与所述预设测试指令对应的响应图片,所述将所述执行结果和预设参考结果进行比对,得到测试结果,包括:
26.根据所述日志文件以及所述预设参考结果中的参考文件生成第一测试结果;
27.将所述响应图片与预设参考结果中的参考图片进行比对,得到第二测试结果。
28.第二方面、本发明提供一种软件测试设备,包括:存储器和处理器;所述存储器存储有适于所述处理器执行的程序,以实现本发明第一方面任一项所述的软件测试方法。
29.第三方面、本发明提供一种软件测试系统,包括:运行待测软件的机顶盒、机顶盒监视器、红外发生器,以及本发明第二方面所述的软件测试设备,其中,
30.所述软件测试设备与所述机顶盒监视器通讯连接;
31.所述机顶盒监视器分别与所述红外信号发生器以及所述机顶盒相连;
32.所述机顶盒监视器解析所述软件测试设备发送的预设测试指令得到与所述预设测试指令对应的数字量键值,并将所述数字量键值转换为模拟量键值发送至所述红外发生器;
33.所述红外发生器发送所述模拟量键值至所述机顶盒,以使所述机顶盒中的待测软件执行所述模拟量键值对应的所述预设测试指令。
34.基于上述技术方案,本发明提供的软件测试方法,软件测试设备在获取预设测试指令后,发送预设测试指令至机顶盒,以使机顶盒中的待测软件执行预设测试指令,之后,软件测试设备接收机顶盒中测试软件返回的,与测试指令对应的执行结果,并将所得执行结果和预设参考结果进行比对,得到测试结果。与现有技术中的人工测试方法相比,本发明能够实现软件的自动测试,因而能够有效缩短机顶盒软件测试过程耗时,提高测试效率,满足实际应用需求。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.图1是现有技术中一种机顶盒应用场景示意图。
37.图2是本发明实施例提供的一种软件测试系统的系统框图;
38.图3是本发明实施例提供的一种软件测试方法流程图;
39.图4是本发明实施例提供的一种软件测试装置的结构框图;
40.图5是本发明实施例提供的一种软件测试设备的结构框图。
具体实施方式
41.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.参见图1,图1是现有技术中一种机顶盒应用场景示意图,如图所示机顶盒通过网线或者其他网络连接方式与路由器相连,进而通过路由器连接互联网络,同时,机顶盒的输出端通过预设规格、满足预设通讯协议的音视频线与显示设备相连(图1中以电视机示出),当然,机顶盒还需要连接工作电源,满足正常的工作需求。在使用中,机顶盒通过互联网络获取网络资源,并对所得资源进行转换,使得用户能够在现有电视上观看数字电视节目,以及通过互联网进行交互式数字化娱乐、教育和商业化活动。
43.为了更为清楚的阐述本发明实施例提供的软件测试方法,下面首先对本发明实施例提供的应用本发明实施例提供的软件测试方法的软件测试系统进行介绍。
44.可选的,参见图2,图2是本发明实施例提供的一种软件测试系统的结构框图,该系统包括:运行待测软件的机顶盒10、机顶盒监视器20、红外发生器30,以及软件测试设备40,其中,
45.软件测试设备40中运行有本发明实施例提供的软件测试方法所对应的测试软件,能够向机顶盒10发送相应的预设测试指令,同时,能够接收机顶盒10对所得预设测试指令的执行结果,并最终基于执行结果得到对机顶盒10中运行软件的测试结果。对于具体的测试方法,将在后续内容中进行详细阐述,此处暂不详述。
46.机顶盒10中运行的软件主要包括中间件和各种应用软件,在机顶盒10开机启动后,中间件首先自启动,完成各个模块和资源的初始化,并进一步检测机顶盒10的网络状态,确保机顶盒10联网成功。进一步的,中间件通过网络请求部署在web服务器上的web应用,由中间件中的浏览器模块负责都web应用进行解析,渲染,最终把具体的网页内容,转换成图像。浏览器产生的图像,通过机顶盒10和电视机连接的音视频线把图像和声音输出到电视机的显示设备。在本系统中,机顶盒10产生的音视频信息会通过机顶盒监视器20反馈至软件测试设备40。
47.软件测试设备40与机顶盒监视器20通讯连接。其中,机顶盒监视器20是一种带有安卓操作系统的设备,在本发明实施例述及的测试过程中,起到桥梁的作用,如前所述,机顶盒监视器20与软件测试设备40建立通讯连接,当然,这种通讯连接可以是有线连接,也可以是无线连接,本发明对于机顶盒监视器20与软件测试设备40之间通讯连接的具体实现方式不做限定。
48.进一步的,机顶盒监视器20还分别与红外信号发生器30以及机顶盒10相连。可选的,机顶盒监视器20至少通过两种途径与机顶盒10相连,其一是通过hdmi线与机顶盒10相连,接收机顶盒10反馈的音视频信息;其二,通过usb线与机顶盒10相连,通过usb线获取机顶盒10的日志内容。
49.可选的,机顶盒监视器20还通过usb线与红外信号发生器30相连,在实际测试过程
中,机顶盒监视器20接收软件测试设备40发送的预设测试指令,并解析所得预设测试指令,得到与预设测试指令对应的数字量键值,然后,将数字量键值转换为模拟量键值发送至红外发生器30。可以想到的是,在机顶盒监视器20解析预设测试指令的过程中,可以在机顶盒监视器20内预设测试指令与数字量键值之间的对应关系,在得到软件测试设备40发送的预设测试指令之后,查询该对应关系,即可直接得到相应的数字量键值。
50.红外发生器30用于将所得模拟量键值转换为红外信号,发送以红外信号传递的模拟量键值至机顶盒10,从而使机顶盒10中的待测软件执行模拟量键值对应的预设测试指令。
51.同时,作为预设测试指令的执行结果,机顶盒10会通过hdmi线向软件测试设备40反馈响应所得预设测试指令所对应的图像信息、音频信息等,当然,机顶盒10具体反馈的执行结果,还与预设测试指令的具体内容以及机顶盒10的功能设置有关。除此之外,机顶盒10还会向软件测试设备40反馈日志信息。
52.基于上述软件测试系统,本发明实施例提供一种软件测试方法,该方法应用于图2所提供的软件测试系统中的软件测试设备中,可选的,该软件测试设备可以是任何能够运行预设测试软件,接收音视频信息、日志内容,并基于预设分析程序对所得音视频信息以及日志内容执行预设分析操作的电子设备,比如pc机、笔记本电脑、专业的测试服务器等。
53.可选的,参见图1,图1是本发明实施例提供的软件测试方法流程图,本发明实施例提供的软件测试方法,可以包括:
54.s100、获取预设测试指令。
55.为了对机顶盒中运行的软件进行充分而全面的测试,本发明实施例所提供的软件测试方法,根据机顶盒的实际应用场景,给出了多种获取预设测试指令的方法,力求全面、准确、高效的完成对机顶盒运行软件的测试。
56.可选的,首先对本发明实施例中述及的预设测试指令进行介绍。本发明实施例述及的预设测试指令是与机顶盒实际应用中机顶盒遥控器向机顶盒发送的控制指令相一致的,在机顶盒的控制过程中,遥控器向机顶盒发送的控制指令大都是以具体的数字来表示不同的控制操作,这些数字被称为键值,比如,遥控器方向键上的上、下、左、右四个方向键,分别是用数字37、38、39、40来表示的。基于此,本发明实施例中述及的预设测试指令也可以是对应的键值。
57.机顶盒的实际应用过程,以及对软件测试的测试要求,大致的测试场景可以分为三类:固定流程的测试、随机流程的测试,以及压力测试。
58.固定流程的测试,比如用户从web应用首页进入某播放页面的操作过程中,对应的页面切换流程,或者说,控制指令的发出顺序基本是固定的,同时,也是可以明确获知的。比如需要在首页按一次左键来切换焦点,并按一次确定键使页面从首页跳转到详情页,在详情页需要按一次右键来切换焦点,然后再按一次确定键来使页面从详情页跳转到播放页,到达目的页面。这个过程中,我们依次输入了左键、确定键、右键、确定键。这样,就获取了指令的发送顺序。然后再从机顶盒中间件软件说明书中获知左键键值为37,右键键值为39,确定键键值为13,返回首页键键值27。针对这种应用场景的测试需求,本发明实施例提供一个预设指令列表,该预设指令列表中记录有按预设顺序排列的多条预设测试指令。可以想到的是,预设顺序是基于某一功能的操作顺序设置的。在具体测试时,获取并解析该预设指令
列表,便可得到预设指令列表中的各个预设测试指令。
59.对于随机流程的测试,主要是为了模拟用户在实际使用过程中,无目的的、毫无规则的操作过程,对于此种情况,本发明实施例提供一预设指令集,该预设指令集中包括多条预设测试指令,在进行随机流程的测试时,只需获取预设指令集中的任一条预设测试指令即可。可以想到的是,预设指令集中的预设测试指令的数量越多,越能够全面的对机顶盒中的待测软件进行测试,当然,还需要结合软件测试设备的存储空间、数据处理能力等多方面条件,确定预设指令集的构成。还可以想到的是,进行随机流程的测试时,可以根据实际的测试需求,决定测试的次数,即从预设指令集中获取预设测试指令的次数。
60.对于压力测试,需要循环的跳转到各个栏目中的页面中。但是,进入的顺序是随机的。压力测试,就是模拟用户平常生活中操作遥控器的场景。为了测试待测软件的稳定性,需要做压力测试,需要做长时间的操作。此时,前述预设指令集中就包括几万条甚至十几万条指令,需要连续测试一周以上的时间,以此来测试待测软件是否足够稳定。因为要在测试过程中进入待测软件的不同栏目,在切换栏目时,需要在首页上操作,因此,需要在制定获取预设测试指令时,随机插入确定指令,以此来使页面跳转到首页。
61.基于上述内容,本发明实施例提供的软件测试方法,在进行压力测试时,会在预设时长内,按照预设周期在预设指令集中获取包括多条预设测试指令的测试指令组,并且,每一测试指令组内均包括一条用于返回首页的确定指令。
62.s110、发送预设测试指令至机顶盒,以使机顶盒中的待测软件执行预设测试指令。
63.如前所述,获取预设测试指令的情况分为多种,相应的,获取预设测试指令之后的发送预设测试指令的过程也是互不相同的。
64.具体的,如果前述步骤是通过解析预设指令列表的方式获取得到的预设测试指令,那么本步骤中,则需要按照预设指令列表中对应的预设顺序依次发送预设指令列表中的各预设测试指令至机顶盒。
65.如果前述步骤是在预设指令集中随机的获取一条测试指令,本步骤中直接执行发送操作即可。
66.如果前述步骤是在预设时长内,按预设周期在预设指令集中获取包括多条预设测试指令的测试指令组,在本步骤中,则需要在每一个预设周期内,依次发送测试指令组中确定指令以外的其他预设测试指令,在确定指令以外的其他预设测试指令全部发送完后,最后发送确定指令,完成一个测试循环,将页面跳转至主页页面。
67.不论上述哪一种情况,在预设测试指令发送至机顶盒之后,机顶盒都会根据接收到的指令执行一定的操作,执行这些操作的结果便是与预设测试指令对应的执行结果。
68.s120、接收机顶盒中测试软件返回的,与预设测试指令对应的执行结果。
69.机顶盒接收到预设测试指令后,其中运行的待测软件会根据其预设功能进行相应的操作,比如,焦点跳转、页面切换、播放视频等,同时,机顶盒还会同步记录日志信息。
70.机顶盒监视器与机顶盒的输出端口相连,会接收到相应的执行结果,当然,执行结果不仅包括与预设测试指令对应的响应图片,同时还包括日志文件。
71.s130、将执行结果和预设参考结果进行比对,得到测试结果。
72.可选的,对于日志文件,可以根据日志文件与预设参考结果中的参考文件进行比对,并生成第一测试结果。比如,可以根据日志文件判断待测软件的执行流程是否正确,是
否出现过死机等问题。
73.对于响应图片,可以将响应图片与预设参考结果中的参考图片进行比对,得到第二测试结果。可选的,可以通过图像识别等人工智能技术,预先学习页面布局排版模板,建立可预测模型,然后分析每一帧响应图片,判断是否出现页面布局错误,排版偏差等问题。
74.可以想到的是,用户在控制通过遥控器操作机顶盒时,在每一按键后,必然伴随着短时间的停顿,为了充分模拟机顶盒的实际应用场景,本发明实施例提供的软件测试方法,在发送任一预设测试指令之后,还可以执行以预设延时指令,比如延时1s,从而模拟用户操作遥控器的时间间隔。
75.综上所述,本发明提供的软件测试方法,软件测试设备在获取预设测试指令后,发送预设测试指令至机顶盒,以使机顶盒中的待测软件执行预设测试指令,之后,软件测试设备接收机顶盒中测试软件返回的,与测试指令对应的执行结果,并将所得执行结果和预设参考结果进行比对,得到测试结果。与现有技术中的人工测试方法相比,本发明能够实现软件的自动测试,因而能够有效缩短机顶盒软件测试过程耗时,提高测试效率,满足实际应用需求。
76.可选的,参见图4,图4是本发明实施例提供的一种软件测试装置的结构框图,该装置包括:
77.获取单元500,用于获取预设测试指令;
78.发送单元501,用于发送所述预设测试指令至所述机顶盒,以使所述机顶盒中的待测软件执行所述预设测试指令;
79.接收单元502,用于接收所述机顶盒中所述待测软件返回的,与所述预设测试指令对应的执行结果;
80.比对单元503,用于将所述执行结果和预设参考结果进行比对,得到测试结果。
81.可选的,所述获取单元500,用于获取预设测试指令时,具体包括:
82.获取预设指令列表,其中,所述预设指令列表记录有按预设顺序排列的多条预设测试指令;
83.解析所述预设指令列表,得到各所述预设测试指令。
84.可选的,所述发送单元501,用于发送所述预设测试指令至所述机顶盒时,具体包括:
85.按照所述预设顺序发送各所述预设测试指令至所述机顶盒。
86.可选的,所述获取单元500,用于获取预设测试指令时,具体包括:
87.获取预设指令集中任意一条预设测试指令。
88.可选的,所述获取单元500,用于获取预设测试指令时,具体包括:
89.在预设时长内,按预设周期在预设指令集中获取包括多条预设测试指令的测试指令组。
90.可选的,所述测试指令组中包括一条确定指令,所述发送单元501,用于发送所述预设测试指令至所述机顶盒时,具体包括:
91.依次发送所述测试指令组中所述确定指令以外的其他预设测试指令;
92.在所述确定指令以外的其他预设测试指令发送完后,发送所述确定指令。
93.可选的,所述执行结果包括日志文件和与所述预设测试指令对应的响应图片,所
述比对单元503,用于将所述执行结果和预设参考结果进行比对,得到测试结果时,具体包括:
94.根据所述日志文件以及所述预设参考结果中的参考文件生成第一测试结果;
95.将所述响应图片与预设参考结果中的参考图片进行比对,得到第二测试结果。
96.参见图5,图5为本发明实施例提供的软件测试设备的结构框图,参见图5所示,可以包括:至少一个处理器100,至少一个通信接口200,至少一个存储器300和至少一个通信总线400;
97.在本发明实施例中,处理器100、通信接口200、存储器300、通信总线400的数量为至少一个,且处理器100、通信接口200、存储器300通过通信总线400完成相互间的通信;显然,图3所示的处理器100、通信接口200、存储器300和通信总线400所示的通信连接示意仅是可选的;
98.可选的,通信接口200可以为通信模块的接口,如gsm模块的接口;
99.处理器100可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
100.存储器300,存储有应用程序,可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
101.其中,处理器100具体用于执行存储器内的应用程序,以实现上述所述的软件测试方法的任一实施例。
102.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
103.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
104.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
105.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的核心思想或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。