=Paper=
{{Paper
|id=Vol-1980/UYMS17_paper_9
|storemode=property
|title=MS Team Foundation Server icin Ozellestirilebilir Izlenebilirlik Raporu Hazirlama Masaustu Uygulamasi (Customizable Traceability Report Preparation Desktop Application for MS Team Foundation Server)
|pdfUrl=https://ceur-ws.org/Vol-1980/UYMS17_paper_9.pdf
|volume=Vol-1980
|authors=Erkan Okur,Gorkem Kasap,Ozlem Ozbay
|dblpUrl=https://dblp.org/rec/conf/uyms/OkurKO17
}}
==MS Team Foundation Server icin Ozellestirilebilir Izlenebilirlik Raporu Hazirlama Masaustu Uygulamasi (Customizable Traceability Report Preparation Desktop Application for MS Team Foundation Server)==
MS Team Foundation Server için Özelleştirilebilir İzlenebilirlik Raporu Hazırlama Masaüstü Uygulaması Erkan OKUR*, Görkem KASAP*, Özlem ÖZBAY* * Tasarım Yönetimi ve Teknolojileri Müdürlüğü, Mühendislik Grup Başkanlığı, HBT Sektörü, ASELSAN A.Ş, ODTÜ Teknokent, ANKARA *{eokur, oozbay, gkasap}@aselsan.com.tr Özet. Microsoft’un Yazılım Yaşam Döngüsü Yönetimi (Application Lifecycle Management) aracı olan Team Foundation Server (TFS), başta yazılım geliştiren firmalar tarafından olmak üzere yaygın şekilde kullanılan bir kurumsal yazılım- dır. TFS, özellik, gereksinim, görev, hata, değişiklik talebi, sorun, gözden ge- çirme, test planı, test senaryosu gibi kayıtları ve bu kayıtlar arasındaki ilişkileri etkin şekilde yönetebilmektedir. Gereksinim Yönetimi çalışmaları kapsamında “özellik-gereksinim”, “gereksinim-hata/sorun”, “gereksinim-görev” ve Test Yö- netimi çalışmaları kapsamında ise “test planı-test senaryosu”, “gereksinim-test senaryosu” kayıtları arasındaki ilişkilerin takip edilebilmesi için izlenebilirlik ra- porlarının oluşturulabilmesi önemli bir ihtiyaçtır. TFS, sorgu ekranları ile geliş- miş raporlama yeteneklerine sahip olsa da izlenebilirlik raporu oluşturma kabili- yetleri sınırlıdır. Piyasada bulunan ücretli üçüncü parti uygulamalar, TFS verileri üzerinden izlenebilirlik raporları oluştursa da bu raporlar yeterli esnekliğine sa- hip olmadığı için istenen sonuçlar alınamamaktadır. Bu çalışmada, söz konusu ihtiyaca yönelik olarak C# dili ve TFS API’leri kullanılarak geliştirilen “Özelleş- tirilebilir İzlenebilirlik Raporu Hazırlama Masaüstü Uygulaması” hakkında bilgi verilecek olup, elde edilen kazanımlar ve geliştirme hedefleri paylaşılacaktır. Anahtar Kelimeler. İzlenebilirlik Raporu, MS Team Foundation Server, Gerek- sinim Yönetimi, Test Yönetimi, ALM, Uygulama Yaşam Döngüsü Yönetimi Customizable Traceability Report Preparation Desktop Application for MS Team Foundation Server Abstract. Team Foundation Server (TFS), Microsoft's Software Lifecycle Man- agement (ALM) tool, is a commonly used enterprise software especially by soft- ware developers. TFS can able to manage feature, requirement, task, bug, change request, issue, review, test plan, test scenario, test case work items and the rela- tionships between these records effectively. It’s very important to create Trace- ability Reports to manage relations between “feature-requirement”, “require- ment-issue/bug”, “requirement-task” records in the scope of Requirement Man- agement and “test plan-test case”, “requirement-test case” records in the scope of Test Management. Although TFS has advanced reporting capabilities with query user interfaces, their ability to create traceability reports is limited. Some paid 3rd party applications in the market have created traceability reports gathering TFS data, but these reports do not have sufficient flexibility so that the desired 574 results cannot be obtained. In this study, we will provide information about the "Customizable Traceability Report Preparation Desktop Application" developed using C# language and TFS APIs, and share the acquired gains and future plans. Keywords. Traceability Report, MS Team Foundation Server, Requirement Management, Test Management, ALM, Application Lifecycle Management 1 Giriş Aselsan’ın 40 yılı aşkın proje tecrübesiyle oluşturulmuş süreç, yönerge ve prosedürleri, Süreç Olgunluk Modelleri ve Kalite Standartları ile uygun olacak şekilde periyodik olarak güncellenmekte ve geliştirilmektedir. Aselsan HBT Sektörü CMMI-DEV v1.3 [1] Olgunluk Seviyesi 3, ISO 9001:2008 [2] ve AQAP 2110 [3] sertifikalarına sahiptir. Sahip olunan kalite sertifikalarına uygun olarak, Aselsan HBT Mühendislik Grup Başkanlığı bünyesinde proje yönetimi bir bütün olarak ele alınmakta, projenin gereksi- nimleri, özellikleri, senaryoları, kaynak kodları, testleri, hataları, açık işlemleri gibi mümkün olan tüm iş ürünleri Microsoft Team Foundation Server (TFS) [4] alt yapısı kullanılarak yönetilmektedir. TFS mimarisi, bünyesinde kayıt altına alınan iş ürünlerini etkin şekilde yönetebil- mek için bu iş ürünleri arasında linkler [5] kurulabilmesine imkân sağlamakta, sahip olduğu sorgu ekranları [6] ile de kayıtlar arasında kurulan bu ilişkileri uygulama web ara yüzünde kolay takip edilebilir şekilde gösterilmektedir. Bu sayede, TFS içinde bu- lunan binlerce bilgiyi anlamlı hale getirerek karar verme süreçlerinde etkin şekilde kul- lanabilmek mümkün olmaktadır. 2 Motivasyon Aselsan HBT sektör başkanlığı, günümüz teknolojilerinin sunduğu avantajları da kul- lanarak “doküman odaklı” bilgi altyapısından “veri odaklı” altyapıya dönüşümünü emin adımlarla sürdürmektedir. Bu çalışmalar kapsamında, projelerin tasarımı sıra- sında üretilen verilerin büyük çoğunluğu TFS ortamında kayıt altına alınmakta ve proje yaşam döngüsü boyunca veriler etkin şekilde yönetebilmekte, diğer veriler ile ilişkilen- dirilebilmekte, kontrollü şekilde güncellemeleri yapılabilmekte ve verilerde yapılan de- ğişikliklerin etki analizleri ortaya konabilmektedir. Yeterli olgunluğa erişen veriler, do- kümante edilmektedir. TFS ortamında bulunan verilerin MS Office ortamına aktarılmasına imkân sağlayan ücretli ve ücretsiz farklı araçlar bulunmaktadır. Ücretsiz olarak ulaşılabilen “Team Fo- undation Add-in” aracı [7] ile TFS - MS Excel ve MS Project entegrasyonu yapılabil- mekte, Modern Requirements tarafından geliştirilen SmartWord4TFS aracı [8] ile MS Word ortamında hazırlanan şablonların içine TFS verileri çekilebilmekte veya yine aynı firmanın TraceAnalysis4TFS aracı [9] ile izlenebilirlik matrisleri hazırlanabilmektedir. Bu araçlar Aselsan HBT bünyesinde farklı amaçlarla kullanılsa da, kolay okunabi- lir, çıktı alınabilir, projelerdeki farklı ihtiyaçlara uygun şekilde özelleştirilebilir “İzle- nebilirlik Raporları” oluşturma adına yeterli yetenek ve esnekliğe sahip değildir. 575 Bu nedenle, söz konusu ihtiyaçları karşılayabilecek, TFS verilerine doğrudan ve eş zamanlı olarak erişebilen bir uygulama geliştirme fikri ortaya çıkmış ve bildiriye konu “MS Team Foundation Server için Özelleştirilebilir İzlenebilirlik Raporu Hazırlama Masaüstü Uygulaması” geliştirilmiştir. 3 Sık Kullanılan İzlenebilirlik Raporları Bu bölümde, ALM çalışmalarında sık kullanılan “İzlenebilirlik Rapor” formatları hak- kında bilgiler verilmesi amaçlanmıştır. Geliştirilen uygulama söz konusu raporların ta- mamına destek verecek altyapıya sahiptir. Oluşturulacak TFS sorgusu ve uygulama üzerinden yapılacak şablon seçimiyle raporlar kolayca oluşturulabilmektedir. 3.1 Gereksinim Yönetimi için İzlenebilirlik Raporları Gereksinim Yönetimi çalışmaları kapsamında kullanılması tavsiye edilen izlenebilirlik raporları bu başlıkta detaylandırılmıştır. Özellik – Gereksinim (Feature – Requirement) Bazlı Rapor. Bir proje ve/veya sis- temdeki özelliklerin, hangi gereksinimleri gerçekleyerek sağlanacağını gösteren rapor- dur. Temel seviye bir rapor örneği Tablo 1’de verilmiştir. Bu rapor ile sağlanabilecek temel faydalar aşağıdaki gibidir: ─ Özellik – gereksinim eşlemelerinin kontrolü, ─ Gereksinim eşlemesi yapılmayan özelliklerin takibi, ─ Gereksinim durum bilgisinden yola çıkarak, özellik devreye alma iterasyon dö- nemlerinin planlaması. Tablo 1. Özellik - Gereksinim Bazlı Rapor Örneği Özellik Özellik # Gereksinim Gereksinim Gereksinim Gereksinim ID Başlık ID Başlık Durum Sorumlusu xxx1 Özellik 1 1 xxxx2 Gereksinim 1 Doğrulandı … 2 xxxx3 Gereksinim 2 Tamamlandı … xxx4 Özellik 2 1 xxxx2 Gereksinim 1 Doğrulandı … 2 xxxx5 Gereksinim 3 Doğrulandı … 3 xxxx6 Gereksinim 4 Planlandı … Gereksinim – Hata/Sorun (Requirment – Issue/Bug) Bazlı Rapor. Bir proje ve/veya sistemdeki gereksinimler ile ilişkili hata ve sorunların takip edilebildiği rapordur. Te- mel seviye bir rapor örneği Tablo 2’de verilmiştir. Bu rapor ile sağlanabilecek temel faydalar aşağıdaki gibidir: ─ Gereksinimle ile ilişkili hata ve sorunların dağılımının kontrolü, ─ Gereksinimle ilişkili henüz çözüm üretilememiş hata ve sorunların takibi, ─ Henüz çözüm üretilmemiş hata veya sorunlardan yola çıkarak, gereksinim durum değişimi ihtiyacının tespiti (örneğin; tamamlandı planlandı). 576 Tablo 2. Gereksinim – Hata/Sorun Bazlı Rapor Örneği Gereksinim Gereksinim Gereksinim # Hata/So- Başlık Durum ID Başlık Durum run ID xxxx2 Gereksinim 1 Doğrulandı 1 xxx7 Hata 1 İnceleniyor 2 xxx8 Sorun 2 İnceleniyor xxxx3 Gereksinim 2 Tamamlandı 1 xxx9 Sorun 1 Çözüldü xxxx5 Gereksinim 3 Planlandı 1 xx10 Hata 2 Kapatıldı 2 xx11 Hata 3 Yeni Kayıt Gereksinim – Açık İşlem/Görev (Requirement – Task) Bazlı Rapor. Bir proje ve/veya sistemdeki gereksinimler ile ilişkili açık işlem maddelerinin / görevlerin takip edilebildiği rapordur. Temel seviye bir rapor örneği Tablo 3’te verilmiştir. Bu rapor ile sağlanabilecek temel faydalar aşağıdaki gibidir: ─ Gereksinimle ilişkili henüz kapatılmamış açık işlem ve görevlerin takibi, ─ Gereksinim için belirlenmiş iterasyonu döneminden yola çıkarak, açık işlem ve görevlerin önceliklendirilmesi, ─ Açık işlem ve görevlerin sayısından yola çıkarak, gereksinim iterasyon dönemi değişimi ihtiyacının tespiti (örneğin; 2017-06 2017-08). Tablo 3. Gereksinim – Açık İşlem/Görev Bazlı Rapor Örneği Gereksinim Gereksinim İterasyon # Görev Başlık Öncelik ID Başlık Dönemi ID xxxx2 Gereksinim 1 2017-06 1 xx12 Görev 1 1. Seviye 2 xx15 Görev 3 2. Seviye xxxx3 Gereksinim 2 2017-08 1 xx18 Görev 4 3. Seviye 2 xx20 Görev 5 2. Seviye xxxx5 Gereksinim 3 2017-07 1 xx14 Görev 2 2. Seviye 3.2 Test Yönetimi için İzlenebilirlik Raporları Test Yönetimi çalışmaları kapsamında kullanılması tavsiye edilen izlenebilirlik rapor- ları bu başlıkta detaylandırılmıştır. Test Planı - Test Senaryosu (Test Plan – Test Case) Bazlı Rapor. Bir proje ve/veya sistemdeki test planları ile ilişkili test senaryolarının takip edilebildiği rapordur. Temel seviye bir rapor örneği Tablo 4’te verilmiştir. Bu rapor ile sağlanabilecek temel faydalar aşağıdaki gibidir: ─ Test planının gereken tüm senaryoları kapsadığının kontrolü, ─ Test plan için belirlenmiş iterasyon döneminden yola çıkarak, senaryoların onay- lanma ihtiyacının tespiti, ─ Henüz onaylanmamış senaryo sayısından yola çıkarak, test plan iterasyon dönemi değişimi ihtiyacının tespiti (örneğin; 2017-08 2017-09). 577 Tablo 4. Test Planı - Test Senaryosu Bazlı Rapor Örneği Test Plan Test Plan İterasyon # Senaryo Senaryo Senaryo ID Başlığı Dönemi ID Açıklaması Durumu xxx21 Test Plan 1 2017-08 1 xx31 Senaryo 1 Onaylandı 2 xx33 Senaryo 3 Taslak 3 xx34 Senaryo 4 İnceleniyor xxx23 Test Plan 2 2017-09 1 xx32 Senaryo 2 Onaylandı 2 xx33 Senaryo 3 Taslak Gereksinim - Test Senaryosu (Requirement – Test Case) Bazlı Rapor. Bir proje ve/veya sistemdeki gereksinimlerin, hangi test senaryoları kullanılarak gerçeklenece- ğini gösteren rapordur. Temel seviye bir rapor örneği Tablo 5’te verilmiştir. Bu rapor ile sağlanabilecek temel faydalar aşağıdaki gibidir: ─ Gereksinim gerçeklemesi için ihtiyaç duyulan senaryoların belirlenme kontrolü, ─ Gereksinim gerçeklemesi için belirlenmiş iterasyon döneminden yola çıkarak, se- naryoların onaylanma ihtiyacının tespiti, ─ Henüz onaylanmamış senaryo sayısından yola çıkarak, gereksinim iterasyon dö- nemi değişimi ihtiyacının tespiti (örneğin; 2017-08 2017-09). Tablo 5. Gereksinim - Test Senaryosu Bazlı Rapor Örneği Gereksinim Gereksinim İterasyon # Senaryo Açıklama Durum ID Başlık Dönemi ID xxxx2 Gereksinim 1 2017-06 1 xx31 Senaryo 1 Onaylandı 2 xx33 Senaryo 3 Taslak xxxx3 Gereksinim 2 2017-08 3 xx34 Senaryo 4 İnceleniyor 1 xx32 Senaryo 2 Onaylandı xxxx6 Gereksinim 4 2017-09 - - - - 4 Geliştirilen Uygulama Hakkında Bilgiler Bu bölümde, bildiriye konu uygulama altyapısı ve uygulamanın kullanımı ile ilgili bil- giler, geliştirme kodu ve uygulama ekran görüntüsü örnekleri ile birlikte verilecektir. 4.1 Uygulama Altyapısı Hakkında Bilgiler Bildiriye konu uygulama, Microsoft Visual Studio 2015 geliştirme ortamı, Windows Form Application altyapısı, C# programlama dili ve TFS API’leri kullanılarak gelişti- rilmiştir. Kullanılan kütüphane ve örnek geliştirme kodları Şekil 1 ve 2’de verilmiştir. Uygulamada TFS API’lerinin kullanılması, uygulamanın sonraki TFS versiyonları ile uyumluluğu açısından büyük avantaj sağlamaktadır. Söz konusu API’ler ve uygu- lama örnek kodları ile ilgili detaylara MSDN sitesinden ulaşılabilir [10]. using Microsoft.TeamFoundation.Client; using Microsoft.TeamFoundation.Server; using Microsoft.TeamFoundation.WorkItemTracking.Client; using Microsoft.TeamFoundation.WorkItemTracking.Server; Şekil 1. TFS API’leri Kullanmak İçin Gereken Kütüphaneler 578 TeamProjectPicker tpp = new TeamProjectPicker(TeamProjectPickerMode.SingleProject, false); tpp.ShowDialog(); if (tpp.SelectedTeamProjectCollection != null) { TfsTeamProjectCollection tfs = tpp.SelectedTeamProjectCollection; tfs.EnsureAuthenticated(); TFS_Project_Name = tpp.SelectedProjects[0].Name.ToString(); this.store = (WorkItemStore)tfs.GetService(typeof(WorkItemStore)); foreach (Project project in store.Projects) { if (project.Name.ToString() == tpp.SelectedProjects[0].Name.ToString()) { ProjectItem item = new ProjectItem(project.Name, project.WorkItemTypes, project.Uri.ToString(), project.StoredQueries); comboBox_sorgu.DataSource = item.Queries; comboBox_sorgu.DisplayMember = "name"; comboBox_sorgu.ValueMember = "guid"; comboBox_wit.DataSource = item.WorkItemTypes; } } } Şekil 2. Geliştirilen Masaüstü Uygulamasına Ait Örnek Kodlar 4.2 Uygulama Giriş Ekranı Uygulama açılış ekranında yalnızca “TFS Sistemine Bağlan” butonu yer almaktadır. Buton tıklanarak, “Team Foundation Sunucusuna Bağlan” penceresine ulaşılmaktadır. Bu pencere, kullanıcıyı kullanıcı giriş ekranına yönlendirmektedir. Şekil 3’te verilen örnekte “Single Sign-On” desteğine sahip sunucudan otantikasyon sağlandıktan sonra, kullanıcının sırasıyla “sunucu adı”, “proje koleksiyon adı” ve “takım projesi adı” se- çimlerini yapıp “bağlan” butonuna basılması gerekmektedir. Bu kontrol sayesinde, sa- dece yetki sahibi kullanıcıların uygulamayı kullanması sağlanmış ve kullanıcıların yet- kisi olmayan projelerin verilerine ulaşamaması garanti altına alınmıştır. 4.3 İzlenebilirlik Raporu İçeriği Belirleme Rapor alınmak istenen proje seçimi sonrasında, TFS API’leri kullanılarak seçilen pro- jede tanımlı olan tüm sorgular ve projedeki tüm iş ürünü tipleri uygulama arayüzünde yer alan ilgili açılan menülere aktarılır. Şekil 4’te örnek bir ekran görülebilir. TFS İzlenebilirlik İşlemleri. Rapor alınmak istenen sorgu, menüden seçilmelidir. Rapor Oluşturma İşlemleri. Rapor içeriği için hazır şablonlardan biri seçilebilir. Şab- londa yer alan iş ürünleri ve alanlar bilgi olarak ekranda yer alacaktır. Rapor İçeriği İşlemleri. Raporun isteğe göre özelleştirilebilmesini sağlayan işlemler- dir. Seçilen şablondaki tip ve alanlara ilave olarak veya boş bir şablon üzerine raporda yer almasını istenen iş ürünleri ve alanlar eklenebilir. 4.4 İzlenebilirlik Raporu Oluşturma Rapor için istenen içerik -yani sorgu- ve format -yani şablon ve varsa ilave alanlar- belirlendikten sonra, “Rapor Oluştur” butonuna basılarak, ekranda alt bölümde yer alan “TFS İzlenebilirlik Raporu” bölümünde HTML formatında rapor oluşturulabilir. Uygulamanın bu versiyonunda, HTML raporun MS Word ortamına kopyalanması ve ihtiyaç duyulması halinde biçimsel küçük düzenlemeler yapılması gerekmektedir. 579 Şekil 3. Uygulama Açılış Ekranı ve TFS Proje Bağlantı Penceresi Şekil 4. TFS Proje Bağlantısı Sonrası Rapor İçeriği Belirleme Ekranı 5 Sonuç ve Değerlendirme TFS kullanıcı dostu arayüzü ve farklı ihtiyaçlar doğrultusunda özelleştirilmeye imkân sağlayan genişleyebilen mimarisi sayesinde, devreye alındığı kurumlarda hızla yaygın- laşan ve giderek daha çok veriyi barındıran bir kurumsal uygulamadır. Günümüz po- püler kavramlarından “Big Data - Büyük Veri”nin altında yatan fikirlere paralel olarak, bu verilerin değerli olabilmesi için anlamlı hale getirilebilmesi ve karar verme süreçle- rinde etkin şekilde kullanılabilmesi büyük önem taşımaktadır. TFS’in esnek ve yetenekli sorgu ekranları ve TFS ile birlikte kullanılabilen ücretli ve ücretsiz araçlar bu veri anlamlandırma yollarından ikisidir. Geliştirilen “izlenebilir- lik raporu” uygulaması, yeni bir veri anlamlandırma yöntemi olarak değerlendirilebilir. Bu anlamda, Uygulama Yaşam Döngüsü Yönetimi içinde zamanında ve doğru kararlar vererek proaktif çözümler üretebilmeye önemli katkılar sağlanmaktadır. Geliştirilen uygulamanın, mevcut ücretli ve ücretsiz uygulamalara göre sağladığı en önemli avantajlar, aynı TFS sorgusunda bile farklı amaçlara uygun olarak rapora farklı alanların çok kolay ve hızlı bir şekilde eklenebilmesi, uygulamanın açık kaynaklı ol- ması sayesinde farklı ihtiyaçlar doğrultusunda kolayca yeni özelliklerin eklenebilmesi gösterilebilir. Uygulama geliştirildiği tarihten bu yana pek çok projede rapor oluşturma amacıyla kullanılmıştır. Uzman bir personel tarafından rapor için gereken sorgu oluşturulduktan sonra, kullanıma hazır şablonlar ile izlenebilirlik raporunun son derece kısa sürede, özel 580 bir uzmanlığa sahip personele ihtiyaç duymadan ve kullanıcı kaynaklı hata riskini en aza indirecek şekilde alınabilmesi uygulamanın en büyük avantajlarıdır. Şekil 5. Rapor İçeriği Görüntüleme Ekranı Uygulamanın önümüzdeki versiyonlarında, tanımlı şablon sayısı artırılarak uygula- manın farklı proje ihtiyaçlarını karşılayarak daha da yaygınlaştırılması ve hazırlanan HTML raporun doğrudan MS Word çıktısına dönüştürülerek mevcut versiyonda ma- nüel olarak gereken yapılması biçimsel düzenlemelerin de ortadan kaldırılması ve rapor hazırlama sürecinin daha hızlı ve pratik hale getirilmesi amaçlanmaktadır. Kaynakça 1. CMMI® for Development, Version 1.3, November 2010 Technical. http://www.sei.cmu.edu/reports/10tr033.pdf 2. Implementation Guidance for ISO 9001:2008, Document: ISO/TC 176/SC. http://www.iso.org/iso/06_implementation_guidance.pdf 3. “NATO Quality Assurance Requirements for Design, Development and Production, AQAP 2110 (Edition 1, June 2003). http://www.difesa.it/SGD- DNA/Staff/DT/NAVARM/Documents/NormeAQAP/aqap2110e.pdf 4. Team Foundation Server | Visual Studio. https://www.visualstudio.com/tr-tr/products/tfs- overview-vs.aspx 5. Link work items to support traceability. https://msdn.microsoft.com/tr-tr/li- brary/dd293534(v=vs.120).aspx 6. Use the query editor to create managed queries. https://www.visualstudio.com/en- us/docs/work/track/using-queries 7. Connect Microsoft Excel or Microsoft Project to a team project. https://msdn.mi- crosoft.com/tr-tr/library/ms181675.aspx 8. Connect MS Word to TFS. http://www.modernrequirements.com/smartword4tfs/ 9. TraceAnalysis4TFS. http://www.modernrequirements.com/traceanalysis4tfs/ 10. Extending Team Foundation. https://msdn.microsoft.com/en-us/li- brary/bb130146(v=vs.110).aspx 581