<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kornelia O'Doherty</title>
    <description>The latest articles on DEV Community by Kornelia O'Doherty (@dohertykornelia).</description>
    <link>https://dev.to/dohertykornelia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F100058%2F2ab2fb90-750d-4ce2-9e6d-d1a4b0a1b530.jpg</url>
      <title>DEV Community: Kornelia O'Doherty</title>
      <link>https://dev.to/dohertykornelia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dohertykornelia"/>
    <language>en</language>
    <item>
      <title>Career Overview of Software Automation Testers in 2019</title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Mon, 11 Feb 2019 10:33:53 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/career-overview-of-software-automation-testers-in-2019-1bm3</link>
      <guid>https://dev.to/dohertykornelia/career-overview-of-software-automation-testers-in-2019-1bm3</guid>
      <description>&lt;p&gt;In this article, I will show you why gaining test automation skills are needed for your quality assurance career if you want to remain marketable as a tester. I will tell you what technical skills and automation tools you need to learn about if you’re just getting started with test automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why 2019 is a great time to be an automation tester?
&lt;/h2&gt;

&lt;p&gt;For the past several years, QA and test analyst job ads have stressed the need for test automation skills. Four years ago, recruiters clearly advised testers to gain technical and test automation skills. Since then, the demand for test automation has continued to grow, and now some teams are completely eliminating manual testers and hiring only test professionals with test automation skills.&lt;/p&gt;

&lt;p&gt;Today, more and more components of the lifecycle are being automated and there is a focus on automating the entire lifecycle. Increased number of applications and new releases have also led to a rise in the importance of automation. According to the World Quality Report 2018-2019, test automation continued to be the most popular approach for generating and executing functional test cases. By the end of 2018,  18% of functional test cases were generated using test automation tools, and 16% were executed using test automation tools. Similarly, 16% of all security tests were executed using automation tools, and automation was also applied to the execution of the 16% of all performance test cases. Quite encouragingly, 15% of all end-to-end business scenarios were also being executed using test automation tools. &lt;/p&gt;

&lt;p&gt;Since test automation is one of the career fields experiencing the most growth in the world right now, it’s rare to see a job listing for a test role where there isn’t at least a demand for an understanding of test automation and at least one scripting language. At the time I’m writing this article, there are roughly 16,955 available jobs in Test Automation Engineering on Indeed, 30,705 jobs on Glassdoor, and 5,580 jobs posted on LinkedIn. These numbers indicate the high demand for this skill nowadays, and for that reason you shouldn’t worry much about the risk of career change. Keep in mind the fact that as an automation tester, you’ll always be needed and will find no lack of leading companies trying their hardest to recruit you, and there are constantly opportunities to grow in your career to reach a managerial level.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FcmDBrDXvtqKjiSgdugM8RZ49CiW-pWRl1xvQv1HXtGL9PCkVA0ueSwhV1hqWAYGIyfbzwYDfSfbf1mzZMP15b6km7Miy1fzzRQHBg0Vm1S5QNiSiygQmlzNwdFsuHA3EYpKXjifV" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh5.googleusercontent.com%2FcmDBrDXvtqKjiSgdugM8RZ49CiW-pWRl1xvQv1HXtGL9PCkVA0ueSwhV1hqWAYGIyfbzwYDfSfbf1mzZMP15b6km7Miy1fzzRQHBg0Vm1S5QNiSiygQmlzNwdFsuHA3EYpKXjifV" alt="test automation engineer salary and job postings"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Moreover, if you want a high growth and a high paying career, test automation engineering/ automation testing is also the way to go. According to the report, the global test automation market was valued at approximately USD 15.87 billion in 2016 and is expected to reach approximately USD 54.98 billion by 2022, growing at a CAGR of 23.01% between 2017 and 2022. The national average test automation engineer salary is $105,630 in the United States.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do you need to prepare for your automation testing career?
&lt;/h2&gt;

&lt;p&gt;To excel in this field, testers must be aware of automation tools and modern techniques that are being used in the testing industry. This doesn’t mean you’re being asked to be programmers, but it does require automation testers to have a programming background. Programming skills can help testers communicate better with developers and participate in unit testing. As automation tests are closely connected with code, the knowledge of the programming language that the team works with is one of the critical requirements for a tester. If the product is written in Ruby, then the tester needs to have Ruby experience on their resume. Besides definite programming languages such as Java, C/C++, Ruby, Python, Perl, some other required skills include knowing SQL and relational databases, experience with HTTP/HTTPS, HTML, CSS, JS, XML and testing APIs, knowing one of the frameworks (i.e., Cucumber for Ruby) is definitely an advantage.&lt;/p&gt;

&lt;p&gt;You can initiate your test automation path by referring some popular software testing blogs and forums like Utest, Software Testing Help, Stickyminds, Ministry of Testing, etc. These sites help educate and inspire teams of all types and sizes to test automation. &lt;/p&gt;

&lt;p&gt;As I mentioned, the more technical and test automation skills you have, the more marketable you’ll be as a tester. However, anyone who is serious about a career in testing would do well to pick up a powerful automation tool. Most available test automation tools in the market are developed with a programming mindset. Some of the most popular tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selenium&lt;/li&gt;
&lt;li&gt;Katalon Studio&lt;/li&gt;
&lt;li&gt;UFT&lt;/li&gt;
&lt;li&gt;TestComplete&lt;/li&gt;
&lt;li&gt;SoapUI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn more about the above-mentioned tools &lt;a href="https://medium.com/@briananderson2209/best-automation-testing-tools-for-2018-top-10-reviews-8a4a19f664d2" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Among these tools, I have found Katalon Studio to be the most user friendly automated software testing tool. You can easily automate web services and mobile testing and execute the scripts on your desired platform. The most interesting features is the spy utility, which captures the web and mobile objects with just one click. Katalon Studio is intelligent enough to capture your element with all possible locators. If you just started learning programming for automation testing, please find the simplest test scenario that needs to be repeated a thousand times in your project. Then create a simple automation script to run it and check the result of the test. These easy tests will motivate you to create more and more scripts and avoid manual procedures whenever possible.&lt;/p&gt;

&lt;p&gt;Other ways to gain solid knowledge in test automation are joining local meetups and conferences such as STAREAST, STARWEST, Agile Testing Days, and QualityJam. Last month, I had a chance to join a webinar co-hosted by Katalon Studio and ToolsQA about the software testing trends of 2019. I found this webinar to be amazing and practica, and I would suggest you try to register for similar events.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;More details are available at &lt;a href="https://testautomationresources.com/software-testing-basics/test-automation-engineer-salary/" rel="noopener noreferrer"&gt;https://testautomationresources.com/software-testing-basics/test-automation-engineer-salary/&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>softwaretesters</category>
      <category>testautomation</category>
      <category>career</category>
    </item>
    <item>
      <title>How to start with REST API &amp; RESTful Web Service Testing </title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Mon, 10 Dec 2018 09:13:57 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/how-to-start-with-rest-api--restful-web-service-testing--2d1h</link>
      <guid>https://dev.to/dohertykornelia/how-to-start-with-rest-api--restful-web-service-testing--2d1h</guid>
      <description>&lt;h2&gt;
  
  
  REST API &amp;amp; RESTful web services explained
&lt;/h2&gt;

&lt;p&gt;REST API, which stands for representational state transfer application programming interface. Some of the simplest questions that might come up when you’re first starting to understand REST API is, what is being represented exactly, what is a state, and what is being transferred. So here in the article, let’s look at all these words individually and learn what they all mean.&lt;/p&gt;

&lt;p&gt;The word ‘representational’ means there is a transfer of representations of resources and the resources can be pretty much anything that can be named on the Internet like a list of users or a list of photos, comments, posts, articles, pages, videos, books, profiles, etc. To understand how exactly we get a representation of resources, you need to look at how everyone interacts with web pages, the client-server model, and the HTTP. Here’s the HTTP protocol:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi1.wp.com%2Ftestautomationresources.com%2Fwp-content%2Fuploads%2F2018%2F12%2FHTTPprotocol.png%3Fresize%3D1024%252C423%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi1.wp.com%2Ftestautomationresources.com%2Fwp-content%2Fuploads%2F2018%2F12%2FHTTPprotocol.png%3Fresize%3D1024%252C423%26ssl%3D1" alt="restful-web-services-http-protocol"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Everytime you type a URL in a browser, you’re sending a request to the web server and the web server responds with a resource. What’s important to understand here is, everytime you type a URL in a browser or click on a webpage link, you’re sending a request for a specific resource or resources from a web server. And the web server responses and delivers the request your resource to your browser as in a formal web page or whatever format that the resource is in. The second important point to understand is that web server doesn’t actually deliver the resources. It doesn’t send you the database that it has, but rather a representation of that resource in a format that is readable, for example, HTML or image. Think of actual resources, physical things located on a web server database or stored a web server hard drive, and representations of those resources as copies in either readable format for human beings like HTML or image or easy-to-work-with formats for programmers like JSON and XML. It’s also helpful to think of the whole web as a bunch of resources. We always request the resource when clicking on a link or type in a URL, no wonder that URL stands for Uniform Resource Locator.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi0.wp.com%2Ftestautomationresources.com%2Fwp-content%2Fuploads%2F2018%2F12%2Furl.png%3Fresize%3D1024%252C411%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi0.wp.com%2Ftestautomationresources.com%2Fwp-content%2Fuploads%2F2018%2F12%2Furl.png%3Fresize%3D1024%252C411%26ssl%3D1" alt="restful-web-services-url-request"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So what’s about the word ‘state’? Take an example, whenever I click a link, the application state changes and I am presented with another resource, which is a page with all the other content of that resource. And as I click through all these different pages, the application state keep changing from one state to the next. When the resource gets transferred from the web server, we send a request for the resource and we get a representation back and whatever formats the resources presented. This is what is meant by the word ‘transfer’. However, it can also refer to the transfer of the application state when we click on the next link and get transferred to another page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi1.wp.com%2Ftestautomationresources.com%2Fwp-content%2Fuploads%2F2018%2F12%2Frest.png%3Fresize%3D1024%252C406%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi1.wp.com%2Ftestautomationresources.com%2Fwp-content%2Fuploads%2F2018%2F12%2Frest.png%3Fresize%3D1024%252C406%26ssl%3D1" alt="restful-web-services-rest-api"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Implementing REST API &amp;amp; RESTful web services testing using tools
&lt;/h2&gt;

&lt;p&gt;So far, I have been used many tools to handle REST API Testing, some of them are really amazing, including Postman, Katalon Studio, JMeter, Rest-Assured. If you want to automate API testing but do not yet have a testing tool and do not have any financial support, I highly recommend Katalon Studio since this tool is a completely free full package of powerful features. &lt;/p&gt;

&lt;p&gt;In case you want to learn more, here is a step-by-step tutorial about how to test REST API &amp;amp; RESTful web services with Katalon Studio &lt;a href="https://testautomationresources.com/api-testing/rest-api-restful-web-services-testing/" rel="noopener noreferrer"&gt;https://testautomationresources.com/api-testing/rest-api-restful-web-services-testing/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>softwaretesting</category>
      <category>apitesting</category>
      <category>apitestingtutorials</category>
      <category>apitestingtools</category>
    </item>
    <item>
      <title>How to Start Writing Test Cases As A Beginner?</title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Thu, 29 Nov 2018 04:19:32 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/how-to-start-writing-test-cases-as-a-beginner-adf</link>
      <guid>https://dev.to/dohertykornelia/how-to-start-writing-test-cases-as-a-beginner-adf</guid>
      <description>

&lt;h2&gt;
  
  
  What is the concept of test cases?
&lt;/h2&gt;

&lt;p&gt;Test cases are a set of conditional cases in which a tester can rely on to determine whether an application, a software system, or one of its features performs as desired or not.&lt;/p&gt;

&lt;p&gt;A test case is a single executable test which a tester carries out. It guides them through the steps of the test. You can think of a test case as a set of step-by-step instructions to verify something behaves as it is required to behave.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps to design a test case
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Define the purposes of your testing process.&lt;/p&gt;

&lt;p&gt;First, you need to understand the software requirements specification. When starting to write test cases for the features of a software, the first thing to do is to understand and determine the requirements of the system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Determine the performance indicators of your software system. (based on your understanding of the system)&lt;/p&gt;

&lt;p&gt;In order to write a good test script, you need to be familiar with the functional requirements. You also need to know how the software used including various functionalities and organizational functions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Identify non-functional requirements.&lt;/p&gt;

&lt;p&gt;The third step is to understand other aspects of the software related to non-functional requirements, such as hardware requirements, operating systems, security aspects. They need to be considered as other prerequisites aside with test data preparation.&lt;/p&gt;

&lt;p&gt;Testing non-functional requirements is very important. For example, if the software requires a user to fill in forms, you must determine a reasonable timeframe so that your user will not run out of time while waiting for submission. At the same time, it is also important to check the log-in time to ensure that the user session is not expired, which is called security test.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Determine the test case template&lt;/p&gt;

&lt;p&gt;Test case samples, test case templates that should be chosen must include test types such as UI, functionality, fault tolerance, compatibility, and performance. Each type should be defined in accordance with the logic of the application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Indicate the interaction between the modules of the software&lt;/p&gt;

&lt;p&gt;At this point, you have to understand the functionality of each module and its interactions with other modules to identify the system flow. Test cases should be designed to cover the highest level of module interactions. For example: When testing the shopping cart feature of an e-commerce website you need to test the inventory management system to validate if the same number of purchased products is deducted from the store. Similarly, when handling re-testing, you need to test its impact on the financial part of the application along with the inventory management system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Structure of a test case
&lt;/h2&gt;

&lt;p&gt;The format of a typical test case includes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Case ID:&lt;/strong&gt; The value needed to determine the number of instances required for testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Function:&lt;/strong&gt; Based on the functionality of the system you can split the functions to create clearer test cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Data:&lt;/strong&gt; The data that need to be prepared for testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Steps:&lt;/strong&gt; Describe the test steps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expected results:&lt;/strong&gt; Expected results from the steps above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A result:&lt;/strong&gt; Usually is PASS, FAIL, or PENDING. This is the actual result of the test case in the system environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comments:&lt;/strong&gt; This column is used to note screenshots and related information when executing test cases.&lt;/p&gt;

&lt;p&gt;Besides, you can add more columns such as: Testers, Execute Date, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Defining the test case
&lt;/h2&gt;

&lt;p&gt;With each testing value there are always 3 scenarios that can happen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Normal case: common test cases&lt;/li&gt;
&lt;li&gt;Abnormal case: abnormal test cases&lt;/li&gt;
&lt;li&gt;Boundary case: the boundary test cases.
In larger cases, it will be divided into smaller cases correspondingly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Read more for a practical example of writing test cases for the Facebook login function at &lt;a href="https://testautomationresources.com/software-testing-basics/writing-test-cases/"&gt;https://testautomationresources.com/software-testing-basics/writing-test-cases/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;


</description>
      <category>softwaredevelopment</category>
      <category>softwaretesting</category>
      <category>testingtutorials</category>
    </item>
    <item>
      <title>How to automate your regression testing projects?</title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Thu, 22 Nov 2018 07:52:32 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/how-to-automate-your-regression-testing-projects-3jl8</link>
      <guid>https://dev.to/dohertykornelia/how-to-automate-your-regression-testing-projects-3jl8</guid>
      <description>&lt;h2&gt;
  
  
  What is regression testing?
&lt;/h2&gt;

&lt;p&gt;Regression testing, which is also known as repeated testing, is the process to ensure all the old functionalities still correctly works with the new changes. In other words, handling regression testing is to test an already tested application to find defects as a result of the changes. This is a usual step of any software development process and done by testing specialists. Testers do regression testing by re-executing the tests against the modified application to evaluate whether the revised code breaks anything which was working earlier. The only reason regression testing might not work is that changing or adding new code to a program can easily introduce errors into code that is not intended to be changed.&lt;br&gt;
Regression testing is required in the following scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When the code is modified according to the change of need in the requirement&lt;/li&gt;
&lt;li&gt;When new functionality is added&lt;/li&gt;
&lt;li&gt;While fixing defects&lt;/li&gt;
&lt;li&gt;While fixing performance issues&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Why should regression testing be automated?
&lt;/h2&gt;

&lt;p&gt;Let's consider an example and how to perform regression testing in that situation:&lt;br&gt;
At the beginning of a project, assuming we have six developers and two testers. The Agile model is set up every two weeks for a Sprint. Everything started.&lt;br&gt;
In the first Sprint, we start with the basic features (e.g., about ten functions), the testers begin designing testing scenarios for testing (e.g. about 100 scenarios). The very first Sprint receives a good rating from customers.&lt;br&gt;
In the second sprint, the developers continue to create new features - about 10, and testers also do things like in the first Sprint - with 100 new scripts plus 100 old scenarios that need to be retested. Well, only 200 scripts, everything is still in control.&lt;br&gt;
In the next Sprint, the developers need to make eight new features and update the two old features due to new customer requirements. At this point, the two testers not only have to design test scripts for the 8 new features but also have to test and update 200 old scenarios. The whole implementation is about 300 scenarios. Did you feel there is something wrong?&lt;br&gt;
Over the next few Sprints, the three developers still meet the number of features and the changing requirements, but with two testers, the number of scripts to create and update are much more. Tiredness begins to spread. The lack of time and the risk of miss bug is higher and higher. Too many problems arise.&lt;br&gt;
Therefore, when regression testing is automated, it enables testers to check into a variety of changes and unusual cases in the production environment. Not all regressions are caused by new features or the consequences of routine bug fixes; database updates or new browser versions can also cause them. Regression can also be an issue with efficiency and speed. Automating those cases which are stable and repeatable allows manual testers to spend more time testing various environments and for merging more complicated cases at a higher level.&lt;br&gt;
And what's more, regression analysis is the key to success. It needs to deal with intelligence rather than hard work.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Highest Return: Execute tests that contribute to high coverage of the requirements, then any others…&lt;/li&gt;
&lt;li&gt;Quickly Lower Risk: Execute tests for the most critical requirements, then any others…&lt;/li&gt;
&lt;li&gt;Practically Safe: Execute tests for all the critical requirements, then any others…
Especially since often ~20% of the test cases are covering ~80% of the business value&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  How to improve automated regression testing?
&lt;/h2&gt;

&lt;p&gt;Two automated regression testing approaches are most used: data-driven testing and keyword-driven testing.&lt;br&gt;
&lt;strong&gt;Data-driven testing&lt;/strong&gt; is a framework where test input and output values are read from data files (data pools, ODBC sources, CSV files, Excel files, DAO objects, ADO objects, and such) and are loaded into variables in captured or manually coded scripts. In this approach, variables are used for both input values and output verification values. Navigation through the program, reading of the data files, and logging of test status and information are all coded in the test script. Let's consider a simple example of a data-driven script for setting up Admin accounts in a system:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;private void Auto_ID_400_test()
{
     Common.InitializeWebDocument();
     DataInit.Init();
     BasePage.NavigateToHomePage();
     HomePage.NavigateToSettings();
     SettingBasePage.NavigateToBase();
     Base.AdminSection.AddNewAdmin(Data.Read("NewAdmin"));
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static void AddNewAdmin(DataTable dataTable)
{
     Report.Log(ReportLevel.Info, "Add new Admin:");
     OpenAddnewAdminPopUp();
     FillNewAdminData(dataTable);
     ConfirmAdmin(Read(dataTable.GetValue"NewAdminName"));
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2ArgrE2F9UYOS-HX3d3RzPDA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2ArgrE2F9UYOS-HX3d3RzPDA.png" alt="automated-regression-testing-1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Keyword-driven testing&lt;/strong&gt; is a technique that separates much of the programming work from the actual test steps so that the test steps can be developed earlier and can often be maintained with only minor updates, even when the application or testing needs change significantly. The keyword-driven testing methodology divides test creation into two stages: Planning Stage, Implementation Stage.&lt;br&gt;
Example: Test case for login: Navigate to the login page, type a user ID, type the password, Verify login.&lt;br&gt;
Then, automated testing engineers develop scripts for the keywords:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2AiSOLJgkLjKbT4ooqDFGVhw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2AiSOLJgkLjKbT4ooqDFGVhw.png" alt="automated-regression-testing-1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This strategy does not require programming skills, so it much easier for non-technical people to contribute to the regression testing process. By way of explanation, it is more suitable for the projects catering to a large audience and requiring a broader focus than the data-driven testing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;More details about this approach are available at &lt;a href="https://testautomationresources.com/software-testing-basics/automated-regression-testing/" rel="noopener noreferrer"&gt;https://testautomationresources.com/software-testing-basics/automated-regression-testing/&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>softwaretesting</category>
      <category>softwaredevelopment</category>
      <category>testautomation</category>
    </item>
    <item>
      <title>What you need to know about the levels of Software Testing</title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Wed, 14 Nov 2018 09:42:06 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/what-you-need-to-know-about-the-levels-of-software-testing-42ck</link>
      <guid>https://dev.to/dohertykornelia/what-you-need-to-know-about-the-levels-of-software-testing-42ck</guid>
      <description>

&lt;p&gt;Before release, any software product goes through various levels of testing to make sure that it is working properly. Generally, software testing is divided into four levels. &lt;/p&gt;

&lt;h2&gt;1. Unit Testing&lt;/h2&gt;

&lt;p&gt;Unit testing (or component testing) is the first stage in the testing process. A unit is the smallest testable and independent component of the software. Normally, Unit testing is performed by software developers before handing software over to testers for executing other formal tests. The main purpose of unit testing is to make sure that every unit is working as designed.&lt;/p&gt;

&lt;p&gt;In addition, as the cost of fixing bugs in the late stages is much higher than in the early stages, unit testing helps reduce cost by finding problems early. White box testing method is normally used at this stage&lt;/p&gt;

&lt;h2&gt;2. Integration Testing&lt;/h2&gt;

&lt;p&gt;After unit testing is integration testing. In this stage, all units are integrated together and tested. It is a form of testing in the testing process performed to detect defects in the interactions and the interfaces between the integrated units. Black box testing technique is usually used at this stage, but in many cases, both Black and White testing method are combined together.&lt;/p&gt;

&lt;p&gt;There are four main integration testing approaches, namely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Big bang: In the big bang approach, All components or modules are integrated together to complete a software system. After that, integration testing is performed.&lt;/li&gt;
&lt;li&gt;Top-down: In this method, the process is carried out from the highest level modules to the lower level ones. This method requires Test stubs, Stub is a module which will temporarily substitute for submodules if they are not available for integration during the early phases.&lt;/li&gt;
&lt;li&gt;Bottom-up: Bottom-up testing is a method where the lowest level components are tested first, and then progressively higher level components are tested. Drivers are required in this method to simulate the main modules which are not available in the early phases.&lt;/li&gt;
&lt;li&gt;Sandwich: Sandwich testing (or Hybrid approach) is a type of integration testing which is the combination of Top-down and Bottom-up testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;3. System Testing&lt;/h2&gt;

&lt;p&gt;After integration testing, the fully integrated application is tested to check that whether the system meets its software requirements specifications (SRS). System Testing is a type of black box testing method thus the knowledge of internal code is not required. This testing is performed in an environment that closely resembles the production environment in order to provide more reliable and efficient outcoming. It is an important phase as it helps to evaluate the functional, business and technical requirements.&lt;/p&gt;

&lt;p&gt;There are various types of system testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Usability Testing: Focuses on the user’s ease to operate and use and checks that the user interface is user-friendly.&lt;/li&gt;
&lt;li&gt;Load Testing: Load Testing is necessary to know that a software solution will perform under real-life loads.&lt;/li&gt;
&lt;li&gt;Regression Testing: Type of software testing that checks the performance of existing functionalities when a change is made.&lt;/li&gt;
&lt;li&gt;Functional Testing: Type of black box testing that bases its test cases on the specifications of the software component under test.
Recovery Testing: to test that how well a system recovers from crashes, hardware failures, or other catastrophic problems.&lt;/li&gt;
&lt;li&gt;Security Testing: To test that the system is secured enough to protect it from unintended users.&lt;/li&gt;
&lt;li&gt;Performance Testing: Performance testing is a type of testing that is performed to determine how fast and stable the system performs under a particular workload.&lt;/li&gt;
&lt;li&gt;Load Testing: Load testing is a kind of testing which determines the performance of the system under real-life load conditions. it measures the maximum load capacity of the system when multiple users access the system at the same time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;4. User Acceptance Testing&lt;/h2&gt;

&lt;p&gt;User acceptance testing (End-User Testing) is the last phase of the testing process. The user acceptance testing is performed by end users to make sure that it can handle required tasks in real-world scenarios as per specifications. If the software product passes this stage, it means that the end user has accepted it and it is ready to go live.&lt;/p&gt;

&lt;p&gt;Below are the different types of user acceptance testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alpha &amp;amp; Beta Testing: aim to validate the fitness-for-use of the system by the business user. The user acceptance test is performed by the users and application managers.&lt;/li&gt;
&lt;li&gt;Contract Acceptance Testing: a developed software is tested against certain criteria and specifications which are predefined and agreed upon in a contract. The project team defines the relevant criteria and specifications for acceptance at the same time when the team agrees on the contract itself.&lt;/li&gt;
&lt;li&gt;Regulation Acceptance Testing: also known as Compliance Acceptance Testing, examines whether the software complies with the regulations. This includes governmental and legal regulations.&lt;/li&gt;
&lt;li&gt;Operational Acceptance Testing: also known as Operational Readiness Testing or Production Acceptance Testing, these test cases ensure there are workflows in place to allow the software or system to be used. This should include workflows for backup plans, user training, and various maintenance processes and security checks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Black Box Testing&lt;/strong&gt;: This is a software testing method that analyses certain functionalities of the application without letting testers see the internal code structure. Black Box Testing is part of User Acceptance Testing, because Black Box Tests share the same principles as UAT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Factors affecting test scope:&lt;/strong&gt; There are some factors that we need to consider before choosing the proper levels for your tests.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project size.&lt;/li&gt;
&lt;li&gt;The complexity of the project.&lt;/li&gt;
&lt;li&gt;Budget&lt;/li&gt;
&lt;li&gt;Time scope for the project.&lt;/li&gt;
&lt;li&gt;Human resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;5. The advantages of testing at different levels&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Software development naturally split into phases.&lt;/li&gt;
&lt;li&gt;Easily track bugs.&lt;/li&gt;
&lt;li&gt;Ensures a working subsystem/ component/ library.&lt;/li&gt;
&lt;li&gt;Software reuse more practical.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;This write-up is originally posted at &lt;a href="https://testautomationresources.com/software-testing-basics/level-software-testing/"&gt;Test Automation Resources&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;


</description>
      <category>softwaretesting</category>
      <category>softwaredevelopment</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Easier handling multiple browser testing with Katalon Studio </title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Tue, 13 Nov 2018 08:30:42 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/easier-handling-multiple-browser-testing-with-katalon-studio--go9</link>
      <guid>https://dev.to/dohertykornelia/easier-handling-multiple-browser-testing-with-katalon-studio--go9</guid>
      <description>

&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;This tutorial gives a brief information on how to run a test case in multiple browsers. Katalon makes easier to do grid option in automation testing without downloading any external resources. With Katalon multiple browser testing can be done with simple steps.&lt;/p&gt;

&lt;h2&gt;Requirements&lt;/h2&gt;

&lt;p&gt;Tool: Katalon Studio&lt;br&gt;
Free download: &lt;a href="https://www.katalon.com/download"&gt;https://www.katalon.com/download&lt;/a&gt;&lt;br&gt;
Tutorials: &lt;a href="https://www.katalon.com/resources-center/tutorials/"&gt;https://www.katalon.com/resources-center/tutorials/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;How to implement multiple browser testing using Katalon Studio?&lt;/h2&gt;

&lt;h3&gt;&lt;em&gt;Step 1:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;To start Katalon Studio, double-click on the katalon.exe.&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 2:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;After launching Katalon Studio, provide your registered username and password to activate your Katalon Studio.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HUeBpyW5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/1.png%3Fw%3D525%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HUeBpyW5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/1.png%3Fw%3D525%26ssl%3D1" alt="activate-Katalon-for-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 3:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Once Katalon Studio is activated enter the Project name and its description.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Z9gELDr5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/2.png%3Fw%3D530%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Z9gELDr5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/2.png%3Fw%3D530%26ssl%3D1" alt="new-project-Katalon-multiple-browser-testing"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 4:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Create a new test case and enter the name and description of the test case.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ebXtgKPv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/3.png%3Fw%3D506%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ebXtgKPv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/3.png%3Fw%3D506%26ssl%3D1" alt="new-test-case-Katalon-multiple-browser-testing"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 5:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Click on the Record Web icon and continue with the created test case.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rv1IyK3l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/4.png%3Fresize%3D91%252C68%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rv1IyK3l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/4.png%3Fresize%3D91%252C68%26ssl%3D1" alt="recording-test-Katalon-multiple-browser-testing"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x5CaHNHi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/5.png%3Fw%3D527%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x5CaHNHi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/5.png%3Fw%3D527%26ssl%3D1" alt="confirmation-Katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 6:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Enter the URL in the dialog box opened after clicking the Record Web icon in case need to pause or stop the recording option in between is available in the same dialog box which travels throughout the recording.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EG2S2D_M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/6.png%3Fw%3D594%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EG2S2D_M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/6.png%3Fw%3D594%26ssl%3D1" alt="web-recorder-Katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 7:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Select the browser you need to record the UI elements from the drop down.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--go1R2XWw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/7.png%3Fresize%3D131%252C165%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--go1R2XWw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/7.png%3Fresize%3D131%252C165%26ssl%3D1" alt="choose-browser-Katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 8:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Once the browser is selected browser will be initiated and the selected browser with URL will be opened once the page is completely loaded user can interact with the page and record the necessary action of the web page and the UI elements will be recorded whenever the action is performed by the user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7RzWNdHD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/8.png%3Fw%3D606%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7RzWNdHD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/8.png%3Fw%3D606%26ssl%3D1" alt="browser-opened-Katalon-multiple-browser-testing"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 9:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Once after the stop button is clicked the record will be finished the action, action data and the Element will be saved and displayed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--inQ4wChX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/9.png%3Fw%3D597%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--inQ4wChX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/9.png%3Fw%3D597%26ssl%3D1" alt="recorded-Katalon-multiple-browser-testing-9"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 10:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;After clicking OK the Object Repository dialog will be opened and the user had to make a new folder and save the Object Repository.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rYyrfF0a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/10.png%3Fw%3D598%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rYyrfF0a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/10.png%3Fw%3D598%26ssl%3D1" alt="adding-elements-Katalon-multiple-browser-testing"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 11:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Once the above step is completed the created object repository folder will be displayed under Object Repository. (Note: My Object Repository is named as GUI)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Nyhyzm0---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/11.png%3Fw%3D329%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Nyhyzm0---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/11.png%3Fw%3D329%26ssl%3D1" alt="object-repository-katalon-multiple-browser-testing"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 12:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;While clicking the Object Repository folder the captured element will be displayed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BzvHjW-y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/12.png%3Fresize%3D1024%252C114%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BzvHjW-y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/12.png%3Fresize%3D1024%252C114%26ssl%3D1" alt="displaying-captured-elements-katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 13:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;To run the test case in multiple browsers right-click the test suite option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--18UAGJJA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/13.png%3Fw%3D357%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--18UAGJJA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i2.wp.com/testautomationresources.com/wp-content/uploads/2018/09/13.png%3Fw%3D357%26ssl%3D1" alt="test-suite-option-katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 14:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Select the new option and create a new Test Suite and give an appropriate test suite name and description.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rILWw9Ob--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/14.png%3Fw%3D453%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rILWw9Ob--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/14.png%3Fw%3D453%26ssl%3D1" alt="new-test-suite-katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A0b_rYqE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/15.png%3Fw%3D508%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A0b_rYqE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/15.png%3Fw%3D508%26ssl%3D1" alt="new-test-suite-katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 15:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Now the user had to integrate the test case with the test suite. Click the add button once the test suite is created successfully will open the test suite page and click the add option.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4ZKN2aGg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/16.png%3Fresize%3D57%252C29%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4ZKN2aGg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/16.png%3Fresize%3D57%252C29%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 16:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Once the add button is pressed a dialog box will be opened to add the test case to the test suite. Now select the check box and click OK. The test case will be integrated into the test Suite.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If there are multiple test case select the test cases according to the order.&lt;br&gt;
My test case is named as GUI_Automation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wsN_IRpi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/17.png%3Fw%3D403%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wsN_IRpi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/17.png%3Fw%3D403%26ssl%3D1" alt="test-suite-collection-Katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 17:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Select the new option and create a new Test Suite collection and give an appropriate test suite collection name and description.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rILWw9Ob--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/14.png%3Fw%3D453%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rILWw9Ob--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/14.png%3Fw%3D453%26ssl%3D1" alt="new-test-suite-Katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 18:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Now the user must integrate the test suite with the test suite collection. Click the add button once the test suite collection is created successfully will open the test suite collection page and click the add option. &lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 19:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Now select the added test suite to the test suite collection to run the test case in multiple browsers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Add the same test suite for more than two times to run the test suite in different browsers.&lt;br&gt;
I have name my test suite as GUI_Multiplebrowser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y9aajAHQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/19.png%3Fw%3D405%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y9aajAHQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/19.png%3Fw%3D405%26ssl%3D1" alt="test-suite-katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 20:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Once the test suite is selected use the “Run with” option to select the browser to run the test suite in different browsers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aBhRPL2D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/20.png%3Fresize%3D1024%252C354%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aBhRPL2D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/20.png%3Fresize%3D1024%252C354%26ssl%3D1" alt="selecting-browser-katalon-multi-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 21:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;Once the test suite is selected with the appropriate browser the test suite collection is ready to execute.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aLd7l0O_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/21.png%3Fw%3D761%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aLd7l0O_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/21.png%3Fw%3D761%26ssl%3D1" alt="ready-to-execute-katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 22:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;The test suite collection can be executed in two different ways&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Sequential:&lt;/strong&gt; the test suites will be executed one after another.&lt;br&gt;
&lt;strong&gt;2. Parallel:&lt;/strong&gt; the test suites will be executed at the same time.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3Qny9QvO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/22.png%3Fresize%3D283%252C42%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3Qny9QvO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/09/22.png%3Fresize%3D283%252C42%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 23:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;I will run my test suite collection in &lt;a href=""&gt;Parallel mode&lt;/a&gt; and will execute the test suite collection.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uAsXQJog--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/23.png%3Fresize%3D87%252C33%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uAsXQJog--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/23.png%3Fresize%3D87%252C33%26ssl%3D1" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;&lt;em&gt;Step 24:&lt;/em&gt;&lt;/h3&gt;

&lt;p&gt;The test suite execution will run the test cases in three different browsers and log can be viewed in the log.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SdoyCxBO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/24.png%3Fw%3D596%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SdoyCxBO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i1.wp.com/testautomationresources.com/wp-content/uploads/2018/09/24.png%3Fw%3D596%26ssl%3D1" alt="running-test-suite-katalon-multiple-browser-testing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full Source Code: &lt;/p&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.checkpoint.CheckpointFactory as CheckpointFactory
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as MobileBuiltInKeywords
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testcase.TestCaseFactory as TestCaseFactory
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testdata.TestDataFactory as TestDataFactory
import com.kms.katalon.core.testobject.ObjectRepository as ObjectRepository
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WSBuiltInKeywords
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUiBuiltInKeywords
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable
WebUI.openBrowser('')
WebUI.navigateToUrl('http://www.practiceselenium.com/')
WebUI.click(findTestObject('Object Repository/GUI/Page_Welcome/span_See Collection'))
WebUI.click(findTestObject('Object Repository/GUI/Page_Menu/span_Check Out'))
WebUI.setText(findTestObject('Object Repository/GUI/Page_Check Out/input_email'), 'test@yopmail.com')
WebUI.setText(findTestObject('Object Repository/GUI/Page_Check Out/input_name'), 'Testing')
WebUI.click(findTestObject('Object Repository/GUI/Page_Check Out/div_Address'))
WebUI.setText(findTestObject('Object Repository/GUI/Page_Check Out/textarea_address'), 'New Testing , Katalon')
WebUI.selectOptionByValue(findTestObject('Object Repository/GUI/Page_Check Out/select_Visa              Maste'), 'American Express', true)
WebUI.setText(findTestObject('Object Repository/GUI/Page_Check Out/input_card_number'), '65656565656')
WebUI.setText(findTestObject('Object Repository/GUI/Page_Check Out/input_cardholder_name'), 'TESTING')
WebUI.setText(findTestObject('Object Repository/GUI/Page_Check Out/input_verification_code'), '6565656')
WebUI.click(findTestObject('Object Repository/GUI/Page_Check Out/button_Place Order'))
WebUI.closeBrowser()

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The tutorial is orginally posted at &lt;a href="https://testautomationresources.com/web-testing/multiple-browser-testing-katalon-studio/"&gt;Test Automation Resources&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


</description>
      <category>softwaretesting</category>
      <category>crossbrowsertesting</category>
      <category>testautomation</category>
    </item>
    <item>
      <title>Introduction to Exhaustive Testing with Examples</title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Fri, 09 Nov 2018 04:52:42 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/introduction-to-exhaustive-testing-with-examples-fhi</link>
      <guid>https://dev.to/dohertykornelia/introduction-to-exhaustive-testing-with-examples-fhi</guid>
      <description>&lt;h2&gt;
  
  
  What is Exhaustive Testing?
&lt;/h2&gt;

&lt;p&gt;Exhaustive testing, which is also known as complete testing, occurs when all the testers in your team are exhausted and when all the planned tests have been executed. It is a quality assurance testing technique in which all scenarios or data is tested for testing. In a more understandable way, exhaustive testing means ensuring there are no undiscovered faults at the end of the test phase. Testing everything (all combinations of inputs and preconditions) is not feasible except for trivial cases. As testers, we often say “well I just never have enough time for testing”. Even if you had all the time in this world, you still wouldn’t have enough time to test all the possible input combinations and output combinations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Strategies for exhaustive testing
&lt;/h2&gt;

&lt;p&gt;We know that one of the &lt;a href="https://testautomationresources.com/videos/software-testing-principles-tutorial/" rel="noopener noreferrer"&gt;7 testing principles of software testing&lt;/a&gt; says that exhaustive testing is not possible. Now the question which lies is that: as exhaustive testing is not possible how we are supposed to get enough coverage to tell that the application under test is tending to not having any defects?&lt;/p&gt;

&lt;p&gt;Instead of trying to test everything with what we tend to do and that we want to apply some helpful approaches, we use risk and priorities to focus testing efforts. We may do techniques such as pairwise testing to reduce the number of combinations, or things like cause-effect graphing and do more of a logic-based approach to optimize our testing. Here are basic and fundamental strategies that one can definitely include in their test plan:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact on Business:&lt;/strong&gt; This not the only one but is one of the most important parameters to understand the risk. Testers should question that if a certain functionality of a module being tested fails how much risk it will bring to the entire module. Testers should constantly work with the Business Analyst of the module to understand the threat brought by the failure of each functionality so that it can be prioritized high up in the testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Probability of failure:&lt;/strong&gt; This parameter also plays a major role in understanding the health of a functionality. Some functionality can have a high probability of failure compared to other functionalities, for example, let’s consider an e-commerce site which will have one functionality of logging in as a user and other to determine the users browsing history and correctly give the user more options to look at(cross sell/up sell). As a tester, we can identify that the second functionality has a higher probability of breaking because it contains a lot of business algorithms to be implemented compared to a login page which might have less probability of failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regression:&lt;/strong&gt; Testers should look at this parameter by identifying functionalities which have to be regressed more often when there is a change or addition to certain areas of the AUT. Correct impact analysis should be done to determine the areas correctly. Impact analysis should always involve developers, QA, and the Business Analyst team to get a correct understanding of the impacted areas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recovery:&lt;/strong&gt; If a functionality breaks how fast can it be recovered or the recovery time taken. QA personnel can get the inputs from developers on the recovery time for each functionality of the application under test.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Exhaustive Testing is impractical and impossible?
&lt;/h2&gt;

&lt;p&gt;It is not possible to perform complete testing or exhaustive testing. For most of the systems, it is near impossible because of the following reasons:&lt;/p&gt;

&lt;p&gt;The domain of possible inputs of a program is too large to be completely used in testing a system. There are both valid inputs and invalid inputs.&lt;br&gt;
The program may have a large number of states. There may be timing constraints on the inputs, that is, an input may be valid at a certain time and invalid at other times. An input value which is valid but is not properly timed is called an inopportune input. The input domain of a system can be very large to be completely used in testing a program.&lt;br&gt;
The design issues may be too complex to completely test. The design may have included implicit design decisions and assumptions. For example, a programmer may use a global variable or a static variable to control program execution.&lt;br&gt;
It may not be possible to create all possible execution environments of the system. This becomes more significant when the behavior of the software system depends on the real, outside world, such as weather, temperature, altitude, pressure, and so on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exhaustive Testing Examples
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi1.wp.com%2Ftestautomationresources.com%2Fwp-content%2Fuploads%2F2018%2F11%2FIE-Options.png%3Fw%3D405%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi1.wp.com%2Ftestautomationresources.com%2Fwp-content%2Fuploads%2F2018%2F11%2FIE-Options.png%3Fw%3D405%26ssl%3D1" alt="exhaustivetesting"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The IE Tools &amp;gt; Advanced Options window&lt;/p&gt;

&lt;p&gt;53 binary conditions&lt;/p&gt;

&lt;p&gt;1 condition with 3 options&lt;/p&gt;

&lt;p&gt;1 condition with 4 options&lt;/p&gt;

&lt;p&gt;2⁵³ = 9,007,199,254,740,992&lt;/p&gt;

&lt;p&gt;x 12&lt;/p&gt;

&lt;p&gt;= 108,086,391,056,891,904 possible combinations of conditions&lt;/p&gt;

&lt;p&gt;At one second per test execution:&lt;/p&gt;

&lt;p&gt;108,086,391,056,891,904 / 360 = 300,239,975,158,033.067 hours (12,509,998,964,918.04 days or 34,273,969,766.9 years) to test all possible combinations.&lt;/p&gt;

&lt;p&gt;More details are available &lt;a href="https://testautomationresources.com/software-testing-basics/exhaustive-testing-fundamentals/" rel="noopener noreferrer"&gt;here&lt;/a&gt; for the deep learning about this technique.&lt;/p&gt;

</description>
      <category>softwaretesting</category>
    </item>
    <item>
      <title>7 Problems with Software Test Automation</title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Tue, 30 Oct 2018 07:10:43 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/7-problems-with-software-test-automation-1jhd</link>
      <guid>https://dev.to/dohertykornelia/7-problems-with-software-test-automation-1jhd</guid>
      <description>

&lt;p&gt;There are lots of problems occurring in every test automation processes. It is much more challenging when you encounter them without preparations, so having some idea of the type of problem would help you deal with them. This blog post brings out some of the commonest problems described in details.&lt;/p&gt;

&lt;h2&gt;1. Unrealistic expectations&lt;/h2&gt;

&lt;p&gt;Most people in our industry believe new technical solutions will save the day. Testing tools are no exception. There is a tendency to be optimistic about what can be achieved with a new tool. Indeed, we cannot deny that tools nowadays can solve almost every problem we are currently facing in test automation. However, the effect of optimism also leads to unrealistic expectations. If management expectations are unrealistic, then no matter how well the tool is implemented from a technical point of view, it will not meet expectations.&lt;/p&gt;

&lt;h2&gt;2. Poor testing practices&lt;/h2&gt;

&lt;p&gt;Automation is not always a good idea if testing practices are poor, with poorly organized tests, inconsistent documentation, and tests that are not very good at finding defects. The first and the most important to mention is, improving the effectiveness of testing.&lt;/p&gt;

&lt;h2&gt;3. Expectations that automated tests will find new defects&lt;/h2&gt;

&lt;p&gt;A test is most likely find defects the first time it is run. If a test already ran and passed, re-running the same test case a thousand times still cannot yield any differences, unless the test is exercising code that has been changed or could be affected by a change made in a different part of the software, or is being run in a different environment.&lt;/p&gt;

&lt;p&gt;Testing tools are useful things, but they are not those things that can find a large number of new defects. Or more correctly, they are regression testing tools. Their use is in repeating tests that have already run. Therefore, tests that do not find any defects are not worthless, even though good test design should be directed at trying to find defects.&lt;/p&gt;

&lt;h2&gt;4. False sense of security&lt;/h2&gt;

&lt;p&gt;Just because the test suites do not find any defects, doesn’t mean there is no defect in the software. This is very crucial because if the tests contain defect themselves, they will bring incorrect outcomes. The automation test will simply preserve those defective results indefinitely.&lt;/p&gt;

&lt;h2&gt;5. Maintenance of automated tests&lt;/h2&gt;

&lt;p&gt;Every time when the software is changed or updated, your tests must be updated either so that they could re-run successfully. Test maintenance has been the death of many test automation initiatives. When it takes more effort to update the tests than it would take to re-run them manually, test automation will be abandoned. Your test automation initiative should not fall victim to high maintenance costs.&lt;/p&gt;

&lt;h2&gt;6. Technical problems&lt;/h2&gt;

&lt;p&gt;Most popular testing tools are large and complex that require detailed technical knowledge. In addition to technical problems with the tool themselves, you may experience technical problems with the software you are trying to test. If the software is not designed and built with testability in mind, it can be very difficult to test, either manually or automatically. Trying to use tools to test such software is an added complication which can only make test automation even more difficult.&lt;/p&gt;

&lt;p&gt;Nonetheless, as for tests automation, &lt;a href="https://www.katalon.com/"&gt;Katalon Studio&lt;/a&gt; is a great and free tool. The test automation framework provided within Katalon Studio was developed with the keyword-driven approach as the primary test authoring method with data-driven functionality for test execution. &lt;/p&gt;

&lt;p&gt;Read more &lt;a href="https://testautomationresources.com/api-testing/comparison-soapui-vs-postman-katalon-studio/"&gt;Top 3 API Testing Tool Comparison: SoapUI vs Postman, Katalon Studio&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;7. Organizational problems&lt;/h2&gt;

&lt;p&gt;Test automation needs to be supported by management and implemented into the culture of your organization. Time must be allocated for choosing tools, for training, for experimenting and learning what works best. Test automation is an infrastructure issue, not just a project issue. In larger organizations, test automation can rarely be justified on the basis of a single project. Standards are needed to ensure consistent ways of using the tools throughout the organization. Otherwise, every group may develop different approaches to test automation, making it difficult to transfer or share automated tests and testers between groups.&lt;/p&gt;

&lt;p&gt;Read more &lt;a href="https://testautomationresources.com/videos/manual-automation-testing/"&gt;8 Steps to Switch From Manual To Automation Testing at a Small Company&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;&lt;em&gt;Original source &lt;a href="https://testautomationresources.com/software-testing-basics/problems-test-automation/"&gt;https://testautomationresources.com/software-testing-basics/problems-test-automation/&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;


</description>
      <category>softwaretesting</category>
      <category>testautomation</category>
    </item>
    <item>
      <title>All You Need to Know About API Testing </title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Mon, 22 Oct 2018 10:02:55 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/all-you-need-to-know-about-api-testing--2ck9</link>
      <guid>https://dev.to/dohertykornelia/all-you-need-to-know-about-api-testing--2ck9</guid>
      <description>

&lt;h2&gt;What is an API?&lt;/h2&gt;

&lt;p&gt;If you have already known, or if you have googled about, or if you are a little confused about what it says by looking all the technical terms over the Internet, just keep everything inside and the focus on what we are talking. So, API is nothing but it's an application program interface. As we already said the name itself says it is an interface.&lt;/p&gt;

&lt;h2&gt;How does API Testing work?&lt;/h2&gt;

&lt;p&gt;It is all about requests and responses between the client and server. You want something, you request for something so there is a way it gets carried to the server and you get the response back from the server. In other words, it's all about your requesting and you know getting some responses from the provider.&lt;/p&gt;

&lt;h2&gt;Real world examples&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example 1&lt;/em&gt;&lt;/strong&gt;: Let's compare it with a real-world example: You go to a restaurant you sit at your table and you choose that you need ABC. You will have your waiter coming up and taking a note of what you want. You tell him that you want ABC. So, you are requesting ABC, the waiter responds back with ABC he gets in the kitchen and serves you the food. In this case, who is your interface in between you and the kitchen is your waiter. It's his responsibility to carry the request from you to the kitchen, make sure it's getting done, and you know once it is ready he gets back to you as a response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example 2&lt;/em&gt;&lt;/strong&gt;: Another important example that we can relate is travel booking systems. For instance, take Kayak the biggest online site for booking tickets. You enter your destination, once you select dates and click on search, what you get back are the results from different airlines. How is Kayak communicating with all these airlines? There must be some ways that these airlines are actually exposing some level of information to Kayak. That's all the talking, it's through API's&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example 3&lt;/em&gt;&lt;/strong&gt;: Now open UBER and see. Once the site is loaded, it gives you an ability to log in or continue with Facebook and Google. In this case, Google and Facebook are also exposing some level of users' information. There is an agreement between UBER and Google/Facebook that has already happened. That's the reason it is letting you sign up with Google/ Facebook.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A0jQpVDA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/10/API-Testing-Uber-Example.png%3Fw%3D951%26ssl%3D1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A0jQpVDA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i0.wp.com/testautomationresources.com/wp-content/uploads/2018/10/API-Testing-Uber-Example.png%3Fw%3D951%26ssl%3D1" alt="api testing introduction"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;What is the use of API's?&lt;/h2&gt;

&lt;p&gt;If I expose a free API, it's not that I am exposing all the information that there is. I have my own criteria like what level of information that I should expose to my user or to the outside world. So I tie that information and I just expose it, now people use it. Tomorrow, they want some extra level of information, they comfort me and ask me for that. Why should I give it for free? That's when I charge based on the demand, I do make money out of my extra services.&lt;/p&gt;

&lt;p&gt;Think about the development perspective, UBER has an ability to share location where it uses Google Map API there. UBER has to focus on what it is actually doing rather than already existing functionality. It can just plug and play. There is no reinvestment of time to develop the same functionality. That's how people expose some level of API's to the outside world and some of them will be charged based on how you are using it.&lt;/p&gt;

&lt;h2&gt;SOAP vs REST&lt;/h2&gt;

&lt;p&gt;SOAP has been used since many years ago but these days it's all about REST (Representational State Transfer). If you just go to any Job Portal and just click on 'REST API Automation Tester' or ''REST API Testing Jobs, there are tons out there.&lt;/p&gt;

&lt;p&gt;REST is kind of API which is actually efficiently being used by many companies like eBay, Amazon, Google. When such big companies are using definitely they have already transitioned from SOAP to REST. It means that you know REST is in high demand now. There are few advantages from the development perspective, REST supports a number of data formats. The most important ones are the way the request is sent and how we read the response. There is a specific format SOAP always uses XML format whereas REST uses JASON. Now, because JASON is being used JavaScript object notation, it's a form of representation. If you click on a JASON format on Google, objects will be inverted commas followed by the parameters. So whatever, JASON is a way of our communication, a format which is being used for the information exchange such as request versus response.&lt;/p&gt;

&lt;p&gt;More details about REST API Testing: &lt;a href="https://testautomationresources.com/api-testing/rest-api-testing-interview-questions/"&gt;16 Common REST API Testing Interview Questions&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;What to test in API's?&lt;/h2&gt;

&lt;p&gt;There is a huge need for us to make sure that what we are requesting and what we are getting are matched. If we are requesting for some information, we have to make sure that the response is correct. That's where QA/API testers come into the picture. It is our responsibility to make sure that every request is getting proper responses.&lt;/p&gt;

&lt;p&gt;Learn more about available API Testing Tools: &lt;a href="https://www.katalon.com/resources-center/blog/soapui-vs-postman-katalon-api-tools/"&gt;SoapUI vs Postman, Katalon Studio: A Review of Top 3 API Tools&lt;/a&gt;&lt;/p&gt;


</description>
      <category>softwaretesting</category>
      <category>automationtesting</category>
      <category>apitesting</category>
    </item>
    <item>
      <title>Common Types of Test Design Techniques </title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Fri, 12 Oct 2018 06:23:45 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/common-types-of-test-design-techniques--5co</link>
      <guid>https://dev.to/dohertykornelia/common-types-of-test-design-techniques--5co</guid>
      <description>

&lt;p&gt;Test design techniques help every software development project improve its overall quality and effectiveness. There’s a multitude of software testing techniques in the automation landscape. Each of them has its own strengths and weaknesses. This blog post will give an overview of some of the most popular techniques, divided into categories. But first and foremost, I suggest you learn &lt;a href="https://testautomationresources.com/software-testing-basics/software-test-design-techniques/"&gt;the overview of Test Design Techniques in Software Development&lt;/a&gt; before seeing each technique in detail. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specification-based or Black-box technique&lt;/strong&gt;&lt;br&gt;
Use these techniques to determine the external factors—such as technical specifications, design, and customer’s requirements, etc.—of a software program. Testers view the software as a black box with inputs and outputs. The purpose is to validate the quality and correctness without disrupting the internal details.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;- Equivalence Partitioning:&lt;/em&gt;&lt;br&gt;
The idea of this approach is grouping the inputs with the same attributes to partitions. Code is not visible to testers. Your task is to pick one condition out of each partition, which covers all possible scenarios, to execute test cases. If a condition of a partition is valid, other conditions are valid too. Likewise, if a condition in a partition is invalid, other conditions are also invalid. This helps reduce the number of test cases.&lt;br&gt;
&lt;em&gt;- Boundary Value Analysis:&lt;/em&gt;&lt;br&gt;
This is one of the software testing techniques in which test cases are designed to include values at the boundaries. If the input is within the boundary value, it is considered ‘Positive testing.’ If the input is outside of the boundary value, it is considered ‘Negative testing.’ The goal is to select test cases to execute boundary values. In other words, the behavior of Negative testing is more likely to be incorrect than the behavior of Positive testing; and boundaries are an area in which testing is more likely to yield defects.&lt;br&gt;
&lt;em&gt;- Decision Table Testing:&lt;/em&gt;&lt;br&gt;
This technique can be used in test design because it helps testers explore the effects of combining different input values when adhering business rules. A Decision Table is a tabular representation of conditions versus test actions. Conditions are considered as inputs, while actions are considered as outputs.&lt;br&gt;
&lt;em&gt;- State Transition Diagrams:&lt;/em&gt;&lt;br&gt;
Using this approach, the tester analyzes the behavior of an application under test (AUT) for different input conditions in a sequence. You can provide both positive and negative input test values and record the system behavior. Any system in which you get a different output for the same input is a finite state system.&lt;br&gt;
*- Use Case Testing:&lt;br&gt;
Use case testing is a functional testing technique, meaning programming skill is not required. It helps the tester determine which test scripts are executed on the entire system from the beginning to the end of each transaction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure-based or White-Box techniques&lt;/strong&gt;&lt;br&gt;
This is a testing method in which the internal structure of applications is transparently seen and tested. The tester chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming knowledge is required.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;- Statement Coverage or Line Coverage:&lt;/em&gt; &lt;br&gt;
In this technique, every statement in the source code is executed at least once. Thereby, we can check what the source code is and is not expected to do. However, we cannot test the false condition in the source code.&lt;br&gt;
Statement coverage = (No. of statements Executed/Total no. of statements in the source code)&lt;em&gt;100&lt;br&gt;
*- Condition Coverage or Predicate Coverage:&lt;/em&gt;&lt;br&gt;
Condition coverage is seen for Boolean expression. Condition coverage ensures whether all the Boolean expressions have been covered and evaluated to both TRUE and FALSE.&lt;br&gt;
&lt;em&gt;- Decision Coverage or Branch Coverage:&lt;/em&gt;&lt;br&gt;
Test coverage criteria require enough test cases so that each condition in a decision takes on all possible outcomes at least once, and each point of entry to a program or subroutine is invoked at least once. That is, every branch (decision) is either true and false. It is helpful to invalidate all branches in the code to make sure that no branch leads to any abnormal behavior.&lt;br&gt;
&lt;em&gt;- Multiple Condition Coverage:&lt;/em&gt; &lt;br&gt;
Every combination of ‘true’ or ‘false’ for the conditions related to a decision has to be tested in this technique.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Experience-based technique&lt;/strong&gt;&lt;br&gt;
These  techniques are logically drawn from the experience in designing test cases and test conditions:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;- Exploratory Testing:&lt;/em&gt; &lt;br&gt;
Usually, this process is carried out by domain experts. They perform testing just by exploring the functionalities of the application without having the knowledge of the requirements. Testers can explore and learn the system while using these techniques. High severity bugs are found very quickly in this type of testing.&lt;br&gt;
&lt;em&gt;- Error Guessing:&lt;/em&gt;&lt;br&gt;
Error guessing is one of the testing techniques used to find bugs in a software application based on the tester’s prior experience. In Error guessing, no specific rules are applied.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
These are only three test design techniques besides hundreds to choose from. Each one serves best for specific types of problems in software. If we use one more than the others, our test coverage will suffer. Remember to choose the most suitable technique for your projects, not the most popularly used one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Original source: &lt;a href="https://testautomationresources.com/software-testing-basics/test-design-techniques-types/"&gt;https://testautomationresources.com/software-testing-basics/test-design-techniques-types/&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;


</description>
      <category>softwaredevelopment</category>
      <category>softwaretesting</category>
      <category>softwaretestdesign</category>
      <category>testautomation</category>
    </item>
    <item>
      <title>Moving From Manual To Automation Testing at a Small Company</title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Mon, 01 Oct 2018 07:25:26 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/moving-from-manual-to-automation-testing-at-a-small-company-3hbf</link>
      <guid>https://dev.to/dohertykornelia/moving-from-manual-to-automation-testing-at-a-small-company-3hbf</guid>
      <description>

&lt;p&gt;&lt;strong&gt;Obstacles of moving from manual to automation testing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Too busy running manual tests&lt;/li&gt;
&lt;li&gt;Put automation off until the "next release."&lt;/li&gt;
&lt;li&gt;Company culture is not open to change&lt;/li&gt;
&lt;li&gt;Company is not sure about the investment&lt;/li&gt;
&lt;li&gt;Not enough knowledge or experience to implement&lt;/li&gt;
&lt;li&gt;Not sure how or where to start&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Steps to go from manual to automation testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Step 1: Build a good test case foundation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why create a good test case foundation?
Good manual test cases are blueprints for what you will and will not be able to - automate. Explore automation framework options&lt;/li&gt;
&lt;li&gt;Aim for goodness, not perfection&lt;/li&gt;
&lt;li&gt;Test cases will evolve and change as you dig in deeper and learn more&lt;/li&gt;
&lt;li&gt;Pick a tool to store and organize your manual test case. This can be as simple as you need&lt;/li&gt;
&lt;li&gt;Common test case storage options:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Option 1&lt;/em&gt;: Documentation only examples&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Excel sheet (Microsoft, google docs)&lt;/li&gt;
&lt;li&gt;Wiki page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Option 2&lt;/em&gt;: Software tool examples&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Testlink - open source - &lt;a href="https://testinglink.org/"&gt;https://testinglink.org/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Testrail - server and cloud offerings - &lt;a href="https://www.gurock.com/testrail/"&gt;https://www.gurock.com/testrail/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Manual test case organization considerations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The option should include tracking which tests can/should be automated and what has been automated.&lt;/li&gt;
&lt;li&gt;Are you planning on storing test results and/or test plans with your manual test cases?&lt;/li&gt;
&lt;li&gt;Create a wish list (need to have versus nice to have)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tips: you can start simple and then import your list into a more complex tool if needed or wanted&lt;/p&gt;

&lt;p&gt;Step 2: Explore automation framework options&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;By framework, I mean what your tests are coded in that will run the actual tests. For example, the framework is what will actually send the test to the Selenium Server.&lt;/li&gt;
&lt;li&gt;What if you don't know what framework are available?
If you don't know, ask resources around you including: Developing team members, QA folks in professional organizations, QA/ Tech mailing lists or Forums, Slack groups, Twitter experts&lt;/li&gt;
&lt;li&gt;Narrow down your list to about three options and create a matrix that compares each option. This could include building your own.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Framework options and examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you are using Selenium, you have some great options: Java, Robot, Python, Ruby, Cucumber (and many more). This can be hosted or self-managed.&lt;/li&gt;
&lt;li&gt;Many Selenium hosting providers give you "wizards" that will help you set up the framework environments that will work with the solution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 3:  Explore infrastructure options&lt;/p&gt;

&lt;p&gt;What hardware is needed?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Servers: physical, self-managed virtual machines, cloud hosted&lt;/li&gt;
&lt;li&gt;How will the hardware be installed? maintained?&lt;/li&gt;
&lt;li&gt;Backup strategy
What software is needed?&lt;/li&gt;
&lt;li&gt;Buy versus Build versus Hosted&lt;/li&gt;
&lt;li&gt;Versioning strategy for the manual and automated test cases
Will the automated test cases exist in the same repository as the project code?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 4: Make the first choice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After you have proved to yourself that your approach will work, time to get the team to buy in on your solution
What is the quickest way to get to Proof of Concept (POC)?&lt;/li&gt;
&lt;li&gt;Develop a good plan and get moving: The plan should include a REAL DATE for a POC. Many times you can take advantage of trial membership for some testing products and tools. If you need the trial extended to reach out to the company and just ask.&lt;/li&gt;
&lt;li&gt;Have at least one backup plan in case the first choice does not work out.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 5: Start simple&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the simplest way to implement your framework approach using your actual product?
Selenium example: Can you use Selenium IDE scripts to confirm assumptions about product test-ability?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 6: Confirm your choice works&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go beyond the simple checks you have performed&lt;/li&gt;
&lt;li&gt;Confirm that your choice will work in your specific environment&lt;/li&gt;
&lt;li&gt;Many software providers will allow you to sign up for trial accounts so you can take a closer look.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tips: there is no harm in asking for an extension on a trial account if you needed more time for analysis.&lt;/p&gt;

&lt;p&gt;Step 7: POC for team buy-in&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proof of Concept (POC) is a chance to share your results, recommendations, and excitement with the large team.&lt;/li&gt;
&lt;li&gt;Best to show a live demo if possible&lt;/li&gt;
&lt;li&gt;Have dates and requirements for implementation&lt;/li&gt;
&lt;li&gt;Helpful to have metrics or other supporting detail to exemplify why automation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 8: Implement&lt;/p&gt;

&lt;p&gt;My automation implementation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Git: QA repository containing test cases, test queues, and vagrant/AWS configuration&lt;/li&gt;
&lt;li&gt;Jenkins: takes QA git repository and deploys on a Linux system based o config settings&lt;/li&gt;
&lt;li&gt;Linux system: launches vagrant/AWS system and executes Robot scripts.
Testing bot: robot scripts are executed against the Selenium server(s) and the internal vagrant/AWS system.&lt;/li&gt;
&lt;li&gt;Slack: posts test results from the Linux system to the team. This is broken up between pass and failed test results with emojis.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note: This video is originated from &lt;a href="https://www.youtube.com/channel/UCtqHXVoR7QSJARfhZ4dts1g"&gt;SeleniumConf UK&lt;/a&gt;&lt;br&gt;
This article was originally posted at &lt;a href="https://testautomationresources.com/videos/manual-automation-testing/"&gt;Test Automation Resources&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;More resource: &lt;a href="https://testautomationresources.com/software-testing-basics/test-automation-engineer-salary/"&gt;Software Test Automation Engineer Salary and Career Overview in 2019&lt;/a&gt;&lt;/p&gt;


</description>
      <category>softwaretesting</category>
      <category>manualtesting</category>
      <category>automationtesting</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>Test Automation Framework Interview Questions and Answers</title>
      <dc:creator>Kornelia O'Doherty</dc:creator>
      <pubDate>Tue, 25 Sep 2018 09:00:46 +0000</pubDate>
      <link>https://dev.to/dohertykornelia/test-automation-framework-interview-questions-and-answers-54bl</link>
      <guid>https://dev.to/dohertykornelia/test-automation-framework-interview-questions-and-answers-54bl</guid>
      <description>

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/RQhIU7kGIfQ"&gt; &lt;/iframe&gt;&lt;br&gt;
&lt;strong&gt;Introduction to automation testing framework&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What is a framework?&lt;/em&gt;&lt;br&gt;
A framework defines a set of rules or best practices which can be followed in a systematic way to achieve the desired results.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What are the advantages of using automation testing framework?&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It saves time and money&lt;/li&gt;
&lt;li&gt;Reusability of code&lt;/li&gt;
&lt;li&gt;Easy reporting &lt;/li&gt;
&lt;li&gt;Easy for compatibility testing&lt;/li&gt;
&lt;li&gt;Low-cost maintenance&lt;/li&gt;
&lt;li&gt;Automated testing is more reliable&lt;/li&gt;
&lt;li&gt;Automated testing is more powerful and versatile&lt;/li&gt;
&lt;li&gt;It is mostly used for regression testing&lt;/li&gt;
&lt;li&gt;Minimal manual intervention&lt;/li&gt;
&lt;li&gt;Maximum coverage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;How to create any framework?&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beginner:
No, I didn't get any chance to create a framework. I have used the framework which is already using the project.&lt;/li&gt;
&lt;li&gt;Experienced:
Yes, I have created a framework.
(or)
No, but I have involved in the creation of a framework.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Some popular Test Automation Frameworks?&lt;/em&gt;&lt;br&gt;
In a test automation project, we do perform different tasks by using different types of files. To organize and manage all the files and to finish all the tasks in a systematic approach we use a framework.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Mention the name of the framework which you are currently using or which you have hands-on experience?&lt;/em&gt;&lt;br&gt;
Already the organization which I am working for is using a hybrid framework.&lt;br&gt;
(or)&lt;br&gt;
I have experience with the hybrid framework, and we are using that.&lt;br&gt;
(or)&lt;br&gt;
It's easy to handle all my scripts to execute and generate logs and reports and also to capture screenshots by using the hybrid framework. So I have selected the hybrid framework and using it in my project.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Can you explain the framework which you used in your project?&lt;/em&gt;&lt;br&gt;
Please check the link: &lt;a href="https://www.youtube.com/watch?v=sPqf4ujbc0g"&gt;How To Explain Selenium Test Automation Framework In The Interview&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The uses of automation testing tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What is Automation Testing?&lt;/em&gt;&lt;br&gt;
&lt;a href="https://testautomationresources.com/videos/automation-testing-tutorial/"&gt;Automation testing&lt;/a&gt; is the process of testing the software using an automation tool to find the defects.&lt;br&gt;
In the process, executing the test scripts and generating the results are performed automatically by automation tools.&lt;br&gt;
Some most popular tools to do automation testing are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HP QTP&lt;/li&gt;
&lt;li&gt;Selenium Webdriver&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;What are the most popular testing tools for functional testing?&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selenium&lt;/li&gt;
&lt;li&gt;HP QTP/UFT&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Why do you prefer Selenium Automation Tool?&lt;/em&gt;&lt;br&gt;
It is a free and open-source tool&lt;br&gt;
It has a large user base and helping communities&lt;br&gt;
It supports cross-browser compatibility&lt;br&gt;
It supports platform compatibility&lt;br&gt;
It supports multiple programming languages&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Handling automation test cases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What type of test cases do you pick up to automate?&lt;/em&gt;&lt;br&gt;
I focus on the test cases which should be executed in a repetitive manner such as regression test cases, smoke test cases, and sanity test cases&lt;br&gt;
Read more: &lt;a href="https://www.youtube.com/watch?v=NZuzWKEnjQY"&gt;Do We Really Write Test Cases For All Testing Types&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What type of test cases you won't pick up to automate?*
Before picking up the test case to automate, I do check whether the application is stable or not. So based on this,&lt;/li&gt;
&lt;li&gt;I don't pick up test cases when the AUT changes frequently.&lt;/li&gt;
&lt;li&gt;I don't pick up the test cases which I run rarely.&lt;/li&gt;
&lt;li&gt;I don't pick up the test cases which I run only one time.&lt;/li&gt;
&lt;li&gt;I don't automate when I do usability and exploratory testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;How many test cases you have automated per day?&lt;/em&gt;&lt;br&gt;
It depends on test case scenario complexity and length. I did automate 2 to 5 test scenarios per day when the complexity is limited. Sometimes just 1 or fewer test scenarios in a day when the complexity is high&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How you build Object Repository in your project?&lt;/em&gt;&lt;br&gt;
There is no default Object Repository concept in Selenium.&lt;br&gt;
In Selenium, we call objects as locators such as ID, Name, Class Name. Tag Name, Link Text, Partial Link Text, XPath, and CSS.&lt;br&gt;
Object Repository is a collection of objects. One of the ways to create Object Repository is to place all the locators in a separate file that is a properties file.&lt;br&gt;
The best way is to use the Page Object Model. In the Page Object Model Design Pattern, each web page is represented as a class. All the objects related to a particular page of a web application are stored in a class.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: This video is contributed by &lt;a href="https://www.youtube.com/channel/UCIJGI_3XgnfUaSNQD8D2IMQ"&gt;Software Testing Materials&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More resource: &lt;a href="https://testautomationresources.com/software-testing-basics/test-automation-engineer-salary/"&gt;Software Test Automation Engineer Salary and Career Overview in 2019&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


</description>
      <category>softwaretesting</category>
      <category>automationtesting</category>
      <category>testingframeworks</category>
      <category>qa</category>
    </item>
  </channel>
</rss>
