我在一家负载传感器制造公司做程序员。
我们开发了自己的软件,用于负载传感器的制造和测试。
我们公司的质量保证部门要求对我们发布的软件进行定期的验证和验证测试(每年一次),该软件已经过测试。(他们正在考虑将软件作为一种设备,例如需要定期核查的多米设备。)
我的观点是,没有必要不时测试一个发布的软件。
因此,我在这里为一些专家的以下问题找到答案:
发布于 2017-02-23 06:24:36
每年对完全相同的、不变的软件运行一次完全相同的测试似乎没有多大意义,只要软件在可靠的、不变的硬件上运行、在没有变化的操作系统环境中运行,并且程序在测试的上下文中具有决定性的行为。
但是,如果您的公司不仅测试软件,而且测试整个系统(包括硬件、操作系统、传感器、生产控制器等),或者测试在两者之间得到改进,这是有意义的。而你的软件曾经被测试和发布的事实并不意味着它是“无缺陷的”,它只是证明它只包含迄今未被检测到的错误。
在你的例子中,听起来你的QA部门只是想重复测试,尽管没有什么改变只是因为正式的原因。嗯,如果他们坚持,确保您的所有测试自动化,每年运行测试套件一次,发送测试协议,并确保您为此向他们收费。
发布于 2017-02-23 06:30:55
此外,@DocBrown的答案还需要考虑的另一件事是,软件是在一个设置的环境中运行,还是在用户的控制之下。因此,例如,如果该软件嵌入到一个更大的产品中,您可以控制系统的引导映像(例如Linux、Windows或macOS),而用户没有能力更新操作系统环境,那么重新测试一些根本没有改变的东西似乎是毫无意义的。
OTOH,如果您的系统执行诸如应用OS更新(安全性或其他)之类的操作,或者如果用户控制您的产品在其中运行的OS环境,那么当然有可能在整个系统中出现新的问题,即使您的软件没有改变(例如,OS更新是熵的来源)。
因此,在后一种情况下,即使您没有新版本的软件,定期运行您的测试套件对安装在一个完全最新的系统上的软件也是有意义的。如果出现新问题,则可以修复它们,也可以声明该配置为不支持的配置。
发布于 2017-02-23 18:17:12
在ISO质量标准世界中,有一个重要的测试过程是这样的:“您今天要发货的软件是您交付的软件吗?我们昨天测试的软件是相同的吗?”
简单地说,许多类型的软件的答案是通过比较校验和来确定软件作为一个完整的软件包的身份。因此,将软件的校验和作为发布包的一部分交付,并在该软件上签个名。通过再次计算校验和,可以将该符号转换为可敬的符号.
当然,如果运行该软件的环境的任何部分发生了变化,整个系统将需要重新测试,包括更改后的环境。其他的事情都很忙。
https://softwareengineering.stackexchange.com/questions/342792
复制相似问题