<?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: Professional QA</title>
    <description>The latest articles on DEV Community by Professional QA (@professionalqa).</description>
    <link>https://dev.to/professionalqa</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%2F317873%2Fdcb08497-4d0c-4a7c-8a6f-222ffab9da2e.jpg</url>
      <title>DEV Community: Professional QA</title>
      <link>https://dev.to/professionalqa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/professionalqa"/>
    <language>en</language>
    <item>
      <title>Software Fault Tolerance</title>
      <dc:creator>Professional QA</dc:creator>
      <pubDate>Thu, 30 Jan 2020 10:54:06 +0000</pubDate>
      <link>https://dev.to/professionalqa/software-fault-tolerance-5hie</link>
      <guid>https://dev.to/professionalqa/software-fault-tolerance-5hie</guid>
      <description>&lt;p&gt;&lt;a href="http://www.professionalqa.com/software-fault-tolerance"&gt;Software Fault Tolerance&lt;/a&gt; is terminology dealing with testing a system’s capacity to deal with situations such as incorrect input, overloading of traffic at a given point of time, responding to a large number of requests and so on. Fault tolerance is measured as a sum total of hardware and software request and response calculation. &lt;br&gt;
During the phases of the design and development of software, a designer or a developer might skip some minor fact that could later result in some functional or design error. The simple idea underlying software fault tolerance is to check whether the system comes across any software or hardware issue. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vxmyDLrQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://www.computerhope.com/jargon/f/fault-tolerance.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vxmyDLrQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://www.computerhope.com/jargon/f/fault-tolerance.gif" alt="Software Fault Tolerance"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objectives of Software Fault Tolerance:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A major objective behind fault tolerance is to check the system’s capability to keep operating in a situation where other components may fail due to some error condition&lt;/li&gt;
&lt;li&gt;Fault tolerance is a very important factor for life-critical systems. Life critical or safety-critical systems are those, the failure of which can cause damage to life, property or any environmental damage&lt;/li&gt;
&lt;li&gt;To conduct a fault tolerance test, a fault tolerance design must be in place. Design is something which describes the test cases that presents the scenarios which the system has to undergo to be able to pass tolerance tests&lt;/li&gt;
&lt;li&gt;The software fault tolerance process is also achieved by assessing the possibility of exceptional conditions and hence structuring the system to be able to sustain errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Software tolerance techniques:&lt;/strong&gt;&lt;br&gt;
When we talk about ‘software fault tolerance’ it becomes imperative to mention ‘N-way programming’. &lt;/p&gt;

&lt;p&gt;1) &lt;strong&gt;N-way programming or N-version programming&lt;/strong&gt; is a technique by which more than one version of a program is tested independently, thus minimizing the chances of similar software faults being repeated. The core idea underlying N-version programming is to improve the reliability of operations performed by software.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How to perform N-way software fault tolerance:&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Functionality of the software is developed, such as functions, data types, algorithms for comparisons and so on as a part of the initial specification&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once a complete specification is ready, two or more versions of the program are prepared separately, having no relation to other versions. A program thus goes through N-version execution environment and surpasses every condition that validates the program capable of clearing maximum fault tolerance conditions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An execution environment can be a tool that captures the output generated by the system cross-checking them with its own set of agreements. Hence the algorithms execute, generate output and thus checks whether the output justifies tolerance conditions or not.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2) Recovery Block&lt;/strong&gt; is a method that is used to evaluate different results of the same algorithm. When an application is being tested it is broken into blocks to capture faults, if any. Each block is categorized into a primary, secondary and exceptional case in order to verify a series of conditions. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Self-checking software:&lt;/strong&gt; Self-checking software is a method by which a manual check is done as a part of an extra check on the system. It is measured by which we can be assured of the accuracy of the development and testing process that has taken place so far. &lt;/p&gt;

</description>
      <category>testing</category>
    </item>
    <item>
      <title>Complete Guide to Interrupt Testing!</title>
      <dc:creator>Professional QA</dc:creator>
      <pubDate>Thu, 30 Jan 2020 10:14:16 +0000</pubDate>
      <link>https://dev.to/professionalqa/complete-guide-to-interrupt-testing-3ea4</link>
      <guid>https://dev.to/professionalqa/complete-guide-to-interrupt-testing-3ea4</guid>
      <description>&lt;p&gt;As the name suggests, “Interrupt testing” is a way to test the system with conditions that could be a cause of disturbance while working with an application/software in the real world. &lt;/p&gt;

&lt;p&gt;Common types of interrupts are:&lt;/p&gt;

&lt;p&gt;Phone ringing while playing a game or messaging&lt;br&gt;
An incoming message while filling in details in a web form &lt;br&gt;
The device suddenly shuts down&lt;br&gt;
Switching between applications&lt;/p&gt;

&lt;p&gt;Interrupt testing is a term generally used in the context of mobile (application) testing which is used as a part of feature testing to ensure every component of the mobile, as well as applications, work in sync. &lt;/p&gt;

&lt;p&gt;The best approach towards Interrupt Testing:  &lt;/p&gt;

&lt;p&gt;1--Well-versed with end-users: The most important aspect is to understand what the end-user wants.&lt;/p&gt;

&lt;p&gt;2--Create device groups: Categorising mobile app testing scenarios into different groups having individual priority levels – low, medium and high. The idea is that as and when a new feature gets added, it reflects across the various devices in use, be it old or newer ones. Hence the latest and most advanced devices get priority over older ones in terms of verifying whether the device is performing well with new features being added. &lt;/p&gt;

&lt;p&gt;3--Go beyond traditional standards: Adhering to current standards and practices, a mobile application should be tested beyond traditional techniques such as boundary values, equivalence classes, acceptance criteria, etc. An experienced tester must thus be capable of testing beyond just a few predefined criteria. &lt;/p&gt;

&lt;p&gt;4--Test on multiple data networks: Data networks are classified as LTE, 3G or Wi-Fi over which the speed of data may vary greatly. The mentioned ones are a faster network category in comparison with slower networks like Edge or GPRS, hence the testers are expected to test the performance of a mobile application with different network settings to identify what kind of interferences are to be dealt with in a specific type of network. &lt;/p&gt;

&lt;p&gt;5--Test in different languages: Verifying the functioning of a mobile device across different languages is used to analyze whether the application is capable of supporting language used in a particular nation. Every language has a different set of characters having different sizes, therefore the length of characters is what really differs across different language sets. &lt;/p&gt;

&lt;p&gt;6--Test all hardware features: Hardware is the most essential component to test in order to verify the software functions in the desired manner. For instance, sensors such as – proximity, gyroscope, acceleration, magnetic, location, etc. are used a lot in present-day digital communication. It is important for a tester to understand the technicality involved in the operation of such aspects to be able to apply the same for testing mobile applications or mobile devices in general. So a hardware and software combination enables the proper functioning of camera, storage, microphone, display, etc., because every component is from a different manufacturer owing to different specifications.  &lt;/p&gt;

&lt;p&gt;7--Test updates and install procedures: System updates are a very common phenomenon with today’s operating systems. Every major mobile platform offers tools so that when a newer version or a feature update is released, the application which already exists in the user’s system, must reflect the update.  &lt;/p&gt;

&lt;p&gt;8--Test usability in multiple ways: By usability we mean the simplicity or ease with which a user can access the components or the user interface of any mobile application. An ideal approach to achieve this end is to query customers whether them about their preference or just to understand how they visualize an end user’s perception of an application. Thus a test must revolve around testing the simplicity of the UI in the context of ‘usability testing’.&lt;/p&gt;

&lt;p&gt;9--Restrict permissions: Permissions are granted to an application to protect user’s data. Often while downloading an application we come across a dialogue box asking about permission to access information on the phone. Thus permissions must be set in accordance with a specific application’s need to function. &lt;/p&gt;

</description>
      <category>testing</category>
    </item>
    <item>
      <title>Complete Guide to Interrupt Testing!</title>
      <dc:creator>Professional QA</dc:creator>
      <pubDate>Wed, 15 Jan 2020 09:41:59 +0000</pubDate>
      <link>https://dev.to/professionalqa/complete-guide-to-interrupt-testing-55b3</link>
      <guid>https://dev.to/professionalqa/complete-guide-to-interrupt-testing-55b3</guid>
      <description>&lt;p&gt;As the name suggests, “Interrupt Testing” is a way to test the system with conditions that could be a cause of disturbance while working with an application/software in the real world. &lt;/p&gt;

&lt;p&gt;Common types of Interrupts are:&lt;/p&gt;

&lt;p&gt;Phone ringing while playing a game or messaging&lt;br&gt;
An incoming message while filling in details in a web form &lt;br&gt;
The device suddenly shuts down&lt;br&gt;
Switching between applications&lt;/p&gt;

&lt;p&gt;Interrupt Testing is a term generally used in the context of mobile (application) testing which is used as a part of feature testing to ensure every component of the mobile, as well as applications, work in sync. &lt;/p&gt;

&lt;p&gt;The best approach towards Interrupt Testing:  &lt;/p&gt;

&lt;p&gt;1--Well-versed with end-users: The most important aspect is to understand what the end-user wants.&lt;/p&gt;

&lt;p&gt;2--Create device groups: Categorising mobile app testing scenarios into different groups having individual priority levels – low, medium and high. The idea is that as and when a new feature gets added, it reflects across the various devices in use, be it old or newer ones. Hence the latest and most advanced devices get priority over older ones in terms of verifying whether the device is performing well with new features being added. &lt;/p&gt;

&lt;p&gt;3--Go beyond traditional standards: Adhering to current standards and practices, a mobile application should be tested beyond traditional techniques such as boundary values, equivalence classes, acceptance criteria, etc. An experienced tester must thus be capable of testing beyond just a few predefined criteria. &lt;/p&gt;

&lt;p&gt;4--Test on multiple data networks: Data networks are classified as LTE, 3G or Wi-Fi over which the speed of data may vary greatly. The mentioned ones are a faster network category in comparison with slower networks like Edge or GPRS, hence the testers are expected to test the performance of a mobile application with different network settings to identify what kind of interferences are to be dealt with in a specific type of network. &lt;/p&gt;

&lt;p&gt;5--Test in different languages: Verifying the functioning of a mobile device across different languages is used to analyze whether the application is capable of supporting language used in a particular nation. Every language has a different set of characters having different sizes, therefore the length of characters is what really differs across different language sets. &lt;/p&gt;

&lt;p&gt;6--Test all hardware features: Hardware is the most essential component to test in order to verify the software functions in the desired manner. For instance, sensors such as – proximity, gyroscope, acceleration, magnetic, location, etc. are used a lot in present-day digital communication. It is important for a tester to understand the technicality involved in the operation of such aspects to be able to apply the same for testing mobile applications or mobile devices in general. So a hardware and software combination enables the proper functioning of camera, storage, microphone, display, etc., because every component is from a different manufacturer owing to different specifications.  &lt;/p&gt;

&lt;p&gt;7--Test updates and install procedures: System updates are a very common phenomenon with today’s operating systems. Every major mobile platform offers tools so that when a newer version or a feature update is released, the application which already exists in the user’s system, must reflect the update.  &lt;/p&gt;

&lt;p&gt;8--Test usability in multiple ways: By usability we mean the simplicity or ease with which a user can access the components or the user interface of any mobile application. An ideal approach to achieve this end is to query customers whether them about their preference or just to understand how they visualize an end user’s perception of an application. Thus a test must revolve around testing the simplicity of the UI in the context of ‘usability testing’.&lt;/p&gt;

&lt;p&gt;9--Restrict permissions: Permissions are granted to an application to protect user’s data. Often while downloading an application we come across a dialogue box asking about permission to access information on the phone. Thus permissions must be set in accordance with a specific application’s need to function. &lt;/p&gt;

</description>
      <category>testing</category>
    </item>
  </channel>
</rss>
