0% found this document useful (0 votes)
7 views12 pages

Unit 5 - Devops

The document discusses various types of software testing, including manual and automation testing, along with specific methodologies like white box, black box, and grey box testing. It also covers automation testing's advantages and disadvantages, the features of Selenium for web UI automation, JavaScript testing frameworks, REPL-driven development, virtualization stacks in DevOps, and the Puppet master-agent architecture. Each section highlights the importance of testing in software development and the tools and techniques used to ensure software quality.

Uploaded by

artdemios73
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views12 pages

Unit 5 - Devops

The document discusses various types of software testing, including manual and automation testing, along with specific methodologies like white box, black box, and grey box testing. It also covers automation testing's advantages and disadvantages, the features of Selenium for web UI automation, JavaScript testing frameworks, REPL-driven development, virtualization stacks in DevOps, and the Puppet master-agent architecture. Each section highlights the importance of testing in software development and the tools and techniques used to ensure software quality.

Uploaded by

artdemios73
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Types of testing, selenium and javascript testing, REPL driven development, virtualization stacks,

puppet master agent.

Types of testing

Various types of testing

Software testing involves various activities like defining a strategy, setting objectives, and creating
test deliverables to identify defects in the software.

Testing types help ensure the Application Under Test (AUT) meets requirements.

The software testing mainly divided into two parts, which are as follows:

o Manual Testing

o Automation Testing

What is Manual Testing?

Testing any software or an application according to the client's needs without using any automation
tool is known as manual testing.

Classification of Manual Testing

In software testing, manual testing can be further classified into three different types of testing,
which are as follows:

o White Box Testing


o Black Box Testing

o Grey Box Testing

White Box Testing

In white-box testing, the developer will inspect every line of code before handing it over to
the testing team or the concerned test engineers.

White box testing is also known as open box testing, glass box testing, structural testing, clear box
testing, and transparent box testing.

Black Box Testing

Another type of manual testing is black-box testing. In this testing, the test engineer will analyze the
software against requirements, identify the defects or bug, and sends it back to the development
team.

The main objective of implementing the black box testing is to specify the business needs or the
customer's requirements.

Types of Black Box Testing

Black box testing further categorizes into two parts, which are as discussed below:

o Functional Testing

o Non-function Testing

Grey Box Testing


Another part of manual testing is Grey box testing. It is a collaboration of black box and
white box testing.

Automation Testing

The most significant part of Software testing is Automation testing. It uses specific tools to
automate manual design test cases without any human interference.

Automation testing is the best way to enhance the efficiency, productivity, and coverage of
Software testing.

It is used to re-run the test scenarios, which were executed manually, quickly, and repeatedly.

Automation testing pros and cons,

Automation of testing Pros and cons


Some other types of Software Testing

In software testing, we also have some other types of testing that are not part of any above
discussed testing, but those testing are required while testing any software or an application.

o Smoke Testing

o Sanity Testing

o Regression Testing

o User Acceptance Testing

o Exploratory Testing

o Adhoc Testing

o Security Testing

o Globalization Testing

o In smoke testing, we will test an application's basic and critical features before doing
one round of deep and rigorous testing.

Sanity Testing

o It is used to ensure that all the bugs have been fixed and no added issues come into
existence due to these changes. Sanity testing is unscripted, which means we cannot
documented it. It checks the correctness of the newly added features and components.

Regression Testing

o Regression testing is the most commonly used type of software testing. Here, the
term regression implies that we have to re-test those parts of an unaffected
application.

o Regression testing is the most suitable testing for automation tools. As per the project
type and accessibility of resources, regression testing can be similar to Retesting.

User Acceptance Testing

o The User acceptance testing (UAT) is done by the individual team known as domain
expert/customer or the client. And knowing the application before accepting the final
product is called as user acceptance testing.

Exploratory Testing
o Whenever the requirement is missing, early iteration is required, and the testing team
has experienced testers when we have a critical application. New test engineer entered
into the team then we go for the exploratory testing.

Adhoc Testing

o Testing the application randomly as soon as the build is in the checked sequence is
known as Adhoc testing.

Security Testing

o It is an essential part of software testing, used to determine the weakness, risks, or


threats in the software application.

Globalization Testing

o Another type of software testing is Globalization testing. Globalization testing is


used to check the developed software for multiple languages or not. Here, the
words globalization means enlightening the application or software for various
languages.

Automation of testing Pros and cons

Pros of Automated Testing:

Automated Testing has the following advantages:

1. Automated testing improves the coverage of testing as automated execution of test


cases is faster than manual execution.

2. Automated testing reduces the dependability of testing on the availability of the test
engineers.

3. Automated testing provides round the clock coverage as automated tests can be run all
time in 24*7 environment.

4. Automated testing takes far less resources in execution as compared to manual


testing.

5. It helps to train the test engineers to increase their knowledge by producing a


repository of different tests.
6. It helps in testing which is not possible without automation such as reliability testing,
stress testing, load and performance testing.

7. It includes all other activities like selecting the right product build, generating the
right test data and analyzing the results.

8. It acts as test data generator and produces maximum test data to cover a large number
of input and expected output for result comparison.

9. Automated testing has less chances of error hence more reliable.

10. As with automated testing test engineers have free time and can focus on other
creative tasks.

Cons of Automated Testing :

Automated Testing has the following disadvantages:

1. Automated testing is very much expensive than the manual testing.

2. It also becomes inconvenient and burdensome as to decide who would automate and
who would train.

3. It has limited to some organisations as many organisations not prefer test automation.

4. Automated testing would also require additionally trained and skilled people.

5. Automated testing only removes the mechanical execution of testing process, but
creation of test cases still required testing professionals.
Selenium features,

Selenium is one of the most widely used open source Web UI (User Interface) automation testing
suite. It was originally developed by Jason Huggins in 2004 as an internal tool at Thought Works.
Selenium supports automation across different browsers, platforms and programming languages.

Selenium can be easily deployed on platforms such as Windows, Linux, Solaris and Macintosh.
Moreover, it supports OS (Operating System) for mobile applications like iOS, windows mobile and
android.

Selenium Features

o Selenium is an open source and portable Web testing Framework.

o Selenium IDE provides a playback and record feature for authoring tests without the need to
learn a test scripting language.

o It can be considered as the leading cloud-based testing platform which helps testers to
record their actions and export them as a reusable script with a simple-to-understand and
easy-to-use interface.

o Selenium supports various operating systems, browsers and programming languages.


Following is the list:

o Programming Languages: C#, Java, Python, PHP, Ruby, Perl, and JavaScript

o Operating Systems: Android, iOS, Windows, Linux, Mac, Solaris.

o Browsers: Google Chrome, Mozilla Firefox, Internet Explorer, Edge, Opera, Safari, etc.

o It also supports parallel test execution which reduces time and increases the efficiency of
tests.

o Selenium can be integrated with frameworks like Ant and Maven for source code
compilation.

o Selenium can also be integrated with testing frameworks like TestNG for application testing
and generating rseports.
o Selenium requires fewer resources as compared to other automation test tools.

o WebDriver API has been indulged in selenium whichis one of the most important
modifications done to selenium.

o Selenium web driver does not require server installation, test scripts interact directly with
the browser.

o Selenium commands are categorized in terms of different classes which make it easier to
understand and implement.
JavaScript testing

JavaScript testing is a crucial part of the software development process that helps ensure the quality
and reliability of code. The following are the key components of JavaScript testing:

Test frameworks: A test framework provides a structure for writing and organizing tests. Some
popular JavaScript test frameworks include Jest, Mocha, and Jasmine.

Assertion libraries: An assertion library provides a set of functions that allow developers to write
assertions about the expected behavior of the code. For example, an assertion might check that a
certain function returns the expected result.

Test suites: A test suite is a collection of related tests that are grouped together. The purpose of a
test suite is to test a specific aspect of the code in isolation.

Test cases: A test case is a single test that verifies a specific aspect of the code. For example, a test
case might check that a function behaves correctly when given a certain input.

Test runners: A test runner is a tool that runs the tests and provides feedback on the results. Test
runners typically provide a report on which tests passed and which tests failed.

Continuous Integration (CI): CI is a software development practice where developers integrate code
into a shared repository frequently. By using CI, developers can catch issues early and avoid
integration problems.

The goal of JavaScript testing is to catch bugs and defects early in the development cycle, before they
become bigger problems and impact the quality of the software. Testing also helps to ensure that the
code behaves as expected, even when changes are made in the future.

There are different types of tests that can be performed in JavaScript, including unit tests, integration
tests, and end-to-end tests. The choice of which tests to write depends on the specific requirements
and goals of the project.
REPL-driven development,

REPL-driven development (Read-Eval-Print Loop) is an interactive programming approach that allows


developers to execute code snippets and see their results immediately. This enables developers to
test their code quickly and iteratively, and helps them to understand the behavior of their code as
they work.

In a REPL environment, developers can type in code snippets, and the environment will immediately
evaluate the code and return the results. This allows developers to test small bits of code and quickly
see the results, without having to create a full-fledged application.

REPL-driven development is commonly used in dynamic programming languages such as Python,


JavaScript, and Ruby. Some popular REPL environments include the Python REPL, Node.js REPL, and
IRB (Interactive Ruby).

Benefits of REPL-driven development include:

Increased efficiency: The immediate feedback provided by a REPL environment allows developers to
test and modify their code quickly, without having to run a full-fledged application.

Improved understanding: By being able to see the results of code snippets immediately, developers
can better understand how the code works and identify any issues early on.

Increased collaboration: REPL-driven development makes it easy for developers to share code
snippets and collaborate on projects, as they can demonstrate the behavior of the code quickly and
easily.

virtualization stacks

In DevOps, virtualization refers to the creation of virtual machines, containers, or environments that
allow multiple operating systems to run on a single physical machine. The following are some of the
commonly used virtualization stacks in DevOps:

Docker: An open-source platform for automating the deployment, scaling, and management of
containerized applications.

Kubernetes: An open-source platform for automating the deployment, scaling, and management of
containerized applications, commonly used in conjunction with Docker.

VirtualBox: An open-source virtualization software that allows multiple operating systems to run on
a single physical machine.

VMware: A commercial virtualization software that provides a comprehensive suite of tools for
virtualization, cloud computing, and network and security management.

Hyper-V: Microsoft's hypervisor technology that enables virtualization on Windows-based systems.

These virtualization stacks play a crucial role in DevOps by allowing developers to build, test, and
deploy applications in isolated, consistent environments, while reducing the costs and complexities
associated with physical infrastructure.
puppet master agent

Puppet master and agents:

Puppet Architecture

Puppet uses master-slave or client-server architecture. Puppet client and server interconnected by
SSL, which is a secure socket layer. It is a model-driven system.

Here, the client is referred to as a Puppet agent/slave/node, and the server is referred to as a Puppet
master.

Let's see the components of Puppet architecture:

Puppet Master

Puppet master handles all the configuration related process in the form of puppet codes. It is a Linux
based system in which puppet master software is installed. The puppet master must be in Linux. It
uses the puppet agent to apply the configuration to nodes.

This is the place where SSL certificates are checked and marked.

Puppet Slave or Agent

Puppet agents are the real working systems and used by the Client. It is installed on the client
machine and maintained and managed by the puppet master. They have a puppet agent service
running inside them.

The agent machine can be configured on any operating system such as Windows, Linux, Solaris, or
Mac OS.

Config Repository

Config repository is the storage area where all the servers and nodes related configurations are
stored, and we can pull these configurations as per requirements.
Facts

Facts are the key-value data pair. It contains information about the node or the master machine. It
represents a puppet client states such as operating system, network interface, IP address, uptime,
and whether the client machine is virtual or not.

These facts are used for determining the present state of any agent. Changes on any target machine
are made based on facts. Puppet's facts are predefined and customized.

Catalog

The entire configuration and manifest files that are written in Puppet are changed into a compiled
format. This compiled format is known as a catalog, and then we can apply this catalog to the target
machine.

The above image performs the following functions:

o First of all, an agent node sends facts to the master or server and requests for a catalog.

o The master or server compiles and returns the catalog of a node with the help of some
information accessed by the master.

o Then the agent applies the catalog to the node by checking every resource mentioned in the
catalog. If it identifies resources that are not in their desired state, then makes the necessary
adjustments to fix them. Or, it determines in no-op mode, the adjustments would be
required to reconcile the catalog.

o And finally, the agent sends a report back to the master.

You might also like