2. 西北工业大学, 陕西 西安 710072;
3. 西安工业大学, 陕西 西安 710021
随着移动应用市场竞争的日益激烈,对移动应用的质量要求也更为严格,使得传统实验室测试方法难以有效满足移动应用的测试需求[1]。众包测试是通过Internet网络,以非契约方式,将移动应用测试任务外包给匿名的测试人员[2]。由于无需准备测试环境和测试设备,与传统的实验室测试方法相比,移动应用众包测试具有方便快捷、低成本、规模可伸缩等显著优点[3]。
移动应用众包测试的质量依赖于众包测试人员的技术能力和工作态度,但由于众包测试人员的匿名和非契约性,难以有效保证众包测试质量[4]。Testcloud、Utest等主要众包测试平台均缺乏有效的测试人员推荐方法,通常是由测试任务发包方自己选择众包测试人员[5]。但这样的任务参与方式由于缺乏众包测试人员的有效信息,可能选择选取不适合的众包测试人员。
本文试图依据众包测试人员的历史数据,分析其测试经验、偏好和能力行为特征,构建众包测试人员的多特征画像模型,为测试任务推荐和选择适合的众包测试人员。
1 移动应用众包测试特点移动应用众包测试是一种现场测试方法,通常由众包测试人员在其真实用户环境下进行测试。如表 1所示,与传统实验室测试方法相比较,移动应用众包测试方法具有以下特点和显著优势:
测试特征 | 移动众包测试方法 | 实验室测试方法 |
测试成本 | 低测试成本, 无需购置移动应用测试设备和准备测试环境 | 高测试成本, 需要购置昂贵的移动测试设备和准备测试环境 |
测试质量 | 测试质量难以控制 | 可控的测试质量 |
测试规模 | 雇佣众包测试人员, 支持可伸缩的测试规模 | 受到实验室测试资源限制, 测试规模有限 |
测试人员 | 社区内招募的众包测试人员 | 内部专业测试人员 |
测试过程管理 | 难以管理和控制测试过程 | 可控制的测试过程 |
测试结果 | 需要发包方确认测试结果质量和有效性 | 可靠的测试质量 |
自动化测试 | 很少使用自动化测试工具 | 自动化测试程度高 |
移动位置测试 | 基于真实用户位置测试 | 基于模拟位置测试 |
易用性测试 | 真实用户环境和场景下的测试 | 实验室环境下的测试 |
兼容性测试 | 基于大量的用户移动设备测试 | 基于有限的实验室移动设备测试 |
安全隐私测试 | 由Internet上安全专家测试 | 内部安全工程师测试 |
1) 低测试成本 由于使用移动应用众包测试人员自己的测试设备,无需再购置大量昂贵的测试设备,以及准备测试环境;
2) 真实的用户测试环境 移动应用是在真实用户环境下的测试,这有利于发现用户设备位置和移动性、易用性和本地化等方面的移动应用缺陷;
3) 可伸缩的测试规模 通过大规模招募移动应用众包测试人员,支持规模可伸缩的并行移动应用测试,可提高测试效率;
4) 稀缺的测试专家 在移动应用众包测试社区,中小规模移动应用开发商能够方便、快捷地招募到稀缺的安全性、易用性等移动应用测试专家。
2 移动应用众包测试人员画像模型通过分析移动应用众包测试人员的行为特征, 本文试图从偏好、经验、能力等3个视角, 构建众包测试人员的画像模型。
2.1 偏好与经验特征移动应用众包测试人员依据其测试知识和兴趣, 会偏好和擅长某些众包测试任务类型和所属领域。通常, 移动应用测试平台支持某些特定类型的测试任务, 主要包括:GUI和功能测试、易用性测试、安全性测试、位置服务测试、兼容性测试等。目前, 移动应用已广泛应用在社会生活的各个领域, 诸如游戏、娱乐、社交、旅游、交通等。对这些领域, 已具备良好的领域知识将有助于众包测试人员提高测试效率和测试质量。
针对众包测试人员的偏好与经验特征, 采取收集其在某测试类型或领域任务中的实际表现行为, 并通过半梯形分布的方式进行计算。
通常, 将众包测试人员对某个测试类型或者领域ci的偏好特征Tpac(ci)定义为:
式中, Tpre(ci)表示众包测试人员对测试类型或领域ci的偏好度, 其计算公式为:
(1) |
式中, Treq(ci)-num表示申请测试类型或领域ci的次数, Treq(ci)-max是最大申请测试次数的阈值, Treq(ci)-min是最小申请测试次数的阈值。
Tcon(ci)表示众包测试人员对测试类型或领域ci的专注度, 用来表征众包测试人员对某类测试任务的专注程度, 其计算公式为:
(2) |
式中, Treq(ci)-total表示其申请的众包测试总数量。
测试经验反映了众包测试人员对某测试类型或者领域ci所积累的测试技巧和知识, 通常将验特征Teaa(ci)定义为:
式中, 测试经验Texp(ci)为:
(3) |
式中, Tacc(ci)-num表示完成测试类型或领域ci的任务次数, Tacc(ci)-max是最大完成测试次数的阈值, Tacc(ci)-min是最小完成测试次数的阈值。
Tact(ci)表示众包测试人员在某测试类型或领域ci的活跃度, 反映众包测试人员周期内完成某类型或领域测试的情况, 其计算公式为:
(4) |
式中, Tacc(ci)-num(t)表示时间周期t内完成的测试次数, Tacc(ci)-total(t)表示时间周期t内可以完成的测试任务数量。
至此, 根据众包测试人员申请和完成测试任务的行为表现, 分别明确了其在某测试类型或领域下的包含偏好度和专注度的偏好特征以及包含经验和活跃度的经验特征。
2.2 测试能力特征测试能力是测试人员的重要特征, 对于众包测试人员能力特征的评估, 应综合考虑所能发现缺陷的级别, 发现缺陷的数量以及缺陷发现率等指标。
在众包测试中, 不同级别的缺陷其重要性及影响各不相同, 越能发现重要的高级别缺陷越能反映该众包测试人员的测试水平。同时, 一名高水平的众包测试人员应该能发现测试任务中的绝大部分缺陷。基于这样的原则, 可给出如下的计算公式:
(5) |
(6) |
式中, m表示命中的m级缺陷, n表示缺陷级别数量, μm表示m级缺陷对应的权重, ωm表示m级缺陷存在的数量, τm表示m级缺陷的反馈数量, em表示m级缺陷对应的能力因子, ηm表示测试人员发现m级缺陷的数量。
在一次测试任务中, 根据发现的缺陷总数可以计算得到T′cab(ci)的最大值(即T′cab(ci)-max, )即m取1至n时。因此将每名众包测试人员的T′cab(ci)与该任务的T′cab(ci)-max 比较即可评估出单次任务中众包测试人员的能力表现水平。此外, 测试任务间还具有难易性的差别, 为了使不同难度任务下的能力表现具有可比性, 本文试图以缺陷的发现率作为难度系数引入如下的测试能力值计算公式中:
(7) |
(8) |
(9) |
式中, sj表示缺陷j的发现人数, s表示参与测试任务的总人数, θ表示任务难易度, σ是对θ的进一步平滑处理, Tcab(ci)表示测试人员单次任务能力值。
在得到单次任务的能力值评估后, 下面考虑综合能力值随时间的衰减评估。其中引入遗忘曲线的概念, 遗忘曲线一开始仅用于帮助人类训练记忆力, 但近年来逐渐有人由遗忘曲线拟合出遗忘函数, 并运用于更多更广泛与遗忘类似的环境中。
在众包测试中, 众包测试人员的能力特征本身就是针对测试知识掌握情况的一种反映, 而且测试知识还是在不断增长和更新, 换言之众包测试人员能力可视为始终处于不断“遗忘”的状态下。本文所采用的遗忘函数可写成(9)式。
(10) |
式中, p0表示众包测试人员单次测试任务的能力表现, pt表示经过时间段t后, 众包测试人员剩余的对“测试知识”的掌握情况, k遗忘速度是反映遗忘衰减差异的主要参数, t时间间隔。选择这样的拟合函数是因为其与众包测试人员能力特征变化有很高的契合度。
因遗忘速度k是需要重点关注的变量, 因此需对(10)式进行如下变换:
令t=tn-tn-1, 则有:
当p0(tn)=pt(tn-1)时,
(11) |
当p0(tn)≠pt(tn-1)时,
(12) |
式中
式中, m表示向前回溯m次, 直至找到p0(tn-m)>p0(tn)。
现结合图 1对(12)式进行说明, 假设一名众包测试人员在t1时刻完成了一次任务并得到该任务的能力值p0(t1), 则根据初始k值, 可计算出其在t2时刻的能力估计值为pt(t1), 若实际众包测试人员在t2时刻的表现并没有达到pt(t1)的预期, 则向前回溯寻找到上一次的高点p0(t1)重新计算遗忘速度k并修正遗忘曲线。同理, 在后续的t3和t4时刻, 因众包测试人员能力表现的逐渐提高, 遗忘曲线的下降速度可变缓。
利用遗忘曲线并结合单次任务的能力表现, 通过不断修正曲线, 便可以评估出众包测试人员的能力特征水平。
2.3 测试人员画像前面已分别从众包测试人员偏好、经验、能力3个视角进行评估描绘出其画像特征。当得到这些特征数据后, 通过特征间的重要性可以进一步使用决策树的方式判定众包测试人员在某个测试类型或领域ci的画像类型。
因为众包测试人员特征的重要性满足“偏好<经验<能力”的关系, 所以设置以偏好特征至能力特征逐层递进判断的决策树, 如图 2所示。
对于众包测试人员在某个测试类型或领域ci下,
1) 第一层通过偏好特征Tpac(ci)判断, 因为偏好特征包含偏好度Tpre(ci)和关注度Tcon(ci)2个属性, 所以需要分别设置2个阈值。当且仅当同时满足大于Tpre(ci)和Tcon(ci)的阈值, 才可归类为TMHpac(ci)偏好中高, 进入下一层经验特征判断; 否则为TLpac(ci)偏好低, 直接判定其在ci下属于欠缺型人员。
2) 第二层通过经验特征Teaa(ci)判断, 同样经验特征包含经验Texp(ci)和活跃度Tact(ci)2个属性, 需要同时满足阈值才可进行划分。Teaa(ci)的判断结果分为3个叶子节点, 满足TMeaa(ci)经验中等或THeaa(ci)经验偏高进入下一层能力特征判断; 否则TLeaa(ci)经验偏低, 直接判定其在ci下属于欠缺型人员。
3) 第三层通过能力特征Tcab(ci)判断, THeaa(ci)经验高且TMcab(ci)能力中或THcab(ci)能力高, 以及TMeaa(ci)经验中而THcab(ci)能力高则属于优秀型人员; THeaa(ci)经验高而TLcab(ci)能力低, 以及TMeaa(ci)经验中且TMcab(ci)能力中则属于潜力型人员。
利用前面评估出的众包测试人员特征并使用决策树的方式, 根据众包测试人员在各测试类型或领域下的不同行为特征表现将其归纳于不同的画像类型下。可以清晰知道每名众包测试人员所擅长的测试类型, 当发起一项测试任务时, 能够根据测试任务的类型和涉及领域准确筛选合适的测试人员。
3 移动应用众包测试人员实验验证由于众包测试社区的可用数据目前较稀少, 所以本次采取模拟数据的方式进行实验验证。
首先, 对1 000名众包测试人员设置偏好、经验、能力特征初值。在偏好和经验特征方面, 注意Treq(ci)-max和Tacc(ci)-max分别取当前可申请和已完成任务数的最大值, 而Treq(ci)-min和Tacc(ci)-min则分别对应每名众包测试人员在完成注册时已经不可申请或已完成的任务数。能力特征方面设置每名众包测试人员的初始能力值为0.5, 遗忘速度k为较慢的0.000 1。其次, 分别为每名众包测试人员随机生成参与任务主动性与发现缺陷可能性2个概率参数来控制其在测试任务中的表现。
进行多次的任务模拟计算后, 偏好和能力特征会根据众包测试人员申请和完成任务情况进行积累。下面重点关注能力特征的实验情况。
从1 000名众包测试人员中, 筛选出某一测试类型或领域下, 2名任务能力表现相近人员并根据其所完成任务不同的难度系数, 计算出综合能力表现, 结果见表 2及图 3。进一步观察可以看到, 在任务难度的影响下, 尽管2位测试人员体现的单次任务能力表现相近, 但综合能力的计算结果, 却发现随难度系数有差异。
测试人员编号 | 能力表现 |
202 | 0.444 3, 0.591 1, 0.688 6, 0.274 4, 0.584 5, 0.718 0, 0.393 7, 0.678 6, 0.782 9, 0.547 7 |
534 | 0.269 6, 0.791 8, 0.528 2, 0.495 0, 0.387 2, 0.667 0, 0.420 8, 0.739 9, 0.496 9, 0.583 9 |
对于能力值考虑衰减下的评估, 筛选出一名单次任务表现波动较大的人员进行观察, 见表 3。众包测试人员任务完成表现的好坏影响遗忘速度曲线的变化, 当表现较好时, 遗忘速度会下降, 减缓对综合能力值的衰减, 而表现较差时, 遗忘速度会上升, 加速综合能力值的衰减, 见图 4所示。
任务 | 综合能力表现 | 间隔时长 | 遗忘速度 |
1 | 0.744 8 | 30 | 0.009 8 |
2 | 0.654 6 | 16 | 0.008 1 |
3 | 0.511 6 | 19 | 0.013 0 |
4 | 0.724 1 | 6 | 0.000 7 |
5 | 0.534 1 | 8 | 0.038 0 |
6 | 0.574 0 | 17 | 0.009 3 |
7 | 0.789 0 | 10 | 0.002 2 |
8 | 0.788 0 | 9 | 0.000 1 |
9 | 0.915 5 | 10 | 0.000 7 |
10 | 0.666 2 | 3 | 0.106 0 |
在得到偏好、经验、能力特征评估数据后, 就可以对这1 000名测试人员利用图 2的决策树进行画像类型判定。在考虑模拟计算得到的整体数据水平下, 设置偏好特征阈值为Tpac(ci)=<0.46, 0.3>, 经验特征阈值为Teaa(ci)=<0.35, 0.2>和Teaa(ci)=<0.72, 0.5>, 能力特征阈值为Tcab(ci)=0.62和Tcab(ci)=0.87。
利用图 2的决策树根据阈值即可将所有众包测试人员划分到其在某测试类型或领域下的画像类型。当重新选取不同画像类型人员执行之前相同的任务后, 其结果与之前随机选择人员执行任务的表现有明显不同。如图 5所示, 随机选取人员的任务处理结果更具随机性, 而根据画像分类后选择人员处理任务结果更加稳定, 且优秀型人员可以取得较好的表现水平。
上述实验初步验证了本文提出的基于行为分析的众包测试人员特征描绘方法的有效性和正确性。同时, 进一步在验证中依据众包测试人员画像分类, 表明不同测试人员在不同测试类型或领域下有着不同的表现水平, 完全符合测试人员因个体差异性导致的个性化特征预测。
4 结论本文提出了一种基于行为分析的移动应用众包测试人员画像方法, 该方法根据历史测试数据, 多特征构建众包测试人员画像, 实现对众包测试人员的精确建模。下一步, 将依据众包测试人员画像模型, 研究测试任务与众包测试人员的智能化推荐方法, 为测试任务准确推荐适合的测试人员, 以提高众包测试质量和效率。
[1] | Tao C, Gao J. Modeling Mobile Application Test Platform and Environment:Testing Criteria and Complexity Analysis[C]//The Workshop on Joining Academia & Industry Contributions to Test Automation & Model-Based Testing, 2014:28-33 |
[2] | Gao J, Bai X, Tsai W T, et al. Mobile Application Testing:A Tutorial[J]. IEEE Computer, 2014, 47(2): 46-55. DOI:10.1109/MC.2013.445 |
[3] | Guaiani F, Muccini H. Crowd and Laboratory Testing. Can They Co-Exist? An Exploratory Study[C]//Proceedings of the 2015 IEEE/ACM 2nd International Workshop on Crowd Sourcing in Software Engineering, 2015:32-37 |
[4] | Wang J, Cui Q, Wang Q, et al. Towards Effectively Test Report Classification to Assist Crowdsourced Testing[C]//ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, 2016:6 |
[5] | Zhang T, Gao J, Cheng J. Crowdsourced Testing Services for Mobile apps[C]//Proceedings of the 2017 IEEE International Symposium on Service-Oriented System Engineering, 2017:132-137 |
2. Xi'an Northwes Tern PolytechnIcal University, Xi'an 710072, China;
3. Xi'an Technological University, Xi'an 710021, China