<?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>Forem: jinsicaroline</title>
    <description>The latest articles on Forem by jinsicaroline (@jinsicaroline).</description>
    <link>https://forem.com/jinsicaroline</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%2F1141525%2F1667a87d-c089-41cb-b491-9e6e0f057d7b.png</url>
      <title>Forem: jinsicaroline</title>
      <link>https://forem.com/jinsicaroline</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jinsicaroline"/>
    <language>en</language>
    <item>
      <title>Task 18:1.Describe Python Selenium architecture in detail 2. What is the significance of Python virtual Environment</title>
      <dc:creator>jinsicaroline</dc:creator>
      <pubDate>Wed, 13 Dec 2023 18:00:20 +0000</pubDate>
      <link>https://forem.com/jinsicaroline/task-181describe-python-selenium-architecture-in-detail-2-what-is-the-significance-of-python-virtual-environment-5hcp</link>
      <guid>https://forem.com/jinsicaroline/task-181describe-python-selenium-architecture-in-detail-2-what-is-the-significance-of-python-virtual-environment-5hcp</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Architecture of Selenium WebDriver(Selenium 3)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selenium WebDriver Architecture is made up of four major components: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Selenium Client library: Selenium supports multiple libraries such as Ruby, Python, Java, etc as language bindings.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.JSON wire protocol over HTTP: JSON is an acronym for JavaScript Object Notation. It is an open standard that provides a transport mechanism for transferring data between client and server on the web.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Browser Drivers: Selenium browser drivers are native to each browser, interacting with the browser by establishing a secure connection. Selenium supports browser drivers such as ChromeDriver, GeckoDriver, Microsoft Edge WebDriver, SafariDriver, and InternetExplorerDriver.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Browsers: Selenium supports multiple browsers like Chrome, Firefox, Safari, Internet Explorer, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The architecture of Selenium WebDriver (Selenium 3)&lt;/p&gt;

&lt;p&gt;It is an open standard that provides a transport mechanism for transferring data between client and server on the web. &lt;br&gt;
Browser Drivers: Selenium browser drivers are native to each browser, interacting with the browser by establishing a secure connection&lt;/p&gt;

&lt;p&gt;selenium client-----&amp;gt;JSON wire ---&amp;gt;Browser-------&amp;gt;     Real&lt;br&gt;
Libraries            Protocol      drivers          Browsers&lt;br&gt;
(Python, C#, Java)                (Chrome Driver,      (Chrome,&lt;br&gt;
                                Firefox Driver,       firefox)&lt;br&gt;&lt;br&gt;
                                InternetExplorer,&lt;br&gt;&lt;br&gt;
                                Microsoft Edge driver)  &lt;/p&gt;

&lt;p&gt;In Selenium 3, the client libraries (Java, Python, JavaScript, etc.) do not directly communicate with the browser drivers. The browser drivers only understand the protocols and not the language used by the client libraries. Similarly, the client libraries do not understand the protocols used by the browser drivers. &lt;/p&gt;

&lt;p&gt;JSON Wire protocol is a mediator between client and server to encode and decode requests and responses.&lt;br&gt;
................................................................&lt;br&gt;
The architecture of Selenium 4 WebDriver:&lt;/p&gt;

&lt;p&gt;The architecture of Selenium 4 is similar to Selenium 3, however, it uses W3C protocol instead of JSON wire protocol for communication between Client Libraries and Browser Drivers.&lt;/p&gt;

&lt;p&gt;Selenium client &lt;br&gt;
libraries      ---&amp;gt;      W3C protocol--&amp;gt;Browser---&amp;gt; Real &lt;br&gt;
(Python, Ruby, java, etc)                Drivers    Browsers&lt;/p&gt;

&lt;p&gt;W3C stands for World Wide Web Consortium.&lt;br&gt;
It develops and maintains standards and guidelines for the World Wide Web.&lt;br&gt;
It creates open standards and specifications that promote compatibility and consistency across various web technologies and platforms.&lt;br&gt;
Selenium 4 WebDriver now complies with W3C standards for improved communication between client libraries and browser drivers, leading to greater stability.&lt;br&gt;
..................................................................2.Significance of Python virtual environment&lt;/p&gt;

&lt;p&gt;The Python virtual environment is an important tool for maintaining project-specific environments. It helps prevent dependency issues, improves version compatibility, and aids in managing, sharing, testing, and deploying Python projects. Here are some of the main reasons why Python virtual environments are essential:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Dependency isolation: &lt;br&gt;
  In case a user has multiple projects, each project may require different dependencies. Creating separate virtual environments ensures that each project can work independently without any clashes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Version Compatibility: &lt;br&gt;
 The virtual environment ensures correct project execution by using specific library and package versions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Project Portability: &lt;br&gt;
 A virtual environment allows users to easily transfer their projects from one machine to another. This is particularly useful when multiple people are working on the same project and need to work on it independently on their own machines. By sharing the code along with all necessary dependencies and requirements, everyone can work on the project seamlessly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easy testing and deployment: &lt;br&gt;
 It ensures that a project uses a well-defined set of dependencies, making testing and deployment easier.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>selenium</category>
      <category>automation</category>
    </item>
    <item>
      <title>Task 15: What is selenium? Why do we use selenium for automation?</title>
      <dc:creator>jinsicaroline</dc:creator>
      <pubDate>Fri, 08 Dec 2023 10:22:30 +0000</pubDate>
      <link>https://forem.com/jinsicaroline/task-15-what-is-selenium-why-do-we-use-selenium-for-automation-2cd2</link>
      <guid>https://forem.com/jinsicaroline/task-15-what-is-selenium-why-do-we-use-selenium-for-automation-2cd2</guid>
      <description>&lt;p&gt;Selenium is a popular framework that allows developers to automate web applications. It is a powerful tool that can help improve the efficiency and accuracy of testing processes.&lt;br&gt;
"Frameworks are a method of representing applications.".&lt;br&gt;
Selenium supports several programming languages including C#, Ruby, Python, and Java.&lt;/p&gt;

&lt;p&gt;Advantages of using selenium:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Language and framework support:&lt;br&gt;
*"Support for different programming languages and frameworks."&lt;br&gt;
*Selenium supports all major languages like Java, Python, JavaScript, C#, Ruby, and Pearl for software test automation. &lt;br&gt;
You can write your steps in any of these programming languages, and Selenium will convert it into a Selenium-compatible course in no time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open source availability&lt;br&gt;
*"It is a platform that is open-source, which means that it is accessible to anyone who wishes to use it."&lt;br&gt;
*Work can be saved here and used for other beneficial purposes.&lt;br&gt;
The Selenium community is always willing to assist developers and software engineers in automating web browser capabilities and functionality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Multi-browser support&lt;br&gt;
*"This software is compatible with several web browsers and can be used across various operating systems."&lt;br&gt;
*You must not write a script for every browser as just one script is required for all browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support across various operations&lt;br&gt;
*"The software's ease of implementation makes it user-friendly and simple to use."&lt;br&gt;
*Selenium is a highly profitable tool supporting and could work across different operating systems like Windows, Linux, Mac OS, Unix, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ease of Implementation&lt;br&gt;
*Improving the reusability and integration of CI/CD processes can streamline software development and deployment.&lt;br&gt;
*The Selenium automation framework is very easy to use as it provides a user-friendly interface &lt;br&gt;
that helps users create and execute test scripts easily and effectively. &lt;br&gt;
*You can also watch while the test runs analyze detailed reports of the selenium test and take follow-up actions. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reusability and Integrations:&lt;br&gt;
*It is more flexible, and efficient, and can run numerous test cases, requiring less hardware usage.&lt;br&gt;
*The Selenium automation test used is usable and could be tested across multiple browsers and operating systems. &lt;br&gt;
Nevertheless, the twist is that Selenium isn’t an all-inclusive web automation testing tool. &lt;br&gt;
*Therefore it requires third-party frameworks and add-ons for broadening the scope of testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexibility&lt;br&gt;
*Test management is very important in the testing life cycle, and it becomes easier and more efficient by using Selenium features like regrouping and retracting test cases. &lt;br&gt;
*It helps developers and testers in quick changes to the code, reducing duplication, &lt;br&gt;
minimizing complications, and improving maintainability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Parallel test execution and faster market launch&lt;br&gt;
*The main pillar of automated testing is saving time and effort. &lt;br&gt;
*With the guidance of the Selenium grid, you can execute multiple tests in parallel and reduce the test execution time. &lt;br&gt;
*With cloud rates for cross-browser testing, you can test across hundreds of browsers in parallel by using Selenium.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Less Hardware Usage&lt;br&gt;
*You will find that Selenium requires less hardware than other testing tools &lt;br&gt;
*if you compare it with others when the focus automation tools like QTP, UFT, SilkTest, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easy to Learn and Use&lt;br&gt;
*Selenium scripts are not something like writing a hundred-page complex algorithm. &lt;br&gt;
*Writing Selenium scripts is not more than writing a few courses for automating your website functionalities.  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selenium versions being used:&lt;br&gt;
  *Selenium2&lt;br&gt;
  *Selenium3&lt;/p&gt;

&lt;p&gt;The current version is used in Selenium4.&lt;/p&gt;

&lt;p&gt;The different components of selenium are:&lt;br&gt;
  *Selenium Software is not just a single tool but a suite of software, &lt;br&gt;
  *Each piece caters to different Selenium QA testing needs of an organization. Here is the list of tools &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Selenium IDE(Integrated Development Environment)

&lt;ul&gt;
&lt;li&gt;"The framework is incredibly easy to use and doesn't require any knowledge of coding languages."&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;This software is compatible with all operating systems and web browsers, including Internet Explorer, Microsoft Edge, Google Chrome, Safari, and Firefox.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.Selenium RC(Remote Control)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It supports all coding languages (e.g. Java, C#, Python, Ruby, and Perl) and browsers (Chrome, Edge, Internet Explorer, and Firefox) on the Windows operating system. The code is robust.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Selenium Webdriver&lt;br&gt;
To use a certain programming language in designing your test case.&lt;br&gt;
To test applications that are rich in AJAX-based functionalities.&lt;br&gt;
To execute tests on the HtmlUnit browser.&lt;br&gt;
To create customized test results.&lt;br&gt;
Our platform supports multiple languages, browsers, and APIs.&lt;br&gt;
In comparison to Selenium IDE and RC, Selenium WebDriver establishes direct communication with the web browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium Grid&lt;br&gt;
"It is a combination of both Selenium Grid and Selenium RC."&lt;br&gt;
"Parallel execution allows multiple browsers to run simultaneously."&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Features:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enables simultaneous running of tests in multiple browsers and environments.&lt;/li&gt;
&lt;li&gt;Saves time enormously.&lt;/li&gt;
&lt;li&gt;Utilizes the hub-and-nodes concept. The hub acts as a central source of Selenium commands to each node connected to it.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>selenium</category>
      <category>automation</category>
      <category>beginners</category>
      <category>python</category>
    </item>
    <item>
      <title>Task4-Manual Testing,benefits &amp; Drawbacks</title>
      <dc:creator>jinsicaroline</dc:creator>
      <pubDate>Thu, 07 Sep 2023 18:34:03 +0000</pubDate>
      <link>https://forem.com/jinsicaroline/task4-manual-testingbenefits-drawbacks-350c</link>
      <guid>https://forem.com/jinsicaroline/task4-manual-testingbenefits-drawbacks-350c</guid>
      <description>&lt;p&gt;Manual Testing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It's a type of testing that involves validation and 
requirements of an application by executing it using a set of test cases that are tested manually without using any automated tool.
2.Manual testing aims to identify software application 
bugs,issues,and defects.
3.It is the most primitive technique of all the testing types 
which helps to find the critical bugs in the application.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The types of manual testing are:&lt;/p&gt;

&lt;p&gt;1.whitebox testing:&lt;br&gt;
   This testing is performed at the unit level and is also known as clear box,structural and glass box testing.&lt;br&gt;
In this type of testing,the testers will use the programming skills to design the test case.&lt;/p&gt;

&lt;p&gt;2.Black box testing:&lt;br&gt;
    Black box testing can be applied to all levels of the testing.That is like integration,unit,acceptance and system testing.&lt;br&gt;
Here the testers access the functionality of the software&lt;br&gt;
application.&lt;/p&gt;

&lt;p&gt;3.Acceptance testing:&lt;br&gt;
    It is also known as pre-production testing.&lt;br&gt;
Along with testers,end users perform testing for validating the functionality of the application.&lt;br&gt;
After completing the testing successfully,a formal testing is conducted to decide whether the application is built according to the requirement.&lt;/p&gt;

&lt;p&gt;4.Unit testing:&lt;br&gt;
   It is also known as component testing or module testing.&lt;br&gt;
it is carried out to verify whether the particular module or unit peice of code is working properly or not.&lt;br&gt;
it is usually performed by the developers.&lt;/p&gt;

&lt;p&gt;5.System testing:&lt;br&gt;
    It verifies the entire system to ensure that the application works as planned.&lt;br&gt;
It is the process of testing a completely integrated application and its defined requirements,also known as end-to-end testing.&lt;/p&gt;

&lt;p&gt;6.Integration testing:&lt;br&gt;
    It is the mechanism of testing the software between the two software modules.&lt;br&gt;
It is done by various approaches called the top-down approach,Bottom-up approach,and the big-bang approach.&lt;/p&gt;

&lt;p&gt;The Benefits and drawbacks of manual testing:&lt;/p&gt;

&lt;p&gt;Benefits:&lt;br&gt;
1.It detects almost every bug and issues of the software application.&lt;br&gt;
2.Testers can access visual components like layout,and text,and also identify the UI and UX issues&lt;br&gt;
3.If we are making any changes to the application so that it can be adopted easily.&lt;br&gt;
4.As we do not use any high-level language or any type of tools,it will be a low-cost operation.&lt;/p&gt;

&lt;p&gt;Drawbacks:&lt;br&gt;
1.The primary disadvantage is,that it is time-consuming.&lt;br&gt;
2.It is not easy to discover the size difference between GUI objects.&lt;br&gt;
3.Regression test cases are time-consuming.&lt;br&gt;
4.Performance and load testing are impossible.&lt;/p&gt;

&lt;p&gt;A Simple example of manual testing would be login screen-we could test quite a few scenarios that are enlisted below:&lt;br&gt;
1.checking if Both username and password are entered and not blank.&lt;br&gt;
2.Verifying if screen navigates to next page incase valid login credentials are provided.&lt;br&gt;
3.Incase of invalid login,ensure system doesn't navigates further,but display error message.&lt;br&gt;
4.checking the maximum possible length of login and password fields. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>manualtesti</category>
      <category>learning</category>
    </item>
    <item>
      <title>Task2-BVA,Decisiontable,usecase,LCSAJ</title>
      <dc:creator>jinsicaroline</dc:creator>
      <pubDate>Fri, 25 Aug 2023 17:26:25 +0000</pubDate>
      <link>https://forem.com/jinsicaroline/task2-bvadecisiontableusecaselcsaj-cmp</link>
      <guid>https://forem.com/jinsicaroline/task2-bvadecisiontableusecaselcsaj-cmp</guid>
      <description>&lt;p&gt;Boundary value analysis:&lt;/p&gt;

&lt;p&gt;It is used to identify errors at boundaries rather than finding it in the center of the input domain.&lt;br&gt;
It is one of the widely used test case design techniques.&lt;br&gt;
It is believed that the input values at the extreme ends of the input domain cause more errors in the system.&lt;br&gt;
Boundary values could be maximum-minimum,lower-upper,start-end.&lt;/p&gt;

&lt;p&gt;Decision table testing:&lt;/p&gt;

&lt;p&gt;It is a software testing approach to validate the system's behavior for various combinations of inputs.&lt;br&gt;
It consists of data on various rules, test conditions and inputs by the tester.&lt;br&gt;
With the help of this table, it is useful for a tester to test all the combinations of the software.&lt;/p&gt;

&lt;p&gt;Use case testing:&lt;/p&gt;

&lt;p&gt;use case testing is a type of black box testing helps in identifying the test cases.&lt;br&gt;
this type of testing,use cases are written before the development phase begins.&lt;/p&gt;

&lt;p&gt;LCSAJ testing:&lt;/p&gt;

&lt;p&gt;LCSAJ stands for Linear code sequence and jump.&lt;br&gt;
it is also called white-box testing for the code coverage.&lt;br&gt;
It also determines what percentage of the code is executed with the existing test cases.&lt;br&gt;
It helps in designing the new test case that can increase the code coverage, once the code coverage reaches to certain level we can stop the testing.&lt;br&gt;
This methodology helps when to stop the testing of the software..&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>manualtesting</category>
      <category>learning</category>
    </item>
    <item>
      <title>Task3-Functional &amp; Non-functional testing</title>
      <dc:creator>jinsicaroline</dc:creator>
      <pubDate>Fri, 25 Aug 2023 12:43:34 +0000</pubDate>
      <link>https://forem.com/jinsicaroline/task3-functional-non-functional-testing-3oea</link>
      <guid>https://forem.com/jinsicaroline/task3-functional-non-functional-testing-3oea</guid>
      <description>&lt;p&gt;Functional Testing:&lt;/p&gt;

&lt;p&gt;Functional testing is the testing of software or an application, which is done to verify an application's functionality. &lt;br&gt;
It is a kind of Black box testing that tests whether the application or the software is working as expected.&lt;br&gt;
Blackbox testing is done manually and it is very effective in finding out bugs.&lt;br&gt;
Based on the requirement of the client, a document is prepared as a guide to test the software or the application, which is called software specification or requirement specification.&lt;/p&gt;

&lt;p&gt;Below are the various types of functional testing:&lt;/p&gt;

&lt;p&gt;1.Unit testing:&lt;br&gt;
The developers usually perform unit testing to check their unit of codes to achieve a particular functionality.&lt;/p&gt;

&lt;p&gt;2.Sanity testing:&lt;br&gt;
sanity testing is done to check if all the major functionalities of the software or application are working as expected.&lt;/p&gt;

&lt;p&gt;3.Smoke testing:&lt;br&gt;
smoke testing is done when the new build is released to ensure that the build is stable or not.&lt;/p&gt;

&lt;p&gt;4.Regression testing:&lt;br&gt;
regression testing is to check if the existing functionality still works according to the specifications after adding new code and fixing bugs.&lt;/p&gt;

&lt;p&gt;5.Integration testing:&lt;br&gt;
when the individual modules are clubbed together to achieve an end-to-end scenario. &lt;/p&gt;

&lt;p&gt;Non-functional testing:&lt;/p&gt;

&lt;p&gt;In non-functional testing it accesses the application properties and verifies the application's performance, reliability and usability.&lt;br&gt;
it checks for the behaviour of the software at various load conditions to check for the performance.&lt;br&gt;
ex: JMeter, loadmeter which dynamically creates IP addresses.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>manualtesting</category>
      <category>learning</category>
    </item>
    <item>
      <title>Software Testing</title>
      <dc:creator>jinsicaroline</dc:creator>
      <pubDate>Fri, 18 Aug 2023 16:34:32 +0000</pubDate>
      <link>https://forem.com/jinsicaroline/software-testing-ebj</link>
      <guid>https://forem.com/jinsicaroline/software-testing-ebj</guid>
      <description>&lt;p&gt;Software testing is the process of testing an application or a software product to make sure that it is error free.&lt;br&gt;
Testing can be done manually by checking the functionality of the application, or writing a piece of automation code.&lt;br&gt;
Testing is not only finding the defects, but it also helps the application to be reliable and secure.&lt;br&gt;
Due to this, the performance of the application can be improved.&lt;/p&gt;

&lt;p&gt;Typically testing is classified into three types:&lt;br&gt;
1.Functional testing, 2.Non-functional testing, 3.Maintenance &lt;/p&gt;

&lt;p&gt;Under functional testing there is unit testing, Integration testing and system testing.&lt;br&gt;
Unit testing: It helps the developer to test the unit of code &lt;br&gt;
is working properly or not.&lt;br&gt;
integration testing: It focuses on the construction and design of the software.&lt;/p&gt;

&lt;p&gt;Under non-functional testing it checks for the performance, load, scalability, volume, and usability.&lt;/p&gt;

&lt;p&gt;Under maintenance, regression testing will be done.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
