بررسی و آموزش جزئیات Team Foundation Server 2018 final release

به تازگی و پس از برگزاری کنفرانس Connect(); 2017 توسط شرکت مایکروسافت محصولات جدید این شرکت و به روز رسانی های محصولات قبلی ارائه شد. که در اینجا و مقالات اینده به بررسی این به روزرسانی ها خواهیم پرداخت.

برای مشاهده ویدیوها و جزئیات این کنفرانس می تونید به لینک Connect(); ۲۰۱۷ برید.

یکی از خبرهای مهم ارائه Microsoft team foundation server 2018 بود، در این مقاله جزئیات کامل این به روز رسانی رو با هم بررسی می کنیم.

نسخه کامل ISO TFS 2018 رو می تونید از لینک زیر دانلود کنید.

TFS 2018 Download

همچنین لینک دانلود سایر نسخه ها به شرح زیر هستند.

لیست کلی این به روز رسانی ها به شرح زیر می باشند:

مواردی که به نسخه TFS 2018 اضافه شدند شامل موارد زیر هستند:

  • We have improved the Project Creation Wizard and Process Template Manager on the web.
  • You can now customize the work item form header.
  • We optimized the mobile work item form.
  • We added support for Git forks.
  • You can manage massive Git repositories with GVFS.
  • You can view, filter, delete, and set the security of Git tags.
  • We added file minimap, bracket matching, and toggle white space to web code editing.
  • We made many improvements to pull requests.
  • You have a new improved Wiki experience.
  • We’ve added support for Maven packages.
  • You can import and export, and pause build definitions.
  • The new Release Definition Editor has opt-in by default.
  • You can deploy with VM deployments.
  • We improved exploratory testing traceability.
  • We added test batching.
  • You can now view a chart widget for test plans and test suites.

مواردی که در نسخه Team Foundation Server 2018 حذف شدن:

  • We removed support for XAML Builds.
  • Support for Lab Center and automated testing flows in Microsoft Test Manager has been removed.
  • We discontinued TFS Extension for SharePoint.
  • We removed the Team Room feature.

جزئیات موارد اضافه شده:

Project Creation Wizard on the web

Project Creation Wizard on the web

یکی از مواردی که به دلیل علاقه تیم مایکروسافت به استفاده از پنل تحت وب نسبت به قبل بهبود یافته است و به روز رسانی شده قسمت ایجاد پروژه های جدید در پنل تحت وب TFS ‌می باشد، اگر قبلا در محیط  Visual studio این کار رو انجام می دادید حتما میدونید که باید نسخه ویژال استدیو شما با TFS همخوانی می داشت در غیر اینصورت نمی تونستید تیم پروژه رو ایجاد کنید،. البته ایجاد تیم پروژه از طریق وب باعث میشه که گزارشات مرتبط پیش فرض در SSRS تولید نشه که می تونید با دستور tfsconfig اینکار رو انجام بدید. جزئیات بیشتر.

Process Template Manager on the web

از TFS 2018 به بعد شما این امکان رو دارید که برای آپلود Process Template ها از پنل تحت وب استفاده کنید ( پروسس تمپلیت مجموعه ایی از فایل های xml و غیره است که قالب فرآیند اسکرام یا Agile شما رو تعریف می کنه و با تغییر اونها می تونید فرآیند موجود رو بسته به نیاز شرکت و سازمان خودتون خصوصی سازی کنید ). قبل از این حتما باید Visual studio با نسخه هماهنگ با TFS استفاده می کردید. از ویژال استدیو ۲۰۱۷ update 5 به بعد این امکان وجود نداره و لینک موجود شما رو به صفحه وب TFS منتقل می کنه.

Customize the work item form header

این مورد به بخش بالایی خاکستری رنگ فرم مدیریت Work item ها اشاره می کنه که معمولا شامل Area, Iteration, State, Reason میشه و تا حالا غیر قابل تغییر بود، ولی از نسخه ۲۰۱۸ امکان تغییر این قسمت به غیر از گزینه( State که غیر قابل جابجایی، مخفی کردن و تغییره.) وجود خواهد داشت.

برای اطلاعات بیشتر به سند جزئیات WebLayout and Control elements مراجعه کنید.

Mobile work item form

بالاخره تغییر فرم های ورک آیتم ها به شکلی که به راحتی از طریق موبایل قابل مشاهده باشند ارائه شد.

Figure 1- Mobile work item query

همه ی ورک ایتم هایی که

  • به شما Assign شده،
  • شما اونها رو دنبال می کنید
  • فعالیت های شما رو نمایش میده

در این بخش فرم ها طوری تغییر شکل داده شدن تا به راحتی از طریق موبایل و صفحات کوچک نمایش قابل استفاده باشند.

Figure 2 – Mobile work item form

البته این شروعی برای ارائه این تجربه در تمام بخش های TFS هست و سایر زیر سیستم ها هم در آینده از این امکان پشتیبانی می کنن. سایر بخش ها از طریق Mobile Navigation قابل مشاهده و دسترسی هستن.

Figure 3 – Mobile navigation

Filtering on backlogs, Kanban boards, sprints, and queries

یکی از مشکلاتی که تیم ها با اون برخورد می کردن عدم امکان فیلترینگ مناسب روی جزئیات WorkItem ها در فرم ها بود:

مثلا اسپرینت بک لاگ شما شامل ورک ایتم های زیادی هست و شما نیاز دارید که هنگام مشاهده انها را فیلتر کنید، خوشبختانه این به تمام فرمهایی که وظیفه نمایش و کنترل WorkItem ها رو دارن (WorkItem Tracking grid Experience ) اضافه شده که شامل queries, backlogs, Kanban boards, sprints backlogs, and test case management میشه. امکان فیلتر کردن بر اساس Keyword درتمام فیلدهای قابل نمایش، تگها، نوع workItem، وضعیت و Assigned To وجود داره.

Figure 4 – Filtering on queries

Expand to show empty fields on a Kanban card

تا قبل از این امکان مشاهده فیلدهای دلخواه در برد کانبان وجود نداشت، یعنی اگر فیلدی از مشخصات آن ورک آیتم خالی بود دیگر نمایش داده نمیشد و برای بروز رسانی باید حتما آن ورک ایتم را باز کرده و از آنجا تغییرات را اعمال کنید.

Figure 5 – Hidden field on Kanban card

این مشکل در TFS 2018 بر طرف شد و با کلیک روی دکمه رو به پایین میشه فیلدهای خالی رو مشاهده کرد و مقدار مورد نظر رو به اونها اختصاص داد.

Figure 6 – Update hidden field on Kanban card

Extensions block work item save

از این به بعد می توان روی گروه ها، کنترل ها و یا فرم هایی خصوصی سازی شده اعتبار سنجی انجام داد و در صورت وجود هرگونه مشکل و یا خطا work item  مورد نظر ذخیره نشود.

Inline add on Delivery Plans

در مقاله ایی که قبلا با عنوان آموزش کامل امکانات جدید TFS 2017 update 2 نوشته بودم به به افزودن امکان جدیدی به نام delivery plan اشاره کردم، در اون زمان این امکان به صورت یک Extention از طریق Visual Studio Marketplace قابل نصب بود ولی به دلیل کاربردی بودن این اکستنشن تیم مایکروسافت این افزونه رو به TFS 2018 اضافه کرد. کار این افزونه ارائه یک دید از بالا یا همون Big Picture از وضعیت تیم ها و کارهای در حال انجامه ( مثل releae plan ). علاوه بر حضور همیشگی این افزونه در TFS در این نسخه علاوه بر مشاهده اطلاعات امکاناتی از جمله افزودن work item جدید به آن اضافه شده است. ( قبل از این، این صفحه امکان ثبت ورک آیتم جدید رو نداشت و فقط وظیفه نمایش اطلاعات رو داشت ).

Figure 7 – Inline add on delivery plans

Version Control

Forks

TFS 2018 پشتیبانی از Fork رو ارائه کرده، Fork یک کپی سمت سرور از Repository شماست، با استفاده از این روش شما میتونید به افراد مختلف اجازه مشارکت در توسعه بدید  بدون اینکه امکان مشاهده و اعمال تغییر در کد اصلی داشته باشند بدید. در واقع فورک Repository که به Repository  والد وابسته است و در نهایت تغییرات اعمال شده در اون با Pull Request به برنچی از Repository اصلی منتقل میشه.

Figure 8 – Git forks

GVFS

GVFS  به Repository هایی که حجم زیادی دارند کمک می کنه تا به راحتی قابل Clone کردن و استفاده باشن، حجم سورس لینوکس زیر ۱ گیگابایت هست، حجم کد VSTS و TFS 3 گیگابایت، حجم کد ویندوز نزدیک به ۲۵۰ گیگابایت، با توجه به مهاجرت تیم مایکروسافت به ساختار ۱ES ( One engineering System ) و استفاده از Git این تیم با مشکلات عدیده ایی در استفاده کردن از ریپوترهای با حجم بالا مواجه شد مثلا یک clone سورس ویندوز روی شبکه فوق سریع مایکروسافت بیشتر از ۱۲ ساعت طول می کشید. اطلاعات بیشتر.

Create a folder in a repository using web

تا حالا امکان اضافه کردن فولدر در پنل تحت وب TFS بدون استفاده از extension وجود نداشت، ولی در نسخه جدید TFS این امکان اضافه شده، شاید به نظر خیلی ساده بیاد ولی همین موضوع جزئیات زیادی داشته. برای اضافه کردن یک فولدر از منوی موجود در سمت راست گزینه New و سپس Folder رو انتخاب کنید.

Figure 9 – New folder option

گرچه این موضوع در TFVC و Git دارای تفاوت هایی هست،در Git امکان درج فولدری که فایلی در اون وجود نداره نیست، در نتیجه اگر فولدری ایجاد میشه باید در اون حداقل یک فایل وجود داشته باشه، همین مساله باعث تفاوت ایجاد فولدر در این دو محیط شده. در گیت شما با استفاده از اسلش ها می تونید ساختار فولدرهای مورد نظر خودتون رو بسازید.

Figure 10 – New file dialog

File minimap

این امکان در ادیتور تحت وب اضافه شده و به شما یک دید کلی از فایل میده، برای فعال شدن این گزینه از Command Pallete ( F1 or Right-Click ) گزینه Toggle Minimap رو انتخاب کنید.

Figure 11 – File minimap

Bracket matching

وقتی فایلی رو مشاهده یا تغییر می دید، حالا خطوط راهنمایی در سمت چپ هستند که ارتباط براکت ها رو به شما نشون میدن.

Figure 12 – Bracket matching

Toggle white space

امکان مشاهده نقاطی که اسپیس خوردن در زمان مشاهده و یا تغییر فایل ممکن شده، برای تغییر وضعیت می تونید از Command Palette (F1 or Right-Click) گزینه Toggle white space رو انتخاب کنید. در نمایش این بخش Tab از white space قابل تشخیص هست.

Figure 13 – Toggle white space

Setting to turn off web editing for TFVC repos

بعضی اوقات به دلایلی مثلا زمانی که لازمه برای اعمال تغییرات code review ثبت بشه نیازه که امکان تغییر فایلها از طریق پنل وب TFS غیر فعال بشه، برای اعمال این تغییر نیازه به بخش تنظیمات TFS برید، سپس به بخش Version Control و روی گزینه ایی که به تازگی اضافه شده به نام  Options کلیک کنید و گزینه Enable web-editing for this TFVC repository رو غیر فعال کنید.

Figure 14 – Turn off web editing

و اگر کاربری قصد تغییر فایلی رو داشته باشه با پیغام زیر مواجه میشه.

Figure 15 – Web editing not allowed dialog

Identify stale branches

تشخیص اینکه کدوم برنچ قدیمیه و نیازه که حذف بشه همیشه کار سختی بوده، اگر هم قرار نیست حذف بشه حداقل نیازه تعیین تکلیف بشه، تا قبل از این هر کسی بر اساس راهکار خودش اینکار رو انجام میداد بعضی اوقات با کنترل دستی تمام برنچ ها و بعضی اوقات هم با یک اسکریپت. در نسخه ۲۰۱۸ TFS این امکان اضافه شده که برنچ هایی که بیشتر از ۳ ماه کسی روی اونها کدی ننوشته به عنوان Stale یا بیات شده مشخص بشن و در تبی با همین نام قابل مشاهده هستن.

Figure 16 – Stale branches

Search for a deleted branch and re-create it

تا حالا اگر برنچی اشتباها پاک می شد فهمیدن اینکه دقیقا چه اتفاقی افتاده کار سختی بود، حالا شما میتونید با جستجوی برنچ پاک شده تاریخ حذف و اینکه چه شخصی اون رو حذف کرده متوجه بشید و در صورت نیاز مجددا ایجادش کنید.

برای جستجوی برنچ حذف شده در تب Branches در کادر جستجو اسم کامل برنچ رو درج کنید و دکمه سرچ رو کلیک کنید تا لیست برنچ ها رو به شما نمایش بده.

Figure 17 – Search for deleted branches

اگر برنچی پیدا شد می تونید اون رو Restore کنید.

Figure 18 – Restore deleted branches

Richer pull request callout on commit details page

هر Commit بسته به ساختار برنچ های پروژه ممکنه در یک و یا چند Pull Request ظاهر بشه، در TFS 2018 صفحه ایی که جزئیات کامیت رو نشون میده از این به بعد تمام پول رکوئست های مرتبط رو نمایش میده تا روندی که کامیت طی کرده راحت تر قابل مشاهده باشه.

Figure 20 – Pull request callout

Filter tree view in Code

در ویژال استدیو یکی از امکاناتی که وجود داره اینه که می تونید Shelve, Check-In, Commit رو باز کنید و با استفاده از گزینه فیلتر فقط فایل های مورد نظرتون رو ببینید. تا قبل از این در پنل تحت وب امکان انجام چنین فیلتری وجود نداشت. از این پس TreeView موجود در صفحات Commit، Pull Request، Shelveset Detail و Changeset Detail از امکان فیلتر کردن اطلاعات برخوردار شدن. این فیلتر هوشمنده و اگر بر اساس اسم فولدر جستجو کنید فایل های درون فولدر رو نشون میده و اگر بر اساس نام فایل جستجو کنید لیست فایل های مرتبط رو نشون میده.

Figure 21 – Find a file or folder

Figure 22 – Filtered view on commit tree

Branch updates page is now Pushes

در نسخه TFS 2018 لیست Commit ها و Push ها به صورت جداگانه در دو تب اصلی نمایش داده میشن، قبل از این هر دوی این موارد در تب History قابل مشاهده بودن و push ها با نام Branch Updates شناخته می شدن.

Figure 23 – Pushes page

Figure 24 – Commits page

View Git tags

در تب tags امکان مشاهده تمام تگ ها وجود داره، اگر از تگها به عنوان پابلیش های صورت گرفته استفاده می کنید، با یک نگاه به این صفحه تمام پابلیش های صورت گرفته قابل مشاهده خواهند بود.

Figure 25 – View Git tags

Delete Git tags

اگر تگ ایجاد شده بر اساس اطلاعات اشتباه ایجاد شده مثل Commit اشتباه، شما میتونید به راحتی با کلیک روی …  و انتخاب گزینه Delete Tag اون رو حذف کنید.

Figure 26 – Delete Git tags

Filtering Git tags

Repository های قدیمی ممکنه تعداد تگهای زیادی داشته باشن، در نتیجه پیدا کردن تگ مورد نظر شما ممکنه سخت باشه، برای پیدا کردن تگ مورد نظر می تونید از گزینه جستجوی موجود در این صفحه استفاده کنید.

Figure 27 – Filter Git tags

Git tags security

این بخش اجازه کنترل دسترسی های بخش تگ رو فراهم می کنه، شما می تونید به کاربران اجازه حذف تگ ها و یا مدیریت اونها رو بدید.

Figure 28 – Git tag security

اطلاعات بیشتر.

Automatically complete work items when completing pull requests

یکی از مشکلاتی که همیشه بهش بر می خوریم به روز کردن وضعیت Work Item ها بعد از Pull Request هاست. طبیعتا اگر پول رکوئست با موافقت رو برو شده تمام work item های مرتبط با commit ها باید به وضعیت done یا تکمیل شده منتقل بشن. حالا در صفحه تکمیل PR این امکان فراهم شده که با انتخاب یک چک باکس Complete linked work items after merging تمام ورک آیتم های مرتبط به وضعیت تکمیل شده منتقل بشن.

Figure 29 – Complete linked work items

Reset votes on push/new iteration

هر زمان که برنچی که pull request بر اساس اون شکل گرفته به روز رسانی بشه ( کدی جدیدی در برنچ Push بشه ) ، تمام رای هایی که توسط reviewer ها داده شده حذف شده و تمام افراد دعوت شده به پول رکوئست نیازدارن که مجددا نظر خودشون رو اعلام کنن.

Figure 30 – Reset votes setting

More pull request comments filtering options

امکان فیلتر روی کامنت هایی که در پول رکوئست ارائه شده بیشتر از قبل شده و می تونید فقط کامنت هایی رو ببینید که شما در اونها شرکت داشتید.

Figure 34 – PR comment filtering

View original diff for code comments in pull request details

بعضی اوقات سردرآوردن از یک PR کار سختیه، چون کدی که کامنت های بررسی کننده ها بر اساس اونه تغییر کرده، ایجاد تغییر در کدها برای نهایی کردن و به نتیجه رسیدن PR خیلی طبیعیه.

Figure 35 – View original diff

در نسخه ۲۰۱۸ TFS این امکان اضافه شده که کدهای قبلی رو ببینید، در چنین مواقعی در بالای صفحه یک دکمه یا Badge با شماره آپدیت اضافه میشه، اگر روی اون کلیک کنید کد رو در زمانی که کامنت نوشته شده نشون میده.

Figure 36 – Update badge

Collapsible pull request comments

Review کردن کدها جزء اصلی ترین بخش های یک PR به حساب میاد، به همین دلیل سعی شده کار ریویو کننده ها ساده تر بشه، به همین دلیل امکان حذف تمام کامنتها اضافه شده تا به این فرآیند سرعت بیشتری داده بشه.( حذف کامنت هایی که توسط سایر Review کننده ها اضافه شده و نمایش کدها )

Figure 37 – Hide comments

گزینه Hide Comments کامنت ها رو از tree view حذف کرده و اونها رو به حالت Collapse میبره.

Figure 38 – Collapsed comments

اگر روی کامنت سمت چپ کلیک کنید جزئیات کامنت نمایش داده میشه و با کلیک دیگه مجددا مخفی میشه.

Figure 39 Collapsed comment tooltip

Task lists in pull request descriptions and comments

زمانی که در حال آماده سازی PR هستید ممکنه برخی موارد باشن که نیازباشه به صورت چک لیست بررسی بشن، اضافه کردن این موارد به صورت متن شاید نتونه خیلی کمک کنه، به همین علت با استفاده از ادیتور موجود می تونید برخی موارد رو به عنوان چک باس معرفی کنید تا در فرآیند PR این گزینه ها رو انتخاب کنید و از انجام لیست کارها مطمئن بشید.

Figure 40 Task list toolbar

این اطلاعات درون خود متن با استفاده از استاندارد MarkDown Files مشخص میشن.

Figure 41 – Task list

Ability to “Like” comments in pull requests

امکان لایک کردن نظر دیگران در کامنت های PR اضافه شده که در واقع به معنای تایید اون نظره.

Figure 42 – Like pull request comments

Improved workflow when approving with suggestions

در نسخه های قبلی امکان Auto-Complete به PR اضافه شده بود، ولی این امکان بعضا باعث از دست رفتن بعضی جزئیات می شد برای همین دیالوگی اضافه شده تا در صورت تایید نهایی به صورت خودکار PR تکمیل بشه.

Figure 43 – Cancel auto-complete dialog

Path filtering support for Git notifications

بخش Notification وظیفه ارسال ایمیل و اطلاع رسانی خودکار داره، از این به بعد این امکان فراهم شده که اگر نوتیفیکیشنی در این بخش تعیین بشه  میتونه بر اساس فولدر خاصی از repo گیت فعال بشه. ( اگر فایل های اون فولدر خاص تغییر کردند این notification  عمل کنه )

Figure 44 – Path filtering for notifications

Updated email templates for pull request workflows

ایمیل هایی که بر اساس PR ارسال می شدن در TFS 2018 به روز رسانی شدن تا خلاصه، مفید و عملیاتی تر باشن. عنوان اصلی ایمیل همون عنوان PR تنظیم شده و اطلاعات ثانویه ایی مثل نام Repo در زیر اون قرار گرفته.

Figure 45 – Improved email template

فعالیت اصلی که اغلب ایمیل های PR در اختیار شما قرار می دن باز کردن PR هست ولی اگر  لازم باشه در کامنت خاصی مشارکت کنید ایمیل ارسال شده حاوی لینکی به PR میشه که مستقیما شما رو به صفحه جزئیات کامنت مربوطه هدایت می کنه.

Figure 46 – Email call-to-action

Updated email templates for push notifications

ایمیل های Push Notification ها هم کلا به روز رسانی شدن، تا مفید، خلاصه و عملیاتی باشن. عنوان ایمیل کمک می کنه که سریعا موضوع اصلی notification رو متوجه بشید و تمام اطلاعات اصلی دیگه مثل اینکه چه چیزی باعث ارسال این ایمیل شده در زیر عنوان ارائه شدن. این اطلاعات حتی کمک می کنن ارسال Notification رو مناسب تر تنظیم کنید. این قالب جدید برای استفاده در موبایل هم بهینه سازی شده.

Figure 47 – Push template

Wiki

بالاخره یکی از ویژگی هایی که واقعا کمبودش در TFS احساس میشد ارائه شد و اون چیزی نیست جز ویکی مرتبط با پروژه، گرچه این امکان ابتدا در یک extension ارائه شد و بعد به نرم افزار اصلی ارائه منتقل شد. این بخش راه زیادی تا ۱۰۰% شدن داره ولی برای شروع عالیه و امکانات زیادی رو در اختیار تیم ها قرار میده که اینجا به جزئیاتش اشاره می کنم.

هر پروژه میتونه ویکی خودش رو داشته باشه، و این ویکی با مجموعه اطلاعات خودش به اعضای تیم در فهمیدن، استفاده و مشارکت در پروژه کمک می کنه.

Figure 48 – PR Wiki page

بعضی از امکانات اصلی ارائه شده در این wiki به شرح زیر می باشد:

  • استفاده از ساختار استاندارد markdown Syntax جهت ساده سازی اعمال تغییرات ( Markdown Syntax یک استاندارد با ابعاد مشخصه )
  • هر صفحه در ویکی شامل یک عنوان و متن اصلی صفحه میشه.

Figure 49 – PR Title Wiki

  • پشتیبانی از تگ های HTML در Markdown

Figure 50 – PR Wiki HTML tags

  • تغییر راحت ابعاد تصویر

Figure 51 – PR Image resize

  • مدیریت صفحات به شکل مناسب از طریق Page management Pane مثل تغییر ترتیب صفحات، تغییر والد صفحات.
  • امکان فیلتر کردن صفحات بر اساس عنوان صفحه

Figure 52 – PR Wiki menu

  • امکان به روز رسانی Offline ویکی

برای مشاهده جزئیات بیشتر به getting started with Wiki مراجعه کنید.

با توجه به اینکه ویکی اساسا به شکل یک Git repo خصوصی طراحی شده، تمام امکانات ورژن کنترل گیت درباره تک تک صفحات ویکی شما صدق می کنه، یعنی هر صفحه ایجاد شده به عنوان یک فایل به ویکی اضافه میشه و تمام نسخه ها و revision های اون موجود و قابل مشاهده و مقایسه است.

Figure 53 – PR Wiki revert button

Create a Wiki page from a broken link

اگر لینکی در ویکی شما وجود داشته باشه که در اون آدرس صفحه ایی تعریف نشده باشه، ویکی به شما کمک می کنه تا خیلی سریع یک صفحه با همون آدرس بسازید.

Figure 54 – PR Create Wiki page

Wiki page deep linking

ویکی در نسخه ایی که به TFS 2018 ارائه شده امکان deep linking رو درون و بین صفحات ایجاد کرده، که در ایجاد table of content خیلی مفید واقع میشه. مثال های زیر رفرنس به درون صفحه و صفحات دیگه رو نشون میدن.

  • Same page: [text to display](#section-name)
  • Another page: [text to display](/page-name#section-name)

اگر از کاربران قبلی extention ویکی هستید لازمه که بعد از مهاجرت به TFS 2018 و انتقال اطلاعات قبلی این extension رو حذف کنید.

 

Removing support for XAML Builds

مایکروسافت در TFS 2015 نسخه جدید Build System تحت وب رو ارائه کرد. تا حالا هر دو نسخه پشتیبانی شدن ولی همونطور که مایکروسافت قبلا اعلام کرده بود نسخه قدیمیتر XAML Build در TFS 2018 پشتیبانی نخواهد شد. اگر تیمی هنوز بیلدهای قدیمی خودش رو به روز نکرده نباید به نسخه ۲۰۱۸ مهاجرت کنه.

  • اگر هرگونه دیتایی در XAML Build ها داشته باشید TFS به شما درباره حذف اطلاعاتتون هشدار میده.
  • می تونید Xaml بیلد های قدیمی و اطلاعات مرتبط با اجرای اونها رو ببینید ولی نمیتونید بیلدی رو اجرا کنید.
  • Agent مرتبط با بیلد Xaml ها در TFS 2018 وجود نداره و نسخه های قدیمی هم قابل اتصال به این نسخه نیستند.

Export and import build definitions

تعریف و نگهداری Build ها در TFS به شکل فایل های .json هست و به همین دلیل شما می تونید در تب history ورژن های مختلف رو با هم مقایسه کنید. تا حالا امکان clone گرفتن از build ها وجود داشت ولی با توجه به درخواست زیاد کاربرها برای امکان export و import این امکان به بخش بیلد هم اضافه شده. در واقع مشکل از اونجایی شروع میشه که اگر شما بیشتر از یک تیم پروژه داشته باشید باید برای هر تیم پروژه Build و release ها رو مجددا تعریف کنید.

Figure 63 – Export build definition

که اینکار استفاده کردن از تیم پروژه ها رو زیر سوال میبره! البته هنوز هم کمبود در این زمینه هست، چون شما سیستم build و release خودتون رو بر اساس library ها می سازید و در حال حاضر library ها امکان export و import ندارن. من با تیم TFS صحبت کردم و این مورد فعلا جز اولویت های اونها نیست باید دید این درخواست چقدر رای میاره تا در اولویت های بالاتر قرار بگیره، من که فکر می کنم رای بیاره.

Figure 64 – Import build definition

Extensions with build templates

Build Template ها پایه ایی ترین بخش سیستم بیلد هستن که مایکروسافت انواع متفاوتی از اونها رو به صورت پیش فرض در TFS تعریف کرده و البته شما هم میتونید بسته به نیاز خودتون تمپلیت رو تعریف و به tfs اضافه کنید. تا حالا امکان اینکه یک extension به همراه خودش build template داشته باشه و اونها رو بعد از نصب به tfs اضافه کنه وجود نداشت، این امکان در TFS 2018 اضافه شده.

Deprecate a task in an extension

با توجه به تغییر و بهبود کلی سیستم های build و release در بخش ورژن دهی به تسک ها ( هر تسک ممکنه چندین ورژن داشته باشه که طبیعتا آخرین ورژن به روز ترین و کامل ترینه ) و کنترل ورژن هایی که قراره به زودی حذف بشن ( deprecate )، این امکان به extention ها هم اضافه شده و حالا می تونید تعیین کنید که کدوم تسک موجود در اکستنشن deprecate میشه.

وقتی کاربر به دنبال task شما می گرده، اون رو زیر بخش deprecated tasks ( که به صورت پیش فرض collapse هست ) می بینه.

Figure 65 – Deprecated task badge

شما میتونید با کمک بخش توضیحات تسک به کاربر کمک کنید تا نسخه مناسب تسک رو انتخاب کنه.

Figure 66 – Deprecated task description

Variable group support

Variable Group ها قبلا به بخش release اضافه شده بودن و وظیفه گروه بندی متغیرهای استفاده شده در تعریف release رو بر عهده دارن ( خیلی کاربردی هستن و باعث خلاصه تر شدن تعریف release میشن، من که از روز اولی که به سیستم tfs اضافه شدن ازشون استفاده کردم )، با توجه به درخواست زیاد کاربرها برای اضافه شدن این بخش به تعریف build حالا در نسخه ۲۰۱۸ این اتفاق افتاد ولی همونطور که قبلا گفتم حالا باید برای این بخش هم امکان import و export اضافه بشه. اطلاعات بیشتر در این زمینه

Work with secure files such as Apple certificates

یکی از مشکلاتی که بعضا کاربرها با اون برخورد می کردن ( من خودم هم در تنظیم Git repo دوستان توسعه دهنده اندروید و فایل های امضای اصلی پروژه اندروید با این مشکل برخورد کردم ) اینه که بعضی فایل ها رو نمیشه در ورژن کنترل قرار داد، چرا؟ چون ورژن کنترلی مثل Git امکان اینو نداره که دسترسی مشاهده یک فایل خاص رو از کاربر بگیره و دسترسی ها شامل read و contributor میشه ( با ساختاری که git داره این موضوع طبیعیه چون سیستم مجتمع نیست و توزیع شده است Distributed version Control )، خب پس فایل های اصلی رو که کسی هم قرار نیست ببینه رو باید چیکار کنیم؟ من که مجبور بودم اگر هم فایل اشتباها اضافه شده تمام repo رو حذف کنم ( چون به هر حال history وجود داره! ). حالا این مشکل با Secure files library بر طرف شده.

Figure 67 – Secure files library

می تونید از این کتابخونه برای نگهداری signing certificates و Apple Provisioning Profiles و Android Keystore files و SSH keys استفاده کنید بدون اینکه لازم باشه اونها رو در ورژن کنترل ذخیره کنید. محتویات این فایل ها encrypt میشه و میتونید از اونها در فرآیندهای build و  release استفاده کنید.

همچنین دو تسک apple جدید اضافه شدن که از این امکان استفاده می کنن.

Pause build definitions

از این به بعد شما امکان متوقف کردن و یا غیر فعال کردن یک build رو دارید! واقعا این دو مورد کاربردی هستن. Pause امکان اینو میده که اگر درخواستی برای یک queue جدید از build اومد ( درخواست اجرای build ) این درخواست دریافت بشه و در صف قرار بگیره تا زمانی که build از حالت pause خارج شد این درخواست ها به ترتیب اجرا شن ( در گذشته وقتی شما در حال به روز کردن Agent ها یا یکسری تغییرات دیگه بودید درخواست بیلد دریافت و بعد از آن fail میشد که باعث سردرگمی توسعه دهنده ها میشد و شما باید در تمام سیستم دنبال بیلد هایی می گشتید که در اون بازه اجرا شدن و fail شدن ). غیر فعال کردن یک build حتی اجازه ارسال درخواست بیلد رو هم از کاربر می گیره و معمولا برای مواقعی به کار میره که شما در حال اعمال تغییر در تعریف build هستید و تا قبل از اتمام کارتون کسی نباید درخواست build داشته باشه.

Task input validations support

ورود پارامترهای تسک build میتونه سخت و همراه خطا باشه، به همین دلیل امکان اضافه کردن input validation به تسک اضافه شده تا ایجاد کننده تسک از صحت اطلاعات وارد شده اطمینان بیشتری پیدا کنه. به صورت پیش فرض URl و IPV4 و email و number range و sha1 و length پشتیبانی میشن ولی می تونید هر تعریف دیگه ایی رو اضافه کنید.

اطلاعات بیشتر

New Release Definition Editor

تیم توسعه دهنده TFS در تلاشه تا استفاده کردن از این ابزار رو ساده تر و بهتر کنه، نتیجه یکی از تلاش های اونها تغییر کامل سیستم مدیریت کننده بخش release هست، تغییرات جدید که در ادامه بررسی میشن، ولی از مهمترین اونها نمایش بصری (visualize) ساختار و پروسه پابلیش محیط های شما، approve کننده های فرآیند و مشخصات هر environment و تنظیمات deployment هست.

Visualization of the pipeline

Pipeline در ادیتور جدید ساختار محیطهای شما و پروسه پابلیش رو به شکل گرافیکی به شما نمایش میده. Artifact ها توسط سیستم release مصرف میشن و به environment ها منتقل میشن. Layout و لینک های بین محیط ها نشون دهنده روند trigger شدن  اونهاست.

Figure 68 – Release pipeline

In context configuration UI

در طراحی جدید رابط کنترل کننده release بخش های Artifacts، release triggers، pre-deployment and post-deployment approvals، environment properties، deployment settings به راحتی قابل مشاهده و تنظیم هستند.

Figure 69 – Release configuration

Getting started with deployment templates

تمام Built-In Template های بخش release به امکانی به نام process parameters مجهز شدن که با نمایش پارامترهای اصلی template و امکان مدیریت اونها از یک بخش به شما برای کار کردن با تمپلیت مربوطه کمک می کنه.

Figure 70 – Deployment templates

Simplified management of release and environment variables

بخش مدیریت variable های release تغییرات خوبی داشته، این بخش واقعا نیاز به به روز رسانی داشت چون با پیچیده شدن تعاریف، تعداد متغیرها و environment ها به سرعت زیاد میشه و کنترل این دو مورد در کنار هم نیاز ایجاد تغییر در این بخش رو گریز ناپذیر می کرد. حالا علاوه بر امکان filter کردن متغیرها برای فرار از شلوغی، امکان نمایش در دو حالت list و Grid هم اضافه شده، در حالت Grid شما می تونید مقدار یک متغیر در محیط های مختلف رو در کنار هم ببینید ( هر محیط به صورت یک ستون مجزا نمایش داده میشه ).

Figure 71 – Simplified management of variables

Improved task and phase editor

در نسخه TFS 2017 Update 2 تیم مایکروسافت رابط کاربری Build بخش مدیریت Task ها رو برای استفاده راحت تر تغییر داد، حالا همین بهبود ها به بخش release هم منتقل شده.

Figure 72 – Task editor

Variable groups, Retention, and Options tabs

در نسخه TFS 2018 شما می تونید متغیر ها رو در گروه هایی به نام Variable Groups تعریف کنید و این تعریف ها رو به release متصل کنید، امکان تنظیم retention برای هر environment به شکل جداگانه وجود داره،می تونید تعریف یک Environment رو به شکل یک template ذخیره کنید، کنترل دسترسی ها حتی در سطح environment هم اضافه شده.

Figure 73 – Variable groups

در تصویر زیر ذخیره environment به شکل تمپلیت رو می بینید.

Figure 74 – Environment menu

مشاهده اطلاعات بیشتر.

VM Deployment using Deployment Groups

یکی امکانات جدید و بسیار کارآمد TFS 2018 امکان Deployment Group هست، release management با استفاده از این امکان از حالت Multi-Machine deployment پشتیبانی می کنه. حالا شما میتونید Deploy کردن و به روز رسانی سرورها رو به صورت همزمان رهبری کنید. Agent-base deployment با کمک همون agent هایی که وظیفه build  و release و UI Test رو بر عهده دارن انجام میشه، با این تفاوت که به جای وجود تعداد کمی agent که به صورت proxy عمل کرده و تغییرات رو به سایر ماشین ها منتقل می کنن، حالا این agent بر روی تمام سرورهای هدف شما نصب میشه و وظیفه Deploy رو به هر سرور منتقل می کنه.

Deployment Group مجموعه ایی منطقی از ماشین های هدف است که TFS Agent بر روی آنها نصب شده است. Deployment Group برابر Environment فیزیکی شماست، مثل Single Box Drive، Multi Machine QA و farm از ماشینها برای UAT/Prod.

Figure 75 – Deployment groups

بعد از ایجاد و تنظیم deployment Group شما به سادگی می تونید تعیین کنید که چه چیزی روی این گروه ها اجرا بشه. می تونید به واسطه تگ ها مشخص کنید که چه چیزی روی چه ماشین هایی و با چه سرعتی اجرا بشه.

Figure 76 – Configure deployment groups

وقتی Deployment اجرا میشه، لاگ پیشرفت کار رو به تفکیک سیستم های گروه به شما نشون میده.

Figure 77 – Deployment group progress

این بخش جزئی از TFS هست و نیازی به License جداگانه نیست.

Improved Deployment Groups UI

ظاهر بخش Deployment Group هم بهبود پیدا کرده، به محض باز کردن این صفحه می تونید وضعیت کامپیوترهای هدف رو ببینید و Permission های هر کدوم رو تنظیم کنید.

Figure 78 – Deployment groups UI

با کلیک روی هر Deployment Group می تونید جزئیات اون شامل Summary، آخرین Deploymentها و قابلیت های ماشین های هدف موجود در گروه رو مشاهده کنید. برای هر ماشین هدف میشه Tag  تعیین کرد و به واسطه تگ ها میشه اینکه چه چیزی روی چه ماشینی اجرا میشه رو کنترل کرد. برای راحتی بیشتر در پیدا کردن ماشین هدف از نسخه بعدی، امکان Filter کردن به این بخش اضافه میشه.

Figure 79 – Deployment groups UI tags

Task group references

Task Group ها در نسخه TFS 2017 update 2 معرفی شدن و امکان تعریف Task هایی جدید برای استفاده در سیستم های Build و release رو ارائه میدن ( مجموعه ایی از تسک ها که وظیفه مشخصی رو انجام میدن در یکجا تعریف میشن و استفاده از تسک ها رو ساده تر می کنن ). حالا امکان جدیدی به این بخش اضافه شده و اونهم امکان مشاهده لیست محل هایی هست که از Task Group استفاده شده.

Figure 80 – Task group references

Task group versioning

تا حالا تسک گروپ ها ورژن نداشتن، یعنی اگر می خواستید تغییری در تسک گروپ بدید و اونو تست کنید تمام سیستم های متصل به اون با شرایط تست شما اجرا میشدن، در نتیجه تغییر تسک گروپ ها کار سختی میشد. با توجه به این موضوع امکان ورژن دهی به این بخش اضافه شد، تا شما تغییرات خودتون رو اعمال کنید و در نهایت تسک مورد نظر رو به نسخه بالاتر منتقل کنید.

Figure 81 – Save task group as draft

اگر نسخه جدیدی از تسک گروه ایجاد شده باشه، TFS به شما پیغام لازم رو ارائه میده، اگر Preview باشه پیغام Try it Out و زمانی که از حالت Preview خارج شد سیستم تسک های موجود رو آپگرید می کنه.

Figure 82 – Publish task group as preview

Task group import and export

ایجاد کردن یک تسک گروپ در تیم پروژه های مختلف کاری تکراری و خسته کننده است، برای همین امکان export/import به TFS 2018 اضافه شد.

Figure 83 – Export task group

Variables Support in Manual Intervention task

یکی از تسک های موجود در TFS تسک Manual Intervention هست، این تسک فرآیند اجرای Build یا Release رو متوقف می کنه تا شرایطی که در تسک لحاظ شده ایجاد بشه، پیشتر در این تسک امکان استفاده از Variable ها وجود نداشت ولی از TFS 2018 به بعد می تونید از متغیر در این بخش استفاده کنید.

Figure 85 – Manual intervention task

Figure 86 – Manual intervention pending dialog

Control releases to an environment based on the source branch

یکی از امکانات release manager قابلیت تنظیم ایجاد اتوماتیک یک release در مواقع خاص مثل اتمام موفقیت آمیز یک build هست، ولی ممکنه شما نیاز داشته باشید این اتفاق فقط برای بیلد هایی که از یک برنچ خاص هستن بیفته. به عنوان مثال برای شما مهمه که تمام Build ها روی محیط های test و Dev دپلوی بشن ولی build های خاصی به محیط Production منتقل بشن. قبل از این شما باید دو release pipeline ایجاد می کردید ولی با این ویژگی جدید نیازی به اینکار نخواهد بود.

Figure 87 – Deployment conditions dialog

بعد از ایجاد release  در صفحه release summary علت وضعیت فعلی environment رو در یک popup به شما نشون میده.

Figure 88 – Release summary tip

Release Triggers for Git repositories as an artifact source

در نخسه TFS 2018 پشتیبانی از برنچ های گیت برای تریگر کردن شروع فرآیند release اضافه شده، قبلا فقط میتونستید Artifact رو مشخص کنید ولی حالا می تونید ببینید که این artifact بر اساس چه repo گیت  ایجاد شده و حتی برنچ مد نظر خودتون رو انتخاب کنید.

Figure 89 – Release triggers

Release Triggers: Continuous deployment for changes pushed to a Git repository

Release manager مایکروسافت همیشه امکان ایجاد ساختار Continuous Deployment رو به واسطه تکمیل یک build داشته، ولی بعضی از مواقع شما نیازی به تکمیل شدن یک build ندارید و نیاز دارید به محض Push فرآیند release شروع بشه، این امکان در نسخه TFS 2018 اضافه شده، به عنوان مثال کد node.js یا php نیاز به build شدن ندارن و خیلی سریع می تونن به محیط ها منتقل بشن.

Branch filters in environment triggers

نسخه های قبلی TFS فقط امکان اضافه کردن Artifact رو داشتن و کنترل بیشتری روی این آرتیفکت ها نداشتید، حتی در زمان تنظیم Trigger ها، حداکثر میشد مشخص کرد که اگر کدوم آرتیفک نسخه جدیدی ارائه بده سیستم شروع به ایجاد یک release جدید کنه. در نسخه TFS 2018 امکان مشخص کردن جزئیات برنچ برای تمام Artifact ها اضافه شده، در واقع مجموعه ایی از شرایط قابل تعریف هستن و اگر تمام اونها meet شدن release ایجاد میشه. ساختاری بسیار کاملتر برای سناریوهای پیچیده، خوبی روند تیم مایکروسافت اینه که با سناریوهای پیچیده برخورد می کنن و در نتیجه مجبور میشن برای خودشونم که شده راه حل ها رو ایجاد و به TFS اضافه کنن.

Figure 90 – Branch filters

Enhancements to server-side tasks

تیم TFS/VSTS دو امکان جالب به task های سمت سرور اضافه کردن ( این تسک ها قابل تعریف و اجرا در ServerPhase هستن یعنی کاری هستن که روی سروری که Aget مربوطه وجود داره اجرا میشن و تا حالا فقط تعداد معدودی تسک برای این بخش وجود داشته ). یکی از این دو مورد تسکی برای فراخوانی Generic HTTP REST API هست. TFS/VSTS بخش بزرگی از فرآیند های خودشون رو به شکل Rest Api ارائه میدن در نتیجه با اضافه شدن این تسک شما می تونید در مواقع لزوم و در فرآیند release دستور لازم رو به TFS/VSTS بدید.

Figure 91 – REST API task

ویژگی دوم اضافه شده بخش Control Option به تسک های سرور ساید هست. این ویژگی در تمام تسک های نرمال وجود داشت و داره.

Figure 92 – Task control options

Release status badge in Code hub

قبل از TFS 2018 شما اگر نیاز داشته باشید که بدونید کدی که نوشته شده الان در چه محیط هایی اعمال شده باید مجموعه کارهایی رو انجام می دادید، اول باید ببینید که چه Build هایی از commit شما استفاده کردن و بعد تمام release definition هایی که از اون build ها استفاده کردن رو چک کنید. در TFS 2018 این کار با مجتمع شدن Deployment Status در Code Hub بسیار ساده شده. در تب Commits به هر Commit یک دکمه جهت نمایش لیست محیط هایی که این کد در اونها اعمال شده اضافه شده.

Figure 93 – Release status badge

به صورت پیش فرض وقتی شما یک Environment می سازید اطلاعات وضعیت دپلویمنت برای تمام commit ها ارسال میشه، ولی شما امکان تغییر این شرایط رو دارید.

Figure 94 – Deployment options dialog

Enhancements to Build definition menu when adding artifacts

در فرآیند تعریف release زمانی که نیاز به اضافه کردن یک Artifact جدید دارید لیستی که به شما نمایش داده میشد بر اساس نام بود ( artifact ها خروجی build ها هستن و build امکان دسته بندی در folder های جداگانه رو دارن پس ممکنه build هایی با نام مشابه ولی در فولدرهای متفاوت وجود داشته باشن و بعلاوه اگر فولدر ها رو نبینیم پس اصلا چرا به واسطه فولدرها اونها رو دسته بندی کردیم؟ ) و مسیر واقعی build نمایش داده نمیشد ( Foldername\…\Build Name )، در TFS 2018 این مشکل بر طرف شده.

Figure 95 – Add artifact

و البته لیست نمایش داده شده بر اساس اطلاعات تایپ شده فیلتر میشه.

Revert your release definition to older version

چه در بخش build و چه در بخش release شما تاریخچه تمام تغییرات اعمال شده روی Definition بیلد و release رو دارید ولی امکان revert به نسخه خاصی از تاریخچه فقط در build وجود داشت که این مساله کار کردن با release رو یکم سخت می کرد. حالا امکان revert به release هم اضافه شده.

Figure 96 – Revert release definition

Personalized notifications for releases

سیستم Notification موجود در TFS مسیر طولانی رو طی کردن، TFS 2015 سطح محدودی از حالت ها رو پوشش میداد، یادمه درباره این موضوع با آقای بریان هری صحبت کردم و ایشون هم گفتن در حال حاضر برنامه ایی برای بهبود شرایط فعلیش نداریم ولی نسخه جدید بخش notification ها در حال طراحیه ( همون نسخه ایی که الان فعاله )، واقعا کاربردی و جامع شده ولی باز هم جای بهبود هست ( به هر حال هر امکان جدیدی که به TFS اضافه میشه این بخش هم باید به روز شه ). در TFS 2017 update 2 امکان ارسال خودکار نوتیفیکیشن در بعضی بخش ها اضافه شد، مثلا اگر کسی build رو بشکنه بدون اینکه آدمین TFS و یا خود شخص تنظیماتی انجام داده باشه ایمیل حاوی اطلاعات مربوطه برای شخص ارسال میشه، یا موارد مشابه در بخش release، این موارد قابل تنظیم نبودن، در نسخه ۲۰۱۸ این موارد قابلیت غیر فعال شدن دارن و سناریوهای پیچیده تر قابل ایجاد هستن ( کلا بخش release در notification ها وجود نداشت ).

Figure 97 – Release notifications

مشاهده اطلاعات بیشتر .

Testing

Removing support for Lab Center and automated testing flows in Microsoft Test Manager

با توجه به پیشرفت سیستم جدید build و release موجود در tfs و حذف پشتیبانی از XAML Build ها، TFS نیاز داشت تا ارتباط بین TFS و Microsoft test manager ( MTM ) رو به روز کنه، از TFS 2018 به بعد استفاده از Test Center/Lab Center در MTM برای اجرای خودکار تست ها پشتیبانی نمیشه، و اگر تیمی آماده مهاجرت از XAML Build نیست نباید به TFS 2018 مهاجرت کنه.

مهاجرت به نسخه ۲۰۱۸ باعث ۳ مورد زیر میشه

Lab Center

پشتیبانی نمیشه، اگر Test controller وجود داره از کار میفته و امکان اضافه کردن مورد جدید هم وجود نداره، راه حل جایگزین استفاده کردن از SCVMM TFS Extension هست، اطلاعات بیشتر در این بخش.

Automated Testing

فرآیند اجرای خودکار تست ها با استفاده از Test Controller  و Lab Environment مثل XAML Build-Deploy-Test یا اجرای تست های خودکار از طریق Test Plan با استفاده از MTM دیگه پشتیبانی نخواهند شد. راه حل جایگزین استفاده از بخش Build و release برای اجرای تست های خودکار و اجرای تست های خودکار با استفاده از test plan از بخش Test Hub هست.

 

Manual Testing

در این بخش هنوز محدودیتی برای MTM ایجاد نشده ولی استفاده از lab environment برای اجرای manual test غیر فعال شده و در آینده نزدیک استفاده از MTM برای manual test غیر فعال میشه. راه حل جایگزین استفاده از test hub برای انجام Manual test هست.

Exploratory testing traceability improvements for work item links, iterations, and area paths

بر اساس نتایجی که از تیم های استفاده کننده از روش exploratory testing به دست اومده تیم مایکروسافت بهبود هایی رو در ابزار test & FeedBack extension برای اتصال ساده تر test case، Bug و Task ایجاد کرده. عمده مشکل در بخش Area Path و Iteration وجود داشته و اینکه به صورت پیش فرض چه مقداری باید تعیین شه، اگر exploratory test بر اساس یک requirement بوده دو مقدار ذکر شده برابر با مقدار موجود در requirement خواهند بود، منطقی هم هست شما داشتید در area نیازمندی تست رو انجام می دادید پس هر مشکلی که پیدا بشه نیازه در همون area دسته بندی بشه. اگر test case توسط exploratory test ایجاد بشه ارتباط بین requirement و test case  به شکل Tests <-> Tested By خواهد بود نه Parent <-> Child. و در نهایت اگر مورد ایجاد شده توسط exploratory testing ارتباطی با requirement یا work item دیگه ایی نداشته باشه مقدار teams default iteration برای اون در نظر گرفته میشه نه Current iteration.

Filters for Test Case work items in Test Plans and Suites in Test Hub

برای کمک به سریعتر شدن فرآیند مدیریت test case ها امکان فیلتر کردن لیست ها بر اساس Title، State و Assigned to به test hub اضافه شده.

Figure 98 – Test case filters

Test trend charts for Release Environments and Test Runs

تیم tfs/vsts پشتیبانی از release environment ها رو به test result trend widget اضافه کرد تا وضعیت محیط تست رو در داشبورد TFS/vsts مشاهده کرد. همونطور که قبل از نسخه ۲۰۱۸ نتیجه تست های اجرا شده در بخش build مثل اینکه نرخ موفقیت آمیز بودن تست ها، تعداد کل، تست های موفق و نا موفق  مدت زمان تست را میتوانستیم در داشبورد ببینیم.

Figure 99 – Test trend chart

Markdown formatting support for Test Run and Test Result comments

در همین متن در بخش Wiki مقداری درباره Markdown Syntax صحبت کردم، این استاندارد به شما کمک میکنه که متن نوشته شده ساختار بهتری داشته باشه، قبل از نسخه ۲۰۱۸ متن های نوشته شده در بخش test run و test result قالب نداشت، ولی این امکان به واسطه حضور Markdown syntax فراهم شده.

Add link to existing bug for a failing test

امکان متصل کردن تست fail شده به bug که از قبل وجود داشته اضافه شد، به هر حال ممکنه fail شدن تست به علت bug باشه که قبلا گزارش شده.

Upload attachments to test runs and test results

این امکان به پنل تحت وب TFS که به نام Web Access شناخته میشه اضافه شده، قبلا برای انجام اینکار باید از MTM استفاده می شد.

Test batching

این ویژگی به Visual studio test task در هر دو بخش build و release اضافه شده، اینکه تست ها بر چه اساسی باید برای اجرا دسته بندی ( batch ) بشن. دو راه برای اینکار ارائه شده. راه اول مشخص کردن تعداد test های دسته به ازای agent هایی که اونها رو اجرا می کنن ( خیلی ساده مشخص میشه که هر گروه از چند تست تشکیل میشه )، راه دوم بر اساس زمان اجرای تست هاست، با محاسبه آخرین زمان هر تست TFS سعی می کنه به شکلی گروه ها رو تشکیل بده که در نهایت زمان اجرای گروه ها با هم برابر باشه.

Figure 100 – Test batching

Run webtests using the VSTest task

با استفاده از visual studio test task می تونید web performance test رو در پروسه CI/CD خودتون اجرا کنید، به دو روش می تونید برای اجرای وب تست ها استفاده کنید، استفاده از dll های حاوی تست و روش دوم مشخص کردن test plan مربوطه ( با بررسی test case دارای associated automation موجود در test plan انتخاب شده ).

Figure 101 – Test selection

نتایج web test به صورت ضمیمه شده به test result قابل دانلود و بررسی توسط visual studio هستن.

Figure 102 – Test summary

این قابلیت نیاز به Agent با نسخه TFS 2017 update 4 یا بالاتر داره و نسخه های قبلی امکان اجرای اون رو ندارن.

جزئیات بیشتر.

Chart widget for test plans and test suites

در نسخه های قبلی TFS شما می تونستید در test hub از تست پلن و تست سوئیت خودتون چارت بسازید و بعد اونها رو روی داشبود اصلی اضافه کنید. حالا این امکان به widget های داشبود اصلی اضافه شده، البته با مقداری قابلیت های اضافه و امکان کنترل ابعاد چارت.

Figure 103 – Chart widget

Discontinuing TFS Extension for SharePoint

TFS 2018 و نسخه های بعدی از ارتباط با Sharepoint پشتیبانی نخواهند کرد، و صفحه موجود در پنل ادمین TFS حذف شده. برای راهنمایی بیشتر در این زمینه و چگونگی قطع ارتباط بین این دو محل به لینک the future of our TFS/SharePoint Integration مراجعه کنید.

Discontinuing Team Rooms

تیم های توسعه نرم افزار نیاز به ابزاری جهت ارتباط دارن، قبلا team room به tfs اضافه شد تا این امکان رو فراهم کنه ولی با وجود ابزارهای کاملی مثل slack و Microsoft team تیم tfs/vsts تصمیم گرفت team room رو حذف کنه و از سایر ابزارها که کاملتر هستن استفاده کنه.

 

 

 

 

4 Comments

Add a Comment

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *