我为一个小型网络公司工作,很快将推出一个相当复杂的Windows程序。我们发现了一些“WTF?”在程序被传递到我们无法复制的各种非技术类型时出现的类型场景。
我们面临的最大问题之一就是测试:总共有三个程序员 - 只有一个在这个特定的项目上工作,我 - 没有测试人员,还有一些其他工作人员(销售人员,等等)。我们在地理上也是孤立的。 “测试实验室”由少量VMWare和VPC图像组成,这些图像运行在我的个人计算机上运行的Windows XP和Vista的全新安装。当出现问题时,非技术类型试图提供帮助,我们已经培训他们如何最有效地报告问题,软件本身具有广泛的诊断功能,但由于他们不是像我们这样的计算机书呆子,他们的报告是只有这么有用,安排远程控制会话来挖掘他们计算机的内容是非常耗时的。
我正在寻找资源,使我们能够扩大我们的测试能力,而无需组建实际的实验室并聘请beta测试人员。我的老板提到租用VPS服务,并要求我查看他们,但他们仍然主要是非常自助服务,我想知道是否有更好的方法。您或类似情况下的任何其他公司如何处理此类事情?
编辑:根据该术语,我们的目标是通过Amazon EC2等弹性计算平台扩展我们的系统测试能力。在这一点上,我不确定加强我们的单元/集成测试的建议会有很大的帮助,因为我们在系统测试阶段一直在努力。有没有人试图在像EC2这样的云类型服务上进行这种软件测试?
汤姆
答案 0 :(得分:1)
我认为记录应用程序活动和错误/异常详细信息是传达客户端问题技术细节的最有用策略。您可以添加一项功能来自动邮寄日志或让客户手动执行此操作。
问题是,你到底测试的是什么意思?您是否只对无差错操作感兴趣,或者您是否也关注如何在客户端接受该软件(可用性)?
对于技术错误,请编写日志并在不同操作系统安装中的不同方案中手动测试。如果你可以添加单元测试,它也可以帮助。但我认为问题在于它适用于您的计算机,但在其他地方无效。
您还可以使用IDE功能远程调试,例如“附加到远程进程”等。如果您不在同一办公室,我不确定如何进行调试,可能需要构建VPN。
如果是关于可用性,请组织研讨会。新人将使用您的应用程序,您将录制视频和音频。然后分析他们在团队“飞行后”会议中遇到的问题。与用户交谈,询问他们不喜欢什么并采取行动。
理论上,您还可以构建此活动登录到应用程序。您需要清楚地记录要记录的内容以及如何解释数据。
答案 1 :(得分:1)
我要问的第一个问题是你是否进行了任何自动化测试?
我的意思主要是指单位和集成测试。如果没有,那么我认为你需要立即研究单元测试,首先是构建过程的一部分,然后是服务器上的自动运行。即使使用基于UI的应用程序,也应该可以找到可以自动执行用户操作的软件,并在测试失败时告诉您。
除了开发人员可以想到的测试之外,每次用户发现错误时,您都应该能够为该错误创建测试,通过测试重现它,修复它,然后将测试添加到自动化测试。这样,如果再次引入该错误,您的自动化测试将在用户执行之前找到它。此外,您可以放心,您的应用程序在用户看到之前已针对每个已知问题进行了测试,并且没有人必须手动尝试这样做几天或几周。