星球大战谈测试:测试光剑的策略(不包括原力)

摘要:在“星球大战”的传奇中,那些与原力媲美的挥舞光剑令人印象深刻。光剑是自建的,所以每把都是独一无二的,反映了其创作者的个性。作为测试员,我发现有趣的是考虑我们如何在自己的星系中测试光剑。我们来探讨如何使用测试光剑的技术,可以告知我们真实世界的测试。

光剑测试与软件测试

在“星球大战”的传奇中,与“原力”相一致的人们使用了多功能的光剑,这种电子剑能够发出纯粹的,发光的能量。光剑是绝地最重要的工具,虽然邪恶的Sith也可以使用这些武器。

光剑是自建的,所以每把都是独一无二的,反映了其创作者的个性。作为测试员,我发现有趣的是考虑我们如何在自己的星系中测试光剑。我们来探讨如何使用测试光剑的技术,可以告知我们真实世界的测试。

最值得一提的是,它的“刀片”的颜色是真正的等离子体发射。有许多不同颜色的刀片,但绝地通常有蓝色或绿色的,而Sith通常是红色的。

绝地依靠神秘的原力,一个包围和渗透所有生物的能量领域,并将星球大战星系结合在一起,引导他们选择一个与自己内在的和谐的原力调和的水晶。kyber晶体将光剑的能量聚焦到刀片中,因此每个晶体决定了光剑刀片的颜色。

测试人员如何在现实世界中测试刀片颜色?毕竟,每个人都看到颜色的色调略有不同。有些人有色盲,妨碍他们看到一些可以被其他人检测到的颜色。

如果我们正在测试网页上的网页元素的颜色,我们可以使用计算机软件而不是原力。诸如Selenium WebDriver之类的软件允许我们客观地确定一个文本块中的颜色,而不偏离主观色彩感知。

此颜色属性可以表示为RGBA颜色值 - 红色,绿色,蓝色和阿尔法。红色,绿色和蓝色参数确定构成Web元素的组合颜色的数量,alpha参数指定颜色的不透明度,介于0.0(完全透明)和1.0(完全不透明)之间。例如,颜色白色包含最大量的红色,绿色和蓝色,并且你希望它完全不透明,因此其颜色值为rgb(255,255,255,1)。相反,颜色黑色或没有颜色,颜色值为rgb(0,0,0,1)。 

以下是使用TestNG框架的Java编程语言中的Selenium WebDriver代码示例,它可以使用id属性“the_text”来检测Web元素的文本颜色。id属性为特定的Web元素提供了唯一的标识,Selenium WebDriver用于查找所述Web元素。此代码还将颜色值打印到控制台,并声明代码返回的颜色值与预期值匹配。

这个断言是我们正在测试的。假设我们期望文本的颜色是黑色的,所以颜色值应该匹配“rgba(0,0,0,1)”。

@测试代码
public void testGetColor(){
    WebElement element = driver.findElement(By.id(“the_text”)); //找到web元素。
    String color = element.getCssValue(“color”); //获取颜色值。
    System.out.println(“Color equals:”+ color); //将颜色值打印到控制台。
    //声明颜色的预期值与“rgba(0,0,0,1)”匹配。
    Assert.assertEquals(color,“rgba(0,0,0,1)”);
}

在这种情况下,将以下内容打印到控制台,以便我们可以手动读取代码的结果:

Color equals: rgba(0, 0, 0, 1)

加上整个测试的结果总结在控制台上:

PASSED:testGetColor

光剑在滑过空气,偏转火焰或与目标物连接时,也会产生独特的嗡嗡声和嘶嘶声。绝地武士使用原力来记录噪音和声音质量 - 当尤达大师训练卢克天行者时,他指示他感受到Dagobah地球上各种生物的声音的本质 - 但是我们该如何做呢?

在我们的星系中,可以通过使用诸如Snack和WaveSurfer之类的软件进行音高提取来分析声音。这些程序是用于计算机科学中的语音研究,它们可用于与音频数据相关的一系列任务。

Snack被设计为与脚本语言(如Tcl/Tk或Python)一起使用。你可以使用几行代码创建多功能的音频应用程序。Snack具有处理声音的命令,如播放,录制,文件和套接字I/O。Snack还支持声像可视化,如波形和频谱图。WaveSurfer具有图形用户界面,并使用Snack构建,因此WaveSurfer可以更容易地用于非编程人员。如果光剑在E-flat钥匙上振动,那么你需要重新校准。

绝地经常需要使用创造力和解决问题的技能来战胜危险和邪恶的Sith领主。同样的创造力和解决问题的能力使测试人员受益,因为我们面临着自己的挑战。我们的可能不是一个饥饿的对手,令人惊叹的sarlacc渴望消化我们作为一个美味的小吃在胃里一千年,但我们可以确保,无论产品多么棘手,我们可以设计测试。

译自  Michael Mak 的《Strategies for Testing a Lightsaber (That Don’t Include the Force)》一文。



留言