Data rollback

A major challenge in testing, particularly data driven applications like ERP systems, is managing data during the test execution. For a test to execute reliably, it needs to start from a known state… every single time. How can we make that happen reliably? Fortunately in AX7, a significant testability feature was added to the SysTest…


X++ FormAdaptors – A Simple Example

  My last post introduced a testability feature in the new AX called FormAdaptors.  That post described changes in the product architecture that enabled FormAdaptors and why they have been so valuable for our internal automated regression testing strategy.  In summary, FormAdaptors provide an API to interact with forms from X++ and run server side…


X++ FormAdaptors – An Introduction

In recent posts I’ve mentioned some testability features in AX’7′ that have significantly improved our regression test qualities ( The foremost of these features is the addition of X++ FormAdaptors to use for server side execution of form tests. In order to describe FormAdaptors, we first need to take a step back to discuss the…


Making testing finite–a case study

One of the focus areas for AX’7′ regression testing was creating form based automated regression tests using the new testability improvements in the product. This post will discuss how the product team prioritized the regression test development. The testability discussion will be covered in a future post. In my last post, Testing is Infinite, I…


Testing is infinite

One of my favorite test quotes comes from a former peer of mine – “development is finite but testing is infinite”. He used that statement to reinforce the challenge of the software test function and the need to constantly be looking at the ROI (return on investment) of testing activities. There’s always something more to…


Test Automation Pyramid

Continuing the discussion on automated regression tests, this post will focus on the test granularities that will lead to a test suite that meets the qualities discussed in my last post. Test granularity refers to the scope of the test, or how much of the system under test (SUT) that the test covers. There are…


Automated Regression Test Qualities

  In my last post, I discussed the need for a balanced approach to testing efforts. The goal, informed by the context of the project, is to consider all four quadrants of the agile testing matrix. In this post, I’m going to turn my focus to a testing activity that is typically found on the…


Achieving balance in testing software

Like nearly all things in life, testing software requires a balancing act. There are many different aspects of a software package that need to be validated. There are many different tools and approaches to do this validation. Spend too much time on any one part of the product or with a single tool or approach…



I wrote my first post on this blog over 10 years ago. I’ve written over 100 posts, including 9 ‘4+ Star Ratings’ posts (whatever that means). Why do I need to write a post titled (Re)Introduction? Well, a bit of a deeper dive into my blogging history shows that I wrote a bunch of posts…


Why do my Coded UI tests pause during playback?

  If you’ve spent some time using VS 2010 Coded UI with Dynamics AX 2012 you’ve probably noticed that playback can be slow.  Watching the playback, you will see that there will be some activity, then a pause, then some more activity, more pausing, a little more playback, more pausing, <sigh>.  It makes you wonder…..