论文部分内容阅读
【摘 要】 教育软件和教育ICT软件应用程序测试的自动化能减少测试维护失败的风险,选择最优化的测试套件能提高效率,因此能降低成本和耗时。本文介绍一种自动化测试工具的研发,这种工具包含教育软件测试的两个主要自动化部分:测试套件生成和测试套件优化。本文通过控制流图表示被试教育软件的控制流。该工具提供五种测试套件生成方法,即边界值测试、稳健性测试、最坏情况测试、稳健最坏情况测试和随机测试,并采用人工蜂群算法或布谷鸟搜索算法对所生成的测试套件进行优化,直至达到预期的适应值水平。与其他算法相比,这种方法能够以最少的一组测试用例达成最大的路径覆盖率。最后,我们对所产生的优化测试套件进行自动故障检测。本文还以一所在线开放大学的一门STEM科目为案例,介绍这个工具的使用情况。
【关键词】 教育软件;教育ICT软件应用程序;测试套件生成;测试套件优化;STEM;控制流图;自动化测试
【中图分类号】 G420 【文献标识码】 B 【文章编号】 1009-458x(2018)6-0028-12
导读:长期以来,信息技术与教育的深度融合是一个热点问题。然而,从目前的情况看,这种融合似乎仍然缺乏应有的深度,也还没有达成预期目标。2017年12月13日,《中国教育报》刊登该报记者张贵勇撰写的一篇题为“新技术进课堂不等于媒介教育”的文章,文中提到有些课堂“教师利用令人眼花缭乱的电子课件上课,课堂看似热闹”,甚至是“课堂上学生全部使用平板电脑等新媒介设备来上课”,他认为“尽管电子教材也好,多媒体课件也好,其以数字化、交互化、多媒化的形式,将教学内容以科学直观的视频、音频、图形、文本等展现出来,对学生的知识学习有帮助,但没有改变传统的灌输式学习方式,没有真正提升学生对各种媒介的解读、运用能力”。在我看来,这就是典型的“伪融合”。
本期“国际论坛”四位作者分别来自西班牙和印度的远程在线教学大学和普通高校(研究院),均在技术与教育的融合领域颇有建树,其中通信作者丹尼尔·布尔戈斯教授是西班牙拉里奥哈国际大学主管研究和技术的副校长,也是联合国教科文组织e-learning教席和国际远程开放教育理事会开放教育资源(OER)教席,一个真正具有跨学科学术背景的学者。他曾经在我们的通信中阐述他的教育科研理念。他认为作为在线教学机构的一员,自己的研究责无旁贷应该扎根具体教育实践,以解决实际教育教学问题为首要目的。他说学术研究应该接地气,应该能够赋权于教师,就技术的教育用途而言,研究成果应该能为并非技术行家的教师所用,而且能提高教学效果、达成预期学习目标,否则谈不上“融合”。他本人一直身体力行,比如有关适合大规模招生的e-learning推荐模型的研究①,也许正因为他有这样的理念而且又取得了丰硕成果,所以才被联合国教科文组织和国际远程开放教育理事会委以要职。
本文介绍他们的一项新研究成果,即教育软件的自动化测试。在今天这个信息时代,教育软件无处不在,从某种意义上讲已经成为当今教育教学不可或缺的组成部分,甚至可以说很多学科的教学离不开教育软件的应用。比如在生物、医学和护理等专业的学习中,教育软件能给学习者提供虚拟现实或增强现实,大大提高学习活动的真实性,完成很多在传统教学环境下很难开展的学习任务;而在机械、工程和建筑等专业的学习中,学习者使用这些软件开展设计、运算、建模、试验等活动,即使失败了也不会造成任何经济损失或伤害。对于远程在线学习来讲,教育软件的用途更是非常广泛,其对提高学习效果、保证教学质量的重要性更是自不待言。
随着用途越来越广泛,教育软件也越来越大、越来越复杂,因此,“改进教育软件开发技术,加快开发过程,提高开发效率,这些都势在必行。高效的软件开发过程应该是快捷、容易操作、稳健和低成本的”。这其中便涉及软件测试,这是“教育软件开发最具挑战性的阶段”。“教育软件测试在软件开发生命周期的早期进行,越是往后才发现的错误,修复的成本越高”,但是这也是一项非常复杂的工作,手工操作费时耗力、成本高昂,且不说可行性的问题。因此,本研究在系统回顾(教育)软件测试研究成果的基础上,研发一种自动化测试工具,即测试套件生成和测试套件优化。
本研究提出的自动化测试工具自身配备四种黑盒技术(即边界值测试、稳健性测试、最坏情况测试和稳健最坏情况测试)以及随机测试技术。可以用其中任何一种技术生成测试对象教育软件的测试数据,然后用人工蜂群算法和布谷鸟搜索算法优化这些数据,再把优化的测试套件应用于测试对象软件上以生成实际输出,而测试对象软件的控制流图则会产生预期输出,如果实际输出和预期输出不一致,则说明这个软件有错误。在阐明这种自动化测试工具的工作原理之后,文章还介绍了人工蜂群算法和布谷鸟搜索算法。
本研究用这个自动化测试工具对20个教育软件应用程序进行测试。软件测试是在西班牙拉里奥哈国际大学工程與技术学院的e-learning和社交网络硕士学位课程中进行的,有44名学生参加。限于篇幅,本文以三角形分类问题的软件应用程序为例,介绍自动化测试工具的运作和实际效果。测试结果表明,这个自动化测试工具在人工蜂群算法和布谷鸟搜索算法的帮助下能以最少的测试用例覆盖最多的路径,减少测试时间,降低测试费用,换言之,大大提高测试效率。研究还发现,两种算法有各自的优点,布谷鸟搜索算法的结果更加稳定但路径覆盖率较低,而人工蜂群算法的路径覆盖率更好,但结果不如布谷鸟搜索算法稳定。考虑到路径覆盖率是选择测试套件算法更加可靠的决定因素,因此,在本研究中,与布谷鸟搜索算法相比,人工蜂群算法是一个更好的选择。文章最后还指出本研究的局限和今后研究方向。
这篇文章的意义不仅体现在研发一种教育软件自动化测试工具上,也是技术与教育融合的一个很好的例子。对远程(在线)教育工作者而言,它更是布尔戈斯教授的教育科研观的具体体现。我认为这也是值得远程(在线)教育机构和实践者认真谋划和努力的一个科研方向——把技术与教育的融合扎根于远程(在线)教育实践中,旨在解决实际教学问题,达成具体教学目标。 CSA运算
初始种群
可以用上述任何一种黑盒技术或随机测试生成初始种群。本案例用的是随机技术,规定测试用例数目等于10,测试用例和它们的目标值见表5。
CSA第一次循环
CSA 第一次循环之后,每一条独立路径只剩下一个测試用例,这是对所有通过相同路径的测试用例的目标值进行比较的结果。目标值最小的测试用例被认为是这条路径最佳的测试用例。
以通过路径N0-N1-N2的三个测试用例为例,它们分别是测试用例2(目标值-838870.2)、4(目标值-798429.0)和6(目标值-1499877.56)(见表5)。这三个测试用例中,测试用例6的目标值最小,它三边的值分别是a=912,b=5,c=857。这个测试用例被认为比其他两个测试用例更好,因此被储存在记忆中。表6是第一次循环的结果。
CSA第二次循环
CSA第二次循环中,测试工具随机从搜索空间选取一个新测试用例。如果发现这个测试用例遍历已经有测试用例通过的路径,那么比较这两个测试用例的目标值,把目标值较小的测试用例储存在记忆中。否则,这个测试用例便保存在与这条路径相应的记忆中。表7是第二次循环的更新数据。
在第二次循环中,随机生成的一个新测试用例遍历路径2。新的循环又发现新测试用例,一旦发现更
好的测试用例,表格会随着持续更新。更多的循环会增强其记忆。图5是用CSA优化测试套件的截图。
实验结果
表8和表9是用ABC和CSA测试20种教育ICT软件应用程序所获得的路径覆盖率和适应值(20种软件应用程序的名单见附录)。
表8和表9是用ABC和CSA对20种教育ICT软件应用程序的测试套件进行优化测试的结果。测试结果显示,用ABC的平均路径覆盖率是90.3%,而CSA的平均覆盖率是75.4%。在优化数据的适应值方面,ABC也优于CSA。这说明在路径覆盖方面ABC的表现优于CSA。另外,研究发现,除了教育ICT软件应用程序3外,总体而言,适应值越高,路径覆盖率越高。应用程序3的适应值更高,但路径覆盖率却更低。这可能是由于CSA的各种限制条件所引起的,它们以较低路径覆盖率换取优质的数据优化。
我们的这个工具在这两种算法的帮助下能以最少的测试用例覆盖最多的路径,这有助于减少测试时间,大大降低测试费用。
用ABC得出这些软件应用程序适应值的标准差是2.69E-5单位,而CSA的标准差是1.14E-7单位。换言之,CSA的结果更加一致但路径覆盖率较低,而ABC的路径覆盖率更好,但结果不如CSA一致。因为在为测试套件选择算法上路径覆盖率是更加可靠的决定因素,因此,在本研究中ABC证明是更好的选择。
结束语
研究局限
虽然我们已经采取一切措施保证研究结果的真实性,但是有些因素可能会影响研究结果的外部和内部效度等。为此,我们在多种教育ICT软件应用程序上测试ABC和CSA方法,减少上述风险。为了避免结果偏差,我们一共测试了20种软件程序。为了使测试工具认为代码没有错误,控制流图必须正确无误,哪怕代码包括一些错误。虽然我们采用随机方法,但是所得到的测试数据是最优化的。有时,路径覆盖率难以达到100%,这是因为可能有些路径生成测试用例的可能性较低。本研究的SUT可能比较大,但测试人员应该使用它的控制流图才能进行测试。本测试工具只能用于用Java技术研发的教育ICT软件应用程序,目前尚未用于其他软件应用程序的测试。其运算速度和表现可能会因平台而异。本测试工具需要Java运行环境。
结论和下一步计划
研究发现,在执行自动化TSO以达成所生成的测试套件最小化却有最大路径覆盖率的目标方面,ABC方法优于CSA方法。案例研究显示,采用这两种算法在本研究的自动化测试工具上测试20种教育ICT软件应用程序,ABC的路径覆盖率平均值为90.3%,而CSA则是75.4%。由此可见,ABC在路径覆盖率上优于CSA,是TSO更可靠的选择。
在今后的研究中,可以运用其他自然启发算法改进我们所提出的这个模型。另外,也可以在各方面混合使用ABC和CSA以获得更好结果。上述算法的TSG输入可以通过其他方法实现自动化,比如决策盒(decision box)或因果法(cause-effect),这些方法提供更少的测试套件输入。
【鸣谢】本研究得到拉里奥哈国际大学通过工程与技术学院(School for Engineering
【关键词】 教育软件;教育ICT软件应用程序;测试套件生成;测试套件优化;STEM;控制流图;自动化测试
【中图分类号】 G420 【文献标识码】 B 【文章编号】 1009-458x(2018)6-0028-12
导读:长期以来,信息技术与教育的深度融合是一个热点问题。然而,从目前的情况看,这种融合似乎仍然缺乏应有的深度,也还没有达成预期目标。2017年12月13日,《中国教育报》刊登该报记者张贵勇撰写的一篇题为“新技术进课堂不等于媒介教育”的文章,文中提到有些课堂“教师利用令人眼花缭乱的电子课件上课,课堂看似热闹”,甚至是“课堂上学生全部使用平板电脑等新媒介设备来上课”,他认为“尽管电子教材也好,多媒体课件也好,其以数字化、交互化、多媒化的形式,将教学内容以科学直观的视频、音频、图形、文本等展现出来,对学生的知识学习有帮助,但没有改变传统的灌输式学习方式,没有真正提升学生对各种媒介的解读、运用能力”。在我看来,这就是典型的“伪融合”。
本期“国际论坛”四位作者分别来自西班牙和印度的远程在线教学大学和普通高校(研究院),均在技术与教育的融合领域颇有建树,其中通信作者丹尼尔·布尔戈斯教授是西班牙拉里奥哈国际大学主管研究和技术的副校长,也是联合国教科文组织e-learning教席和国际远程开放教育理事会开放教育资源(OER)教席,一个真正具有跨学科学术背景的学者。他曾经在我们的通信中阐述他的教育科研理念。他认为作为在线教学机构的一员,自己的研究责无旁贷应该扎根具体教育实践,以解决实际教育教学问题为首要目的。他说学术研究应该接地气,应该能够赋权于教师,就技术的教育用途而言,研究成果应该能为并非技术行家的教师所用,而且能提高教学效果、达成预期学习目标,否则谈不上“融合”。他本人一直身体力行,比如有关适合大规模招生的e-learning推荐模型的研究①,也许正因为他有这样的理念而且又取得了丰硕成果,所以才被联合国教科文组织和国际远程开放教育理事会委以要职。
本文介绍他们的一项新研究成果,即教育软件的自动化测试。在今天这个信息时代,教育软件无处不在,从某种意义上讲已经成为当今教育教学不可或缺的组成部分,甚至可以说很多学科的教学离不开教育软件的应用。比如在生物、医学和护理等专业的学习中,教育软件能给学习者提供虚拟现实或增强现实,大大提高学习活动的真实性,完成很多在传统教学环境下很难开展的学习任务;而在机械、工程和建筑等专业的学习中,学习者使用这些软件开展设计、运算、建模、试验等活动,即使失败了也不会造成任何经济损失或伤害。对于远程在线学习来讲,教育软件的用途更是非常广泛,其对提高学习效果、保证教学质量的重要性更是自不待言。
随着用途越来越广泛,教育软件也越来越大、越来越复杂,因此,“改进教育软件开发技术,加快开发过程,提高开发效率,这些都势在必行。高效的软件开发过程应该是快捷、容易操作、稳健和低成本的”。这其中便涉及软件测试,这是“教育软件开发最具挑战性的阶段”。“教育软件测试在软件开发生命周期的早期进行,越是往后才发现的错误,修复的成本越高”,但是这也是一项非常复杂的工作,手工操作费时耗力、成本高昂,且不说可行性的问题。因此,本研究在系统回顾(教育)软件测试研究成果的基础上,研发一种自动化测试工具,即测试套件生成和测试套件优化。
本研究提出的自动化测试工具自身配备四种黑盒技术(即边界值测试、稳健性测试、最坏情况测试和稳健最坏情况测试)以及随机测试技术。可以用其中任何一种技术生成测试对象教育软件的测试数据,然后用人工蜂群算法和布谷鸟搜索算法优化这些数据,再把优化的测试套件应用于测试对象软件上以生成实际输出,而测试对象软件的控制流图则会产生预期输出,如果实际输出和预期输出不一致,则说明这个软件有错误。在阐明这种自动化测试工具的工作原理之后,文章还介绍了人工蜂群算法和布谷鸟搜索算法。
本研究用这个自动化测试工具对20个教育软件应用程序进行测试。软件测试是在西班牙拉里奥哈国际大学工程與技术学院的e-learning和社交网络硕士学位课程中进行的,有44名学生参加。限于篇幅,本文以三角形分类问题的软件应用程序为例,介绍自动化测试工具的运作和实际效果。测试结果表明,这个自动化测试工具在人工蜂群算法和布谷鸟搜索算法的帮助下能以最少的测试用例覆盖最多的路径,减少测试时间,降低测试费用,换言之,大大提高测试效率。研究还发现,两种算法有各自的优点,布谷鸟搜索算法的结果更加稳定但路径覆盖率较低,而人工蜂群算法的路径覆盖率更好,但结果不如布谷鸟搜索算法稳定。考虑到路径覆盖率是选择测试套件算法更加可靠的决定因素,因此,在本研究中,与布谷鸟搜索算法相比,人工蜂群算法是一个更好的选择。文章最后还指出本研究的局限和今后研究方向。
这篇文章的意义不仅体现在研发一种教育软件自动化测试工具上,也是技术与教育融合的一个很好的例子。对远程(在线)教育工作者而言,它更是布尔戈斯教授的教育科研观的具体体现。我认为这也是值得远程(在线)教育机构和实践者认真谋划和努力的一个科研方向——把技术与教育的融合扎根于远程(在线)教育实践中,旨在解决实际教学问题,达成具体教学目标。 CSA运算
初始种群
可以用上述任何一种黑盒技术或随机测试生成初始种群。本案例用的是随机技术,规定测试用例数目等于10,测试用例和它们的目标值见表5。
CSA第一次循环
CSA 第一次循环之后,每一条独立路径只剩下一个测試用例,这是对所有通过相同路径的测试用例的目标值进行比较的结果。目标值最小的测试用例被认为是这条路径最佳的测试用例。
以通过路径N0-N1-N2的三个测试用例为例,它们分别是测试用例2(目标值-838870.2)、4(目标值-798429.0)和6(目标值-1499877.56)(见表5)。这三个测试用例中,测试用例6的目标值最小,它三边的值分别是a=912,b=5,c=857。这个测试用例被认为比其他两个测试用例更好,因此被储存在记忆中。表6是第一次循环的结果。
CSA第二次循环
CSA第二次循环中,测试工具随机从搜索空间选取一个新测试用例。如果发现这个测试用例遍历已经有测试用例通过的路径,那么比较这两个测试用例的目标值,把目标值较小的测试用例储存在记忆中。否则,这个测试用例便保存在与这条路径相应的记忆中。表7是第二次循环的更新数据。
在第二次循环中,随机生成的一个新测试用例遍历路径2。新的循环又发现新测试用例,一旦发现更
好的测试用例,表格会随着持续更新。更多的循环会增强其记忆。图5是用CSA优化测试套件的截图。
实验结果
表8和表9是用ABC和CSA测试20种教育ICT软件应用程序所获得的路径覆盖率和适应值(20种软件应用程序的名单见附录)。
表8和表9是用ABC和CSA对20种教育ICT软件应用程序的测试套件进行优化测试的结果。测试结果显示,用ABC的平均路径覆盖率是90.3%,而CSA的平均覆盖率是75.4%。在优化数据的适应值方面,ABC也优于CSA。这说明在路径覆盖方面ABC的表现优于CSA。另外,研究发现,除了教育ICT软件应用程序3外,总体而言,适应值越高,路径覆盖率越高。应用程序3的适应值更高,但路径覆盖率却更低。这可能是由于CSA的各种限制条件所引起的,它们以较低路径覆盖率换取优质的数据优化。
我们的这个工具在这两种算法的帮助下能以最少的测试用例覆盖最多的路径,这有助于减少测试时间,大大降低测试费用。
用ABC得出这些软件应用程序适应值的标准差是2.69E-5单位,而CSA的标准差是1.14E-7单位。换言之,CSA的结果更加一致但路径覆盖率较低,而ABC的路径覆盖率更好,但结果不如CSA一致。因为在为测试套件选择算法上路径覆盖率是更加可靠的决定因素,因此,在本研究中ABC证明是更好的选择。
结束语
研究局限
虽然我们已经采取一切措施保证研究结果的真实性,但是有些因素可能会影响研究结果的外部和内部效度等。为此,我们在多种教育ICT软件应用程序上测试ABC和CSA方法,减少上述风险。为了避免结果偏差,我们一共测试了20种软件程序。为了使测试工具认为代码没有错误,控制流图必须正确无误,哪怕代码包括一些错误。虽然我们采用随机方法,但是所得到的测试数据是最优化的。有时,路径覆盖率难以达到100%,这是因为可能有些路径生成测试用例的可能性较低。本研究的SUT可能比较大,但测试人员应该使用它的控制流图才能进行测试。本测试工具只能用于用Java技术研发的教育ICT软件应用程序,目前尚未用于其他软件应用程序的测试。其运算速度和表现可能会因平台而异。本测试工具需要Java运行环境。
结论和下一步计划
研究发现,在执行自动化TSO以达成所生成的测试套件最小化却有最大路径覆盖率的目标方面,ABC方法优于CSA方法。案例研究显示,采用这两种算法在本研究的自动化测试工具上测试20种教育ICT软件应用程序,ABC的路径覆盖率平均值为90.3%,而CSA则是75.4%。由此可见,ABC在路径覆盖率上优于CSA,是TSO更可靠的选择。
在今后的研究中,可以运用其他自然启发算法改进我们所提出的这个模型。另外,也可以在各方面混合使用ABC和CSA以获得更好结果。上述算法的TSG输入可以通过其他方法实现自动化,比如决策盒(decision box)或因果法(cause-effect),这些方法提供更少的测试套件输入。
【鸣谢】本研究得到拉里奥哈国际大学通过工程与技术学院(School for Engineering