企业绩效管理网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 593|回复: 6

Automated TM1 Regression Testing Framework like nUni ...

[复制链接]

73

主题

386

帖子

554

积分

高级会员

Rank: 4

积分
554
QQ
发表于 2014-3-17 11:14:14 | 显示全部楼层 |阅读模式
Hi folks,

Is there something for TM1 following the nUnit style of automated test tools?

In theory, I would expect it to be something like the following
* A TI that runs all processes with a '.Test' suffix
* Each process with a .Test suffix runs unit tests on an underlying TI returning PASS or FAIL. i.e. The process p.Dim.Subset.Copy.Test runs unit tests of p.Dim.Subset.Copy.
* Notification is sent whenever any processes return FAIL

I can create this on my own, but I thought I would ask if there exists a common framework that everyone already collaborates on. Is there a sourceforge project already started? Is anyone interested in contributing to one if I were to start it?

Thanks for your help,

Bob
回复

使用道具 举报

79

主题

384

帖子

573

积分

高级会员

Rank: 4

积分
573
QQ
发表于 2014-3-17 13:03:06 | 显示全部楼层
Hi bob

Neverheard of this process before but would this not work

While I <= dim size (}processes)
cElename = dimix(}processes, I)
If( scan("test", celename)<>o)
Executeprocess(celename);
Endif
I =I +1
End

You could add the code to the process if fail then add to dimension }processes an attribute which catches flags like fail

Then in epilogue create a subset based on that attribute for fails etc then ASCII output each fail or create an email to auto email yourself the answers
回复 支持 反对

使用道具 举报

64

主题

404

帖子

556

积分

高级会员

Rank: 4

积分
556
QQ
发表于 2014-3-17 13:29:33 | 显示全部楼层
You're completely right. That would work well.

I was just wondering if I'm reinventing the wheel or not. An Agile project should have a continuous integration component that automatically does regression testing and provides immediate visibility to the team if an error comes up. Is there not something already out there to provide this kind of testing framework?

In the TM1 world, is there something like sourceforge where developers can work together on foundational pieces to be shared in the community?
回复 支持 反对

使用道具 举报

84

主题

404

帖子

593

积分

高级会员

Rank: 4

积分
593
QQ
发表于 2014-3-17 14:06:44 | 显示全部楼层
The closest or maybe the only thing resembling an open source library of unit functionality in TM1 is the bedrock codebase.

I'm suspicious as to the worth of a fully automated process for unit testing TI processes. Many processes will have parameters that need to be passed, without passing appropriate parameters a simple pass/fail based on process completion status doesn't give you much useful information, you could well argue it doesn't give you ANY useful information. For a valid test you need and expected outcome and compare the result to the expected outcome. Code that runs without producing an error is not enough.
回复 支持 反对

使用道具 举报

82

主题

414

帖子

607

积分

高级会员

Rank: 4

积分
607
QQ
发表于 2014-3-17 14:46:20 | 显示全部楼层
I'm pretty sure there is no bona-fide unit testing framework for TM1 on the market. It's something we've thought about frequently at Flow, but have yet to find the time to prioritize the product. We'd be interested to hear your thoughts and requirements.
回复 支持 反对

使用道具 举报

87

主题

428

帖子

615

积分

高级会员

Rank: 4

积分
615
QQ
发表于 2014-3-17 15:03:49 | 显示全部楼层
I have constant chores on my server that run through all models giving me automatic emails from processes ran nightly to server statistics cube sizes dimensions garbage memory to users dormant users admins etc

These things are easily built but I believe a integrated system wouldn't work as most servers configs are different, in my workplace the servers are all slightly unique and all models although similar in nature work differently to the developers requirements and expertise,
回复 支持 反对

使用道具 举报

86

主题

402

帖子

589

积分

高级会员

Rank: 4

积分
589
QQ
发表于 2014-3-17 15:04:03 | 显示全部楼层
Hi

I use something that I call a Master Process cube. One dimension is the Master Process dimension. Against each Master Process element you can set up a number of lines of processes to be run, and give parameters.

The master process execution process takes a parameter of an element in the Master Process dimension to be run. It then runs each process in turn, passing in the parameters. You can set each process to continue on error or to stop running further processes if there is an error. For an error testing suite you would probably want it to continue. At the end it will tell you whether each process succeeded or failed and how long it took to run.

However, the hard part is writing the processes to do the checks.

In practice I tend to incorporate the tests into the system rather than having a separate test suite.

For example, at the end of a dim build process there will be checks to ensure that all elements below a given top level element only have one parent.

For general day to day testing, I usually build an Excel framework where I perform the same calculations in Excel and compare the results to TM1. I also use it to report on Orphans (elements that have no parents in the hierarchy and which are linked to an Orphans consolidation that then consolidates into All elements.

The other part is setting up a reliable set of test data. In the past it took quite some time to set up a relational database with a set of test data for TM1 ( and also relational Cognos BI) so that we have a reliable set of data for test loads.

However, with a TI process based test suite you will only really be testing loads and dim builds or simulations of data entry, but you still won't be testing the data entry sheets, security rights, etc.

Regards

Paul Simon
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|企业绩效管理网 ( 京ICP备14007298号   

GMT+8, 2023-9-25 14:09 , Processed in 0.082531 second(s), 13 queries , Memcache On.

Powered by Discuz! X3.1 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表