<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Tester’s Corner</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/uppadhyayraj/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/uppadhyayraj/feed.xml</link>
    <description>In God we trust, Rest we Test!</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:28:56 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>3 Steps to Automate Your Functional Tests Using Visual Studio 2015</title>
      <link>https://docs.microsoft.com/archive/blogs/uppadhyayraj/3-steps-to-automate-your-functional-tests-using-visual-studio-2015</link>
      <pubDate>Sat, 10 Jun 2017 22:39:07 GMT</pubDate>
      <dc:creator><![CDATA[Raj Uppadhyay]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/uppadhyayraj/?p=46</guid>
      <description><![CDATA[I have created a Visual Studio 2015 project template for 3 steps to automation* (after meeting the...]]></description>
      <content:encoded><![CDATA[<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt">I have created a Visual Studio 2015 project template for 3 steps to automation* (after meeting the criteria). This template will help our testing team and DevOps teams for automating their functional tests and provide them flexibility to run the tests across different platforms and browsers with a simple config entry. This extension also provide capability to run the tests using Selenium or Coded UI.</p>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt"><span style="font-weight: bold">Supported Platforms</span>:</p>

<ul style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in" type="disc">
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">Windows (Mobiles devices and machines)</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt"><span style="font-family: Calibri;font-size: 11.0pt">Android (Mobile devices)</span></span>&nbsp;</li>
</ul>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt"><span style="font-weight: bold">Supported Browsers and Application</span>:</p>

<ul style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in" type="disc">
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">Chrome</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">Internet Explorer</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">UWP applications</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt"><span style="font-family: Calibri;font-size: 11.0pt">Android applications</span></span></li>
</ul>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt">Please note overall idea of this is to create and setup automation project one single install with structure and main components without taking our code from TFS, creating your own project and setting up configuration.</p>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt"><span style="font-weight: bold;text-decoration: underline">Pre-Requisites</span>:</p>

<ol style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in;font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal" type="1">
 	<li value="1" style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal">Download “Appium WebDriver” from </span><a href="https://download.microsoft.com/download/6/8/7/687DEE85-E907-4A95-8035-8BC969B9EA95/WindowsApplicationDriver.msi"><span style="font-family: Calibri;font-size: 11.0pt">here</span></a><span style="font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal"> and install it. From the installation folder run the WinDriver.exe)</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">Download my plug in from </span><a href="https://marketplace.visualstudio.com/items?itemName=RajUppadhyay.DevelopAutomatedUITests"><span style="font-family: Calibri;font-size: 11.0pt">Market place</span></a><span style="font-family: Calibri;font-size: 11.0pt"> and run it on your local machine.</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">Download + Install </span><a href="https://www.microsoft.com/en-us/download/details.aspx?id=13255"><span style="font-family: Calibri;font-size: 11.0pt">OLEDB</span></a><span style="font-family: Calibri;font-size: 11.0pt"> and </span><a href="https://www.microsoft.com/en-us/download/confirmation.aspx?id=23734"><span style="font-family: Calibri;font-size: 11.0pt">ACE</span></a><span style="font-family: Calibri;font-size: 11.0pt"> drivers for Excel.
</span></li>
</ol>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt"><span style="font-weight: bold;text-decoration: underline">Steps</span>:</p>

<ol style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in;font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal" type="1">
 	<li value="1" style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal">Restart Visual Studio 2015 IDE and go for creating new project. Search for Develop_Automated_Tests template and create a new project:
<img src="https://msdnshared.blob.core.windows.net/media/2017/06/Projectcreation-300x169.png" alt="" class="alignnone size-medium wp-image-65" width="300" height="169" />
</span></li>
</ol>
<ol style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in;font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal" type="1">
 	<li value="2" style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal">It will create a full project setup for you. Now open the App.config file and update following entry (TestCaseFolderFullPath) to point to your project directory (which you can get by right clicking your project name and select “Open Folder in File Explorer” option:
<img src="https://msdnshared.blob.core.windows.net/media/2017/06/ConfigChange-300x169.png" alt="" class="alignnone size-medium wp-image-56" width="300" height="169" />
</span></li>
</ol>
<ol style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in;font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal" type="1">
 	<li value="3" style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal">Now build the project and resolve if there is any error. Open Test Explorer window and run any sample test as listed above, you should be able to run it. This project will have following tests and you should be able to run the tests after following these 3 steps:</span></li>
</ol>
<ul style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in" type="disc">
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">WebTestforDesktop</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">WebTestforDesktopHeadless</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">VerifyUWPCalculatorAddFunctionality</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">For other tests we have to configure full setup for Android with Emulator (Please click </span><a href="https://blogs.msdn.microsoft.com/uppadhyayraj/2017/06/10/producing-functional-test-automation-using-visual-studio-2015/"><span style="font-family: Calibri;font-size: 11.0pt">here </span></a><span style="font-family: Calibri;font-size: 11.0pt"><span style="font-family: Calibri;font-size: 11.0pt">for full setup, if you want to run test for Mobile Apps)</span></span></li>
</ul>
<p style="margin: 0in;font-family: Calibri;font-size: 11.0pt"><span style="font-weight: bold;text-decoration: underline">Request you all to share</span>:</p>

<ol style="margin-left: .375in;direction: ltr;margin-top: 0in;margin-bottom: 0in;font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal" type="1">
 	<li value="1" style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt;font-weight: normal;font-style: normal">Your experience and inputs/feedback to make it better.</span></li>
 	<li style="margin-top: 0;margin-bottom: 0;vertical-align: middle"><span style="font-family: Calibri;font-size: 11.0pt">If you face any compilation issues which are something solution need the fix, please highlight it.</span></li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>Producing Functional Test Automation Using Visual Studio 2015</title>
      <link>https://docs.microsoft.com/archive/blogs/uppadhyayraj/producing-functional-test-automation-using-visual-studio-2015</link>
      <pubDate>Sat, 10 Jun 2017 21:50:23 GMT</pubDate>
      <dc:creator><![CDATA[Raj Uppadhyay]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/uppadhyayraj/?p=45</guid>
      <description><![CDATA[Introduction:
This post will provide you a single source for producing your test automation for...]]></description>
      <content:encoded><![CDATA[<div>

<strong>Introduction</strong><span>:
</span>This post will provide you a single source for producing your test automation for your Web Application, your UWP Apps and Mobile Apps on Android by just writing 2-3 reusable lines of code. It also provides the capability of executing the tests on different platforms e.g. Windows machine, mobile devices (Windows and Android).

</div>
<div>

<strong>Targeted Audience</strong><span>:
</span>QA team members and DevOps team members who wanted to generate their automated tests for their regression suites and Continuous Integration in their Application life cycle.

</div>
<div>
<div>

<strong>Pre-Requites</strong><span>:</span>

</div>
<div>

<span><span style="text-decoration: underline">For TFS support</span>:</span>

</div>
<ul type="circle">
 	<li><span style="font-family: 'calibri'">Download Team Explorer 2013 <a href="https://www.microsoft.com/en-in/download/details.aspx?id=40776">https://www.microsoft.com/en-in/download/details.aspx?id=40776</a></span></li>
</ul>
</div>
<div>

<span><span style="text-decoration: underline">Install Excel Providers on the machines</span>:</span>

</div>
<ul type="circle">
 	<li><span style="font-family: 'calibri'">OLEDB Setup on Test Agents and Controller: </span><a href="https://www.microsoft.com/en-us/download/details.aspx?id=13255">https://www.microsoft.com/en-us/download/details.aspx?id=13255</a></li>
</ul>
<ul type="circle">
 	<li><span style="font-family: 'calibri'">Ace Driver setup on Test Agents and Controller: </span><a href="https://www.microsoft.com/en-us/download/confirmation.aspx?id=23734">https://www.microsoft.com/en-us/download/confirmation.aspx?id=23734</a></li>
</ul>
<div>

<span><strong>Running UWP Tests</strong>:</span>

</div>
<ul type="circle">
 	<li><span style="font-family: 'calibri'">Download the WinDriver for appium </span><a href="https://download.microsoft.com/download/6/8/7/687DEE85-E907-4A95-8035-8BC969B9EA95/WindowsApplicationDriver.msi"><span style="font-family: 'calibri'">https://download.microsoft.com/download/6/8/7/687DEE85-E907-4A95-8035-8BC969B9EA95/WindowsApplicationDriver.msi</span></a><span style="font-family: 'calibri'">
</span></li>
</ul>
<div>

<strong>Appium Test Running on real devices and Emulator</strong>

</div>
<div>

<span style="text-decoration: underline">Pre Requisites</span><span>:</span>

</div>
<ul type="circle">
 	<li><span style="font-family: 'segoe ui'">Install Visual Studio SDK.</span></li>
 	<li><span style="font-family: 'segoe ui'">Download Appium from </span><a href="https://appium.io/"><span style="font-family: 'segoe ui'">https://appium.io/</span></a></li>
 	<li><span style="font-family: 'segoe ui'">Java SDK from </span><a href="https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html"><span style="font-family: 'segoe ui'">https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html</span></a><span style="font-family: 'segoe ui'"> or any latest version.</span></li>
 	<li><span style="font-family: 'segoe ui'">Android SDK </span><a href="https://developer.android.com/sdk/installing/index.html"><span style="font-family: 'segoe ui'">https://developer.android.com/sdk/installing/index.html</span></a></li>
 	<li><span style="font-family: 'segoe ui'">Install Node JS from </span><a href="https://nodejs.org/en/download/"><span style="font-family: 'segoe ui'">https://nodejs.org/en/download/</span></a></li>
 	<li><span style="color: #000000;font-family: 'calibri'">For UWP app testing, Download and install the WinDriver for appium </span><a href="https://download.microsoft.com/download/6/8/7/687DEE85-E907-4A95-8035-8BC969B9EA95/WindowsApplicationDriver.msi"><span style="font-family: 'calibri'">https://download.microsoft.com/download/6/8/7/687DEE85-E907-4A95-8035-8BC969B9EA95/WindowsApplicationDriver.msi</span></a></li>
 	<li><span style="color: #000000;font-family: 'calibri'">Developer mode is on Windows machine and Devices/Emulator(s).</span></li>
</ul>
<div>

<span><span style="text-decoration: underline">Configure the environment variables in your machine</span>:</span>

</div>
<ul type="circle">
 	<li><span style="font-family: 'segoe ui'">JAVA_HOME: </span><span style="font-family: 'segoe ui'">Pointing to the Java SDK folder\bin</span></li>
 	<li><span style="font-family: 'segoe ui'">ANDROID_HOME</span><span style="font-family: 'segoe ui'">: Pointing to the Android SDK Folder.</span></li>
 	<li><span style="font-family: 'segoe ui'">Add the following paths in the Path variable: %JAVA_HOME%, %ANDROID_HOME%, %ANDROID_HOME%\tools\, %ANDROID_HOME%\platform-tools\, %JAVA_HOME%\bin\</span></li>
 	<li><span style="font-family: 'segoe ui'">Visual Studio Android Emulator: </span><a href="https://www.visualstudio.com/en-us/features/msft-android-emulator-vs.aspx"><span style="font-family: 'segoe ui'">https://www.visualstudio.com/en-us/features/msft-android-emulator-vs.aspx</span></a></li>
 	<li><span style="font-family: 'segoe ui'">Hyper V is enabled (only for running test on Emulator)</span></li>
</ul>
<div>

<span><strong>Developing Automated Tests in Visual Studio</strong>:</span>

</div>
<ol type="1">
 	<li value="1"><span>First download the </span><span><a href="https://marketplace.visualstudio.com/items?itemName=RajUppadhyay.DevelopAutomatedUITests">Develop Automated UI Tests</a></span><span> extension from Visual Studio Gallery and install it.</span></li>
 	<li><span>After that go for creating a new Project in Visual Studio and select the Template "Develop UI Test Automation", provide a desired name to project and click on "Ok" button to create the project.</span></li>
 	<li><span>Expends the Solution Explorer, it will show the structure as given below:</span></li>
 	<li><span>It has some sample test included in the project. Expend the TestCases Folder to view the test cases, here the format for test cases is in the form of Excel file. This format is very handy business users to write their scenario which we can later convert into automated tests. Following is a typical structure of test case file, it has predefined list of Keywords, Objects are the user defined names to identify the objects, Value field contains the value to be enter on UI or to be validated on UI and Last IncludedInTestRun field specified if particular test steps need to be executed or not while running the tests:
</span>
<p class="separator"><a href="https://4.bp.blogspot.com/-3ZVca11DXy8/WP8J-k9Wu5I/AAAAAAAADNw/1ULU5r2XJmQ76i9LDZm-wkNHXwaUCDf8wCLcB/s1600/ExcelTC.png"><img src="https://4.bp.blogspot.com/-3ZVca11DXy8/WP8J-k9Wu5I/AAAAAAAADNw/1ULU5r2XJmQ76i9LDZm-wkNHXwaUCDf8wCLcB/s640/ExcelTC.png" width="640" height="283" border="0" /></a></p>
</li>
</ol>
<ol type="1">
 	<li value="6"><span>This framework stores the Objects definition in a resource file associated with the project i.e. Objects.resx file. This file has definition(s) for objects in the test case file given above by having property value of test objects for application under test. E.g. for above Objects following details of objects stored: </span>
<p class="separator"><a href="https://1.bp.blogspot.com/-dDAP7vFLqdY/WP8KE9C4_aI/AAAAAAAADOM/V_1IL1S9jq0QTHfjpq649SR1TP78Tg2XgCEw/s1600/ResourceFile.png"><img src="https://1.bp.blogspot.com/-dDAP7vFLqdY/WP8KE9C4_aI/AAAAAAAADOM/V_1IL1S9jq0QTHfjpq649SR1TP78Tg2XgCEw/s640/ResourceFile.png" class="" width="606" height="216" border="0" /></a></p>
</li>
</ol>
<ol type="1">
 	<li value="8"><span>Once we are done with updating the Objects.resx file and creating the Test Case excel file, save the file under Test cases (or under a Subfolder) folder in the solution.</span></li>
 	<li><span>Add a new unit test case class file or update existing unit test case file, create a new test method and copy paste following lines and make changes as illustrated below:</span>
<p class="separator"><a href="https://2.bp.blogspot.com/-l94INMppSXw/WP8KGLj_OmI/AAAAAAAADOM/4RrtTNDdArMhHJ9Sq3v3NnlfLXSzggEiACEw/s1600/TestMethod.png"><img src="https://2.bp.blogspot.com/-l94INMppSXw/WP8KGLj_OmI/AAAAAAAADOM/4RrtTNDdArMhHJ9Sq3v3NnlfLXSzggEiACEw/s640/TestMethod.png" width="640" height="248" border="0" /></a></p>
</li>
</ol>
<ol type="1">
 	<li value="11"><span>Update App.config file:
Make sure to update the highlighted keys according to your system:</span>
<p class="separator"><a href="https://1.bp.blogspot.com/-x0xvhmMIWZQ/WP8KEz2ZjGI/AAAAAAAADOM/D9qZ7-I6K_oBhYrQgy9kvWxVWh9fY5hxQCEw/s1600/AppConfig_1.png"><img src="https://1.bp.blogspot.com/-x0xvhmMIWZQ/WP8KEz2ZjGI/AAAAAAAADOM/D9qZ7-I6K_oBhYrQgy9kvWxVWh9fY5hxQCEw/s640/AppConfig_1.png" width="640" height="276" border="0" /></a></p>
</li>
</ol>
<ol type="1">
 	<li value="13"><span>Update the Key TestCaseFolderFullPath to point to correct path:</span>
<p class="separator"><a href="https://3.bp.blogspot.com/-Cx-VlSbnyiM/WP8KEhJo4sI/AAAAAAAADOM/yNN54MZorME2HOnzPs48Q1a8sRqfXXsbQCEw/s1600/AppConfig_2.png"><img src="https://3.bp.blogspot.com/-Cx-VlSbnyiM/WP8KEhJo4sI/AAAAAAAADOM/yNN54MZorME2HOnzPs48Q1a8sRqfXXsbQCEw/s640/AppConfig_2.png" width="640" height="168" border="0" /></a></p>
</li>
</ol>
<ol type="1">
 	<li value="15"><span>Run the tests and view the results, it provides proper results e.g. following output from a failed test case:</span>
<p class="separator"><a href="https://4.bp.blogspot.com/--saKFpPMBjk/WP8KF2l16NI/AAAAAAAADOM/nk_KPLH3wHsZ9Mz95jzpz5WTBUH0X54kACEw/s1600/Results_pass.png"><img src="https://4.bp.blogspot.com/--saKFpPMBjk/WP8KF2l16NI/AAAAAAAADOM/nk_KPLH3wHsZ9Mz95jzpz5WTBUH0X54kACEw/s640/Results_pass.png" width="640" height="500" border="0" /></a></p>
</li>
</ol>
<div></div>
<div>

Result for a passed test case:

</div>
<p class="separator"><a href="https://2.bp.blogspot.com/-VRwGJFnjEyE/WP8KF4QWdKI/AAAAAAAADOM/6-HGhHqqiZsiLk2lzjBKql0iTVUJXbBjgCEw/s1600/Results_Failed.png"><img src="https://2.bp.blogspot.com/-VRwGJFnjEyE/WP8KF4QWdKI/AAAAAAAADOM/6-HGhHqqiZsiLk2lzjBKql0iTVUJXbBjgCEw/s640/Results_Failed.png" width="640" height="268" border="0" /></a></p>

<div></div>
<div>

<strong>Keyword(s) Details</strong><span>:</span>

</div>
<div>
<table title="" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td>
<div>

<strong>Keyword</strong>

</div></td>
<td>
<div>

<strong>Description</strong>

</div></td>
</tr>
<tr>
<td>
<div>

Entertext

</div></td>
<td>
<div>

Used to provide the user values to a text box or an edit box.

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

+

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

It also contains the conditions for Username &amp; password.

</div></td>
</tr>
<tr>
<td>
<div>

clickbutton

</div></td>
<td>
<div>

Used to perform a click operation on buttons or similar controls.

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Ex: Clicking a Login button in login page

</div></td>
</tr>
<tr>
<td>
<div>

setpage

</div></td>
<td>
<div>

Used to set the page when there is change in pages during consecutive navigations. This will ensure for the easy identification of objects for the next action

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

+

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Navigate to a page

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

<span>+</span>

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Set the current page with or without title

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div></div></td>
</tr>
<tr>
<td>
<div>

clicklink

</div></td>
<td>
<div>

Used to perform a click operation on links or similar controls

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Ex: Clicking on a Select link after filtering the respective role

</div></td>
</tr>
<tr>
<td>
<div>

opendropdown

</div></td>
<td>
<div>

Used to perform an action of opening a drop down item

</div></td>
</tr>
<tr>
<td>
<div>

selectdropdownitem

</div></td>
<td>
<div>

Used to perform an action of selecting a drop down item

</div></td>
</tr>
<tr>
<td>
<div>

verifydropdownitem

</div></td>
<td>
<div>

Used to compare the drop down items for a specific search criteria in application against to the data retrieved from database for the same search criteria

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Ex: The Grade options retrieved for a specific School and School Year

</div></td>
</tr>
<tr>
<td>
<div>

openmenu

</div></td>
<td>
<div>

Used to perform an action on Menu items like Admin, Support etc. for providing more options for consecutive actions

</div></td>
</tr>
<tr>
<td>
<div>

verifylabel

</div></td>
<td>
<div>

Used to validate the content of a label

</div></td>
</tr>
<tr>
<td>
<div>

waitforprocess

</div></td>
<td>
<div>

Used to make the script wait for different conditions like : Wait for control ready

</div></td>
</tr>
<tr>
<td>
<div>

validategrid

</div></td>
<td>
<div>

Used to compare the Grid results in application against to the data retrieved from database

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Ex: Student Contact Information, Student category information

</div></td>
</tr>
<tr>
<td>
<div>

clickitem

</div></td>
<td>
<div>

Used to perform click operation on div or similar controls

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Ex: Clicking on Section Editor div

</div></td>
</tr>
<tr>
<td>
<div>

dismisswindowpopup

</div></td>
<td>
<div>

Used to dismiss the popup window

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Ex: Clicking on “OK” or “Cancel” button

</div></td>
</tr>
<tr>
<td>
<div>

verifymessageonpopupwindow

</div></td>
<td>
<div>

Used to validate the message on popup window

</div></td>
</tr>
<tr>
<td>
<div>

verifyproperty

</div></td>
<td>
<div>

Used to validate the existence of any control

</div></td>
</tr>
<tr>
<td>
<div>

setfocus

</div></td>
<td>
<div>

Used to set the focus on control before performing any action

</div></td>
</tr>
<tr>
<td>
<div></div></td>
<td>
<div>

Ex: Setting focus on the button before clicking it

</div></td>
</tr>
<tr>
<td>
<div>

DragAndDrop

</div></td>
<td>
<div>

Used to perform drag and drop a control(with value as optional) from source location into target container

</div></td>
</tr>
<tr>
<td>
<div>

DoubleClick

</div></td>
<td>
<div>

Used for double-clicking a control

</div></td>
</tr>
</tbody>
</table>
</div>
<div></div>
<div>

 <strong>Tools used for getting the properties used for find objects and running tests</strong><span>:</span>

</div>
<ol type="a">
 	<li value="1"><span>For UWP app, we have to use Inspect.exe for finding the objects properties. It comes by default on Windows 8 or later and typical location for this is Program Files(x86)\Windows Kit\8.0\bin\ and then type of your system i.e. x64 or x86.</span></li>
 	<li><span>For Android we can use the UIAutomatorViewer tool, which come bundled with Android SDK, once you setup the Pre requisites, you can access it just by opening up command prompt and typing uiautomatorviewer.</span></li>
 	<li><span>For normal web based application in Device or on desktop we can use Dev toolbar in browsers (by pressing the F12 key) to find the objects.</span></li>
</ol>
<div>

<strong>Troubleshooting</strong>:

</div>
<ul type="disc">
 	<li><span style="font-family: 'segoe ui'">If</span><span style="color: #000000;font-family: 'calibri'"> getting the error on running test in Chrome then download the latest version of Chrome driver 2.28 from Google's site and copy it to following folder in Appium: \node_modules\appium\node_modules\appium-chromedriver\chromedriver\win</span></li>
 	<li><span style="color: #000000;font-family: 'calibri'">UIAutomatorViewer for getting native app's controls. Make sure devices name in Appium and Code are same and devices should have Debugging Mode enabled.</span></li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Testing and Digital Transformation</title>
      <link>https://docs.microsoft.com/archive/blogs/uppadhyayraj/testing-and-digital-transformation</link>
      <pubDate>Sat, 10 Jun 2017 21:41:43 GMT</pubDate>
      <dc:creator><![CDATA[Raj Uppadhyay]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/uppadhyayraj/?p=35</guid>
      <description><![CDATA[Digital Transformation Scenario
As the world moves on from relying on paper to cloud storage,...]]></description>
      <content:encoded><![CDATA[<h1>Digital Transformation Scenario</h1>
As the world moves on from relying on paper to cloud storage, physical stores to online store, from physically connection to becoming wireless because of constant changes in technology and competition, businesses are eventually forced to undergo a digital transformation to stay relevant in a dynamic marketplace. Any organization is going to consume a lot of time and resources whilst undergoing a transformation, but the sacrifices made are absolutely crucial to secure customer retention in the long run.

We are living in the “Era of SMACT” and our lives are highly impacted by <strong>S</strong>ocial, <strong>M</strong>obile, <strong>A</strong>nalytics, <strong>C</strong>loud and the Internet of <strong>T</strong>hings. Every business is around these five basic technologies. Customers are changing their behavior in response and companies are keen to find out how they need to transform to survive this change. Many companies, irrespective of the industry, are facing the same challenges – how to stay on top of these new technologies and how to respond to the changing needs of the customers.

Organizations are radically altering their business processes and operating models. They do this to assure superior Customer Experience. They realize that to achieve this, large-scale transformation programs are necessary. At present, organizations are investing a lot of money in implementing such Digital Transformation programs.<strong><u>
</u></strong>
<h1>Is it a good idea to invest in testing during Digital Transformation?</h1>
Currently we are living an Era of Digital world and Organization are investing significantly in transforming their business/processes in the Digital world. Now, the question arises: At the end of the day, do these Digital Transformation programs lead to the expected results? In fact, to realize the desired outcomes, it’s very important find a way to detect the issues that cause unexpected results, as early as possible, in the Life-Cycle and in the Transformation journey. Quality Assurance and Testing is the answer to predict and decide the actual outcome of a Digital Transformation.

&nbsp;
<h2>Key Challenges in Digital Transformation and How testing provide a solution:</h2>
Every change brings associated inherited challenges which makes hard for successfully adopt the change and for be successful organization/one must find a way to overcome those challenges. Similarly, Digital Transformation also come with some key challenges. Following is the list of key challenges which organization faces while transforming their business along with facts that why should organization invest in a Quality Assurance:

&nbsp;
<h2>Digital is Complex:</h2>
The most difficult challenge comes from the complexities arising from the nexus of forces – Social-Mobile-Analytics-Cloud, to ensure that they work in synchronization with organizational goals. Adapting to new and latest technologies demands higher process maturity. In this scenario, Quality Assurance becomes an important function for organizations who are effectively embracing the digital transformation and they help here by come up with best processes, tools and techniques to test the complexity of the system.
<h2>Digital makes an organization vulnerable to Security Threats:</h2>
Security is of paramount importance specifically in an interconnected world. The smart interconnected ecosystems on one side enable an unimaginable world of possibilities, but it makes the entire system highly vulnerable to security threats, if not properly configured and tested, on the flip side. Testing team proactively test the vulnerability, security gap in the system at very early stage hence helping teams to address these issues simultaneously.

&nbsp;
<h2>Digital needs to leverage your Legacy Infrastructure:</h2>
This is again next important challenge specifically with those enterprises who are not born Digital. They need to change their organizational DNA both from a cultural perspective and from legacy IT infrastructure standpoint. Testing ensures their core functionalities are not impacted as they chart their path towards Digital Infrastructure can be much challenging.
<h2>Digital can make or break your Customer Experience:</h2>
Delivering enhanced customer experience while leveraging a variety of components of Digital Ecosystem becomes challenging. Ensuring each component delivers optimum performance leading to customer delight becomes difficult as an organization becomes more digitally matured. Changes in customer behavior, elevated global competition, adoption of social media channels and emerging trends such as cloud and mobile are a few market driven challenges that organizations must deal with during their digital transformation journey. Quality Assurance/ Testing plays a crucial role in responding to these challenges. It’s essential for organizations that are dealing with digital transformation to have an appropriate digital assurance strategy, with the right tools, methodologies and measures to assure customer experience.

&nbsp;
<h2>Digital demands Agility:</h2>
In Digital Transformation world, applications are expected to be delivered quicker than ever. None has the time to wait for the long-term release cycles. It is regarded as the thrusting force for agile and DevOps based delivery processes. Being Agile through continuous quality assurance initiatives, and automating processes to ensure shorter delivery cycles become highly critical in a highly dynamic digital landscape.

&nbsp;
<h2>Getting a true state of Development:</h2>
Inherited aspect of Testing is, its Test Report. Test Reporting provide a good way to help stake holder to provide the actual health of the system by providing a test reporting, which covers following aspects and help them to proactively make key decisions:

&nbsp;
<ul>
 	<li>Quality of the product/component(s).</li>
 	<li>Provide a holistic view of performance</li>
 	<li>Assess - Vulnerability, reliability and availability.</li>
 	<li>Bottlenecks in the system.</li>
 	<li>Trends across different components in the system.</li>
</ul>
<h1>Conclusion:</h1>
Quality Assurance &amp; Testing is crucial and plays a critical role in any digital transformation journey. It’s essential for organizations that are dealing with a digital transformation to have an appropriate digital assurance strategy by identifying the right tools, methodologies and measures to assure customer experience and make the organization future ready.]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Test Automation using CSOM (Client Side Object Model)</title>
      <link>https://docs.microsoft.com/archive/blogs/uppadhyayraj/sharepoint-testautomation-usingcsom</link>
      <pubDate>Mon, 22 May 2017 08:50:36 GMT</pubDate>
      <dc:creator><![CDATA[Raj Uppadhyay]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/uppadhyayraj/?p=1</guid>
      <description><![CDATA[Abstract:

Testing of SharePoint applications including unit testing is one of the popular topic...]]></description>
      <content:encoded><![CDATA[<strong>Abstract:</strong>

Testing of <a href="https://social.technet.microsoft.com/Forums/en-US/sharepointgeneral/thread/ef4e0d4b-031e-467a-8397-a62a8df9b99f">SharePoint applications</a> including unit testing is one of the popular topic of debates. This puts more onus on the QA/Test teams to test SharePoint applications even more extensively. You can of course automate SharePoint’s GUI using <a href="https://msdn.microsoft.com/en-us/library/dd286726.aspx">Visual Studio Coded UI tests</a>, which has an excellent support for SharePoint. Automating SharePoint’s GUI is not very different from automating any other web application, where user actions and interactions are recorded and played back. This is a good approach for functional testing or black box testing but we are really not focusing on SharePoint related components in this case. In this article, we would like to propose an alternative approach that can be much more effective when you are specifically interested in testing SharePoint components without over relying on end-to-end GUI testing, which can be fragile due to high maintenance effort and generally happens too late in the game. APIs based automation is also much faster than running GUI based automation tests

The suggested approach is to leverage <a href="https://msdn.microsoft.com/en-us/library/ee857094(v=office.14).aspx">SharePoint Client Side Object Model (CSOM) API’s</a> and our <a href="https://visualstudiogallery.msdn.microsoft.com/91531e59-8fcf-44bd-9c83-0a3bc297a668"><strong>CSOM add-in</strong></a> published on Visual Studio Gallery to help improve SharePoint test coverage. The add-in supports SharePoint 2010, SharePoint 2013 and Microsoft SharePoint Online. The advantage of using approach is that this code doesn’t need to run on SharePoint server and it is executed from any client machine, provided the user has the required permissions on the SharePoint site under test. This approach would help the development and test teams in improving the quality of code and minimize SharePoint related deployment and configurations issues, which are major pain points today. This can also be very handy in validating content and features in SharePoint upgrade and migration scenarios. Testers can write test-cases even no application is available, if proper design document is available then that can be refer.

We will provide a walk-through of this approach and how QA/Test teams can use or extend it to automate their SharePoint test scenarios.
<ul>
 	<li>You can directly write your automated test by writing managed code to interact with SharePoint CSOM API’s but or leverage our <a href="https://visualstudiogallery.msdn.microsoft.com/91531e59-8fcf-44bd-9c83-0a3bc297a668">CSOM add-in</a> that consists of common libraries that are built on top of SharePoint CSOM API’s to accelerate SharePoint automated testing. These helper methods address generic SharePoint test requirements, which we have derived from our learning of executing SharePoint test engagements, with the intent to verify various properties and attributes of SharePoint objects.</li>
 	<li></li>
 	<li>You will also learn the other benefits of using SharePoint CSOM APIs for test activities like test data generation, build verification testing and deployment testing</li>
 	<li></li>
</ul>
<strong>Pre-Requisites</strong>

It is assumed that the audience will have basic knowledge of following tools and concepts for using this approach
<ul>
 	<li>Visual Studio 2012/2013/2015, C#.Net, Unit Tests</li>
 	<li>SharePoint 2010/2013/2016/SharePoint Online</li>
</ul>
<strong>Overview of SharePoint test requirements </strong>
<ul>
 	<li>List items/Schema Validations like column its type and other properties of lists.</li>
 	<li>Library items/Schema Validations like column its type and other properties of library.</li>
 	<li>Site columns and its properties like its type, is it required filed or not, validation, default values etc.</li>
 	<li>Content types and its columns validation.</li>
 	<li>User groups, users and permission validations.</li>
 	<li>Site hierarchy, Web parts and Pages validations.</li>
 	<li>Test data generation for SharePoint objects like List, Libraries etc.</li>
</ul>
<strong> </strong>

<strong>Using SharePoint CSOM’s Visual Studio Add-in to test SharePoint applications:</strong>
<ul>
 	<li>Download our <a href="https://visualstudiogallery.msdn.microsoft.com/91531e59-8fcf-44bd-9c83-0a3bc297a668">CSOM Add-in </a>o<em>r Go to Visual Studio IDE  -&gt; Tools -&gt; Extension and search for </em>“SharePoint Test Automation” Create a Test Project in Visual Studio 2010/2013</li>
 	<li>Add reference to all DLLs downloaded from the add-in to the test project.</li>
 	<li>Add Name Space for SharePoint Client API and Test Automation Framework</li>
 	<li>using System; using System.Text; using System.Collections.Generic; using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; //Name Space for SharePoint Client API using Microsoft.SharePoint.Client; //Name Space for Framework using Test.Automation.SharePointCOM.Verification;</li>
 	<li>Use the framework classes and initialize the SharePoint Application Under test: //Adding Reference to the class which have verification method</li>
</ul>
SPVerification verifySite;

String TestSite, Domain, UserName, Password;

&nbsp;

&nbsp;

//Function for setting up the SharePoint Site under Test

[TestInitialize]

public void SetUp()

{

TestSite = "https://SharePointWebApp/sites/SiteCollection/TestSite";

Domain = "MyDomain";

UserName = "SiteAdmin";

Password = "Password";

verifySite = new SPVerification();

//Setting the SharePoint Site Under Test Assert.IsTrue(verifySite.SetSiteUnderTest(TestSite, UserName, Password, Domain, testContextInstance));

}

&nbsp;
<ul>
 	<li>Add a test method in the unit test file to validate a list on a SharePoint Point site (In the framework each method return a true or false which should be used with asserts to check the pass or fail status of a test) /*Test Method to Verify the Expected list on a SharePoint Site mentioned in the SetUp (In test initialization method)*/ [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "C:\\TestData\\TestSite\\SP-Lists.csv", "SP-Lists#csv", DataAccessMethod.Sequential), TestMethod]</li>
</ul>
public void VerifySPLists()

{

string ListName = testContextInstance.DataRow[0].ToString();

Assert.IsTrue(verifySite.VerifyLibraryExists(ListName, testContextInstance));

}
<ul>
 	<li>Run the test</li>
 	<li>Analyze the result (Framework uses the Test Context to log the results, which is useful to log the bugs and understand where the issue is):</li>
</ul>
[caption id="attachment_25" align="alignnone" width="624"]<img width="624" height="355" class="wp-image-25 size-full" alt="Execution Results" src="https://msdnshared.blob.core.windows.net/media/2017/05/SharePointCSOMResult.png" /> Execution Results[/caption]]]></content:encoded>
    </item>
  </channel>
</rss>