如何做敏捷开发和测试大批量处理系统?工具?方法?建议?

时间:2011-02-24 21:56:08

标签: sql-server ssis automated-tests integration-testing

我正在开发大批量处理系统。就像基于数百万条记录计算各种参数的数学模型一样,计算出数百万条记录的衍生字段,处理有交易的大型文件等......

我很清楚单元测试方法,如果我的代码在X#中,我在单元测试中没有问题。问题是我经常在T-SQL中使用代码,C#代码是SQL存储的程序集,SSIS工作流程具有大量逻辑(和结果等)或某些SAS流程。

在开发此类系统时,您使用的方法是什么?我通常在设计模式(TEST)中开发几个测试作为存储过程,然后在一夜之间自动运行它们并检查结果。但这仅适用于T-SQL。但问题在于测试SSIS包。你是如何测试的?什么是将数据存入表中的首选方法(特别是如果需要大量数据初始化)。多年来我有一些方法,但也许我只是没有阅读足够的文章。

银行,电信,风险开发商在那里。您如何测试在末日,月末等处理数百万条记录的关键任务应用程序?你使用什么框架?你如何验证你的ssis软件包是否正确(当你开发它时)/如何在这样的环境中实现持续集成(我个人从未到过那里)?我希望这不是开放式的问题。例如,你如何测试你的map-reduce作业(我不使用hadoop,但这非常相似)。 路加

希望这不是开放式的

2 个答案:

答案 0 :(得分:1)

首先建立记录,监控和进入你正在建造的双重系统。
确保即使打开这些系统,性能也是可以接受的,因此可以对基准进行分析,并确保硬件适用于整个系统。

将每个系统拆分为可以独立测试的子系统,因此请尽量确保系统设计为松散耦合。 同时确保每个子系统在进一步处理之前验证其输入,这可以确保在错误数据成为更大问题之前停止它。

通过使用日志记录,您可以以类似的方式测试各种系统。 对于没有可用单元测试框架的任何系统,请使用日志记录,然后测试生成的日志。 这应该允许您测试SSIS进程,工作流程或程序集。

监控&双重进入系统,将标记错误&处理问题,因此您可以及时识别并理想地解决它们。

最后,当系统上线时,不要完全关闭注销。 如果有必要,减少它的详细程度,但要确保可以打开,调试进程,因为在您需要解决的实时环境中仍然会出现问题。

确保您使用实时数据和边缘案例进行自动化测试。 使用代码评论或配对编程以确保代码是最佳的。 确保您使用专家QA人员来考虑您不会想到的用例。 确保您拥有一名出色的项目经理,他可以管理您,您的团队,相关团队,最终用户和您的老板,并确保每个人都能正确沟通。

如果没有运行良好的团队,您将无法实现经过良好测试的流程。

使用上述某些功能,我们可以开发经过良好测试的流程,每年处理数十亿英镑的交易,因此我们必须做正确的事情。

答案 1 :(得分:1)

自动回归测试,而不是单元测试。用于比较输入和预期输出的自定义工具。一切都表现出色。性能测试。使用预加载系统进行测试。试试x64,x32等自定义工具,根据业务案例合成数据。模块化dtsx。一个dev每dtsx。列表继续。