
Bana Regression Suite Automation Tool(RSAT) satabilir misiniz?
Microsoft D365 FO’nun yeni sürümlerinin mevcut hızlı görünümü ile test yapmak daha fazla zaman alabilir (yılda 10 kez). Bu durumda bazı kararlar vermenizde fayda var. Örneğin;
- Güncellemeleri atlayın ve örneğin yalnızca çift veya tek platform güncelleme numaralarını alın
- MS’i test etmeyin ve güvenin. Ancak lütfen MS’te sadece insan olduklarını ve insanların da hata yaptığını unutmayın.
- Daha kısa sürede daha fazla test yapılabilmesi için test ekibinizi artırın.
- Regression Suite Automation Tool kullanmaya başlayın.
Geçmişte 1. seçeneği seçiyorduk. Yine de her ay release çıkardık, ancak MS sürümüne ISV ile sürümler ve müşteri için özel çözümler dahil edilmedi.
Nasıl kullanabiliriz?
Müşterilerimizle RSAT hakkında konuşmaya başladığımızda, her zaman bütçe olmadığını söylüyorlar. Bu doğru değil, her zaman test maliyeti vardır. Sadece mevcut test maliyeti, dahili testler ve / veya üretim ortamlarında ortaya çıkan sorunlar şeklinde o müşterinin organizasyonunda gizlidir. Gördüğümüz şey; müşterilerin BT projeleri için bir bütçesi olduğu. Müşterinin / anahtar kullanıcının test ettiği saatler bu bütçenin parçası değildir.
Sonra başka bir nokta daha görüyoruz ki mevcut görev kayıtları (task recorder) çoğu zaman güncelliğini yitirmiştir (bkz. İş Süreci Modelleyiciniz (BPM) neden güncel olmalı? bloguna). RSAT kullanarak BPM kitaplığınızı otomatik olarak güncellemiş olursunuz.
RSAT, bir sağlama aracı gibi kullanarak daha da güçlü hale gelebilir. Aşağıda, veri hattı sürümünde kullandığımız bir örnek verilmiştir. İlk örnek, bir veri tabanını 1. katman (MS barındırılan veya müşteri tarafından barındırılan) üzerine geri yüklediğimiz zamandır.

Mevcut RSAT çözümünün bir bulut hizmeti olarak çalıştırmak yerine gerçek bir makineye kurulması gerekiyor. Bunu başarmak için, onu bulutta barındırılan bir Devbox’a kurduk ve maliyetleri yönetmek için otomatik kapatmayı açtık. Bu nedenle eğitimde söz konusu ortamı hem başlatan hem de durduran adımlar görüyorsunuz.
Devops’taki mevcut RSAT, yalnızca kurulu olduğu gerçek bir makinede çalışır. Bu yüzden onu bulutta barındırılan Devbox’a kurduk, Azure maliyetini düşük tutmak için bu sanal makineyi talep üzerine başlatıyoruz. RSAT provizyonunun parametrelerinde; veri tabanını yeni geri yüklediğimiz(restore) ortama işaret eden RSAT ayarları dosyasını seçiyoruz.

RSAT’ı kullandığımız görevler şunlardır:
• Kullanıcıları etkinleştirin
• Toplu işleri (Batch) başlatın
• Exchange ayarlarını güncelleyin
• Diğer tüm entegrasyon seçenekleri
Ancak RSAT, en son özelleştirilmiş müşteri kodunuzla yeni bir release yayınladığınızda da tekrar kullanılabilir. RSAT’ı bu şekilde kullanmamın nedeni; 1. Katman üzerinde yapılan testlerin dünyayı temsil etmemesi, paketi geliştirme alanında değil operasyonel alanda test etmek istiyorum.

Ve son durum, Microsoft’un güncellemeleri içindir. Yukarıdaki gibi benzerdir, RSAT görevini yalnızca MS versiyon aday ortamında çalıştırırsınız.
Şimdi iş durumu açıklandığına göre, yapı taşlarına kısaca bir göz atalım.
VM’yi başlatmak ve durdurmak için Azure CLI kullanıyoruz

Agent pools
Kullandığımız adımlar farklı agent pool’a ihtiyaç duyar. Ben her zaman sadece azure pipeline’ı kullanmayı tercih ediyorum. Ancak bunların bir sınırlaması var. Adımın sanal makinede bulunan programlara veya dosyalara ihtiyaç duyması halinde, sanal makinenin de bir agent pool’u olması gerekir. Aşağıdaki liste, bir müşteri uygulamasında ihtiyaç duyduğumuz agent pool’u göstermektedir:

Ayrıca, mevcut bir bulutta veya hatta yerel bir sanal makinede çalışan bir building pool’a ihtiyacınız olduğunu fark ettiğinizde, onu yine de kurabilirsiniz. Https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops ile ilgili bilgilere bakabilirsiniz.
Toparlamak gerekirse; RSAT’ın bir satış hikayesine ihtiyacı yoktur. Nasıl kullanılacağını bilirseniz, kendisini satmaya başlayacaktır.
Diğer DEVOPS ipuçları için https://kaya-consulting.com/category/lcs/ adresine bir göz atın.

Can you sell me Regression Suite Automation Tool (RSAT)?
With the current fast appearance of new versions of D365 FO (10 times a year). Testing can become more time consuming. So, you must decide:
- Skip updates, take for example only the even or odd platform update numbers
- Do not test and have confidence at MS. But please be aware at MS they are also mere humans and humans make mistakes.
- Increase your Test team so more tests can be performed in a shorter time.
- Start using the Regression Suite Automation Tool.
In the past we chose option 1. We did still release every month, but the release of MS was not included the releases with ISV and tailored solutions for the customer.
How we use it
When we start talking about RSAT with the customer, they always reply, that there is no budget. This is not correct, there are always costs on testing. Only the current test cost is hidden within the organization of that customer in the form of internal tests and/or issues arising in production environments. What we see is that the customer has a budget for his IT projects. The hours that the customer/key user is testing is not part of this budget.
Then we see another point, the current task recordings are most of the time outdated (see blog Why should your Business Process Modeler (BPM) be up to date?). By using RSAT you are automatically being forced to bring your BPM library up to date.
RSAT can become even more powerful by using it like a provisioning tool. Below is an example as we use it in a release pipeline. The first example is when we restore a database on a tier 1 box (MS hosted, or customer hosted)

The current RSAT solution needs to be installed on an actual machine instead of running as a cloud service. To achieve this we installed it on a cloud hosted Devbox and turned on auto shutdown to manage costs. Therefor you see steps both starting and stopping said environment in the train.
The current RSAT on a devops only runs on a real machine where it is installed. So, we installed it on cloud hosted Devbox, to keep the Azure cost low we start that VM on demand. In the Parameters of the RSAT provisioning we select the RSAT settings file pointing towards the environment we just restored the database of.

The tasks we use RSAT for are:
- Enable users
- Start batches
- Update exchange settings
- Any other integration options
But RSAT is also reusable when you deploy a new release with your latest tailored customer code. The reason I use RSAT this way is, testing on a Tier 1 is not representing the world, I want to test the Package in the Operational area and not in the Development area.

And the last case is for updates of Microsoft. It is similar like above , you only run the RSAT task on the MS release candidate environment.
So now that the business case has been explained, let us have a short look at the building blocks.
For starting and stopping the VM we use Azure CLI

Agent Pools
The steps we used need different Agent pools. I always prefer to use only the azure Pipelines. But those have a limitation. In case the step needs programs or files that are located on the VM, the VM also need to become an agent pool. Below list shows the additional agent pools we need at a customer implementation

And when you realize you need a building pool on an existing cloud hosted or even running on a local VM, you can still install it. Look for information on https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops
And now to wrap up; RSAT does not need a Sales story. If you know how to use it, It will start selling itself.
For other DEVOPS tips have a look at https://kaya-consulting.com/category/lcs/