首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试时间敏感的软件?

问如何测试时间敏感的软件?
EN

Software Engineering用户
提问于 2011-07-06 23:21:40
回答 5查看 3.2K关注 0票数 10

例如,对于时间敏感,我指的是每月只运行一次的脚本或连续运行但每月只提供一次特定输出的脚本。显然,您可以对很多情况进行单元测试,但也有例外(据我理解)。

最近我遇到的一个例子是设置一个cron作业,在每个月的最后一天第二天运行。这需要使用带有cron选项卡的shell脚本来为cron获取正确的月份日期,如下所示:

1 0 [shell command] * * [my script]

我不熟悉这个脚本,也不熟悉shell脚本,所以除了等待月底来看看脚本是否正确执行(实际上,我的解决方案是找到一个对cron和shell脚本了解得更多的同事)之外,没有什么好的方法来测试它。

因此,我很好奇是否有任何有用的工作来测试时间敏感的脚本。

EN

回答 5

Software Engineering用户

回答已采纳

发布于 2011-07-06 23:52:45

除了单元测试之外,还有另外两种策略来设置自动化测试来处理特定于操作系统的问题:

  • 虚拟化:您使用所需的确切配置设置了几个OS映像(例如,使用VMWare),设置了一种自动提取二进制文件以进行测试的方法(通常通过将一个特殊目录安装到VM空间),然后执行测试。

或者:

  • 检测:手动向程序添加特殊的if条件,这将使程序的行为有所不同。在Unix下,这将通过检查是否设置了某个环境变量(如FOOBAR_TEST_TIME_WITH_T=500 )来完成。然后,您的自动化测试将只使用环境变量的不同设置和不同的环境变量来执行所需的内容。

如果您的交互可以在库级别表示,您也可以链接到不同的库,您可以将其看作虚拟化(如果“库”是OS内核)或一种检测技术。这两个术语都可以使用,尽管今天使用的虚拟化一词几乎总是意味着类似于VMWare。一个专门用于返回固定值或重新运行特定交互的库将是一种模拟或存根方法。

还有一些自动测试工具,它们可以重写二进制文件以获得其他想要的效果,比如文件系统已经满了。

总的来说,您的目标是查找bug。要检查像文件系统过满这样的奇怪情况,只需要手动检测程序,很少使用虚拟化或手动机器配置路线,这是最简单、也是最有效的。

票数 7
EN

Software Engineering用户

发布于 2011-07-06 23:40:29

最有效的方法是更改您正在测试的机器的日期。在需要运行之前将其设置为一段时间,并验证它何时开始运行并是否正确运行。但是,如果涉及多台计算机,或者如果需要资源,公司就无法控制,这并不总是可能的。但是,请确保您已经做了好几个月了,并确保将一年更改几次以测试二月。

票数 10
EN

Software Engineering用户

发布于 2011-07-07 01:21:17

我不知道你的脚本,但我尝试使用某种参数,我可以设置日期。在您的情况下,如果没有指定日期,默认为月底。在您的代码中,接受日期参数,如果今天是两天前运行。您不仅可以测试它(从现在起两天内通过一个日期),而且还可以在第二天运行,以防在正常情况下(停电、服务器故障等)无法运行。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/90379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档