我们一直在开发与服务器通信并存储数据的wifi / 2g板。

该项目已经运行了几年,我们正在不断更新板子的固件和服务器软件。

时不时地出现故障,并且经常被发现由客户提供,当为时已晚并且失败导致更糟的情况时。

我已经在受控环境中进行了许多测试,每次想到新的测试时,我都会尽快进行,但是最近我对要测试的内容的想法不多了。

电路板非常复杂,并且出于不同目的使用了几种芯片,因此测试涉及硬件测试和软件。
我正在寻找一种更好的方法来找到更好的测试方法,因为显然我总是会遗漏一些东西。

我并不是在建议我能够预测所有可能的结果案例(不可能),我只是在寻找一些有关如何改进测试的准则。

评论

您有自动回归测试吗?还是您所有的测试手册?

这篇文章可能会有所帮助,sqa.stackexchange.com/questions/28204/…

#1 楼

如果没有更多细节,很难回答,正如您所说的,这是一个复杂的系统。但是,您仍然可以尝试做一些事情。

您可以尝试做的一件事是进行根本原因分析,以查看错误的来源,而不是集中测试,尤其是如果有多个错误的起源。

一个很好的方法是询问5个原因,但要警告您,很有可能最终会得到一个程序性答案(没有足够的设计,代码还不够)

值得尝试的另一件事是收集有关表中bug的信息,并尝试在子模块,开发人员等内容中找到相关性,日期,编程语言或环境。我对缺陷群集一词一无所知,但值得一试。

评论


我同意您的大部分观点,但请不要使用错误跟踪信息来关联各个开发人员。它太接近衡量性能了,一旦您做完,您的数据性质就会发生变化,因为开发人员希望避免责怪。

–c32hedge
17年12月11日17:10



如果我正确阅读了该问题,则该问题具有追溯力,并且自开发人员编写代码以来已经过去了很长时间。但是你是对的,那是不折不扣的,而且效果不只一种

–Rsf
17年12月11日在17:13

如果特定的开发人员有不良的代码管理习惯,并且在主干/标签上提交了草率的代码或未经审查的代码,那么为什么不进行讨论呢?

–杰里米·科瓦尔斯基(Jeremy Kowalski)
17年12月11日在18:12

因为它应该是预先捕获的,因为它很罕见,因为通常没有人会在没有任何人阅读的情况下对一大堆代码负责,并且它通常会指出整个团队的不良习惯

–Rsf
17年12月11日在19:12

#2 楼

re:

时不时地发生某些故障,并且通常为时已晚,并且故障导致更严重的后果被客户端发现。

我进行了许多测试在可控的环境中,每当我想到一个新的测试时,我都会尽快进行测试,但是最近我对要测试的内容的想法不多了。

我觉得第一个(现实世界中的事件)是更好的测试指南,而不是第二次(您的想法)。并不是说测试应该只在流程的最后进行,而是如果现在就在这里显示故障,请从这些故障中退路,以查看在流程中有多早可以检测到此类错误。经过测试。

#3 楼

您显然将永远无法测试所有内容(因为您可以测试的事物数量是无限的),但是您可以采用基于风险的方法来确定测试的优先级。例如,如果您已经对产品进行了风险评估,则可以确保花费大量时间来解决可能导致最严重故障的案例。

我还看到您ve标记了此manual-testing。您还可以通过寻找使更多测试套件自动化的方法来提高效率,尤其是因为提到不断更新的情况。这将为您提供一个良好的“安全网”,以确保更改不会破坏您先前测试过的东西。即使您要测试涉及硬件的系统,也可以使用一些技术来实现自动化。谷歌搜索“循环中的硬件”可能会产生一些想法-很抱歉,根据我的实际经验,我不能说太多,但这是我们希望在硬件/软件系统中做更多的事情。

在改善实际测试方面,有很多关于测试设计和测试技术的书。我还没有阅读列表中的第一个,但是这里有一些有用的资源:James Whittaker的“如何破解软件”。该系列中的其他两本书分别专注于Web软件和安全性。

Myers,Badgett和Sandler撰写的《软件测试的艺术》,《探索性软件测试》,作者:James Whittaker

探索它!:通过探索性测试降低风险并增强信心,作者Elisabeth Hendrickson,


#4 楼

自动化回归测试。正如您所了解的那样,手动测试无法扩展。

您应该进行测试,以检查事情何时按预期进行(幸福的道路)以及何时遇到一些问题。

另外,如果您可以检测到一些常见的问题/错误模式,则您的测试可以检查这些模式的存在。

一旦您可以信任回归测试,请人类,而不是无聊地重复手动测试相同的步骤,可以针对自动化测试未涵盖的情况(以及其中一些自动化)进行更多的探索性测试。

#5 楼

您的测试主要起作用吗?您是否执行任何单元级别的测试?如果您的问题出现在复杂的非预测性业务用户工作流程中,那么您最终将只能追尾,尝试编写脚本并评估每个功能结果。

您的系统性问题可能与其他一些领域有关:


配置管理
环境管理
范围狭窄或不完整的测试数据

我建议您检查所有已有的单元测试。如果您没有单元测试,那么我将首先与您的开发团队合作来缩小差距。

接下来,查看您的回归测试平台。您的所有测试都始终通过吗?您运行的测试正确吗?您是否考虑过采用基于风险的方法进行测试选择?如果区域或要素没有变化,为什么还要再次运行测试?您是否花了太多时间进行无法为您提供发现问题机会的测试?

您如何处理负面测试?

最后评估那些其他领域与测试或测试执行直接相关。环境管理和系统配置可能是问题的一部分。如果您的测试环境配置与生产环境不完全相同,则在回归测试期间可能会得到误报。