Select Page

Category Selected: Software Testing

128 results Found


People also read

Software Development

Third Party Integration Service for Success

Software Tetsing

Essential Test Cases for Payroll Management System.

Automation Testing

Selenium AI-based testing with Java

Talk to our Experts

Amazing clients who
trust us


poloatto
ABB
polaris
ooredo
stryker
mobility
What can a tester do with the Chrome DevTools Console panel?

What can a tester do with the Chrome DevTools Console panel?

Chrome DevTools has several panels – Elements, Console, Sources, Network, Performance, Memory, Application, Security, and Audits. Today you are going to learn DevTools’ Console panel from a testing perspective.

What can you see in the Console panel? You can access error messages which are thrown by the parser. Sometimes the web application under test may not show errors on the UI. However, you may see JavaScript error messages in the console panel.

The errors are not show-stoppers or creating issues. Why should I bother? If the pages are error-free, there are some benefits you can reap.

  • When a website is error-free, it will improve SEO.
  • The errors may not create any issues now. However, when you add new snippets in the JavaScript files, it may produce unexpected issues. It is better to have an error-free Console panel for all the pages so that the developers can add new scripts confidently.

As a software tester, you must report JavaScript parser errors, which you see in the Chrome DevTools Console panel. When you notice an error, you will have to check from which JS file it is originated.

You can get the source file information at the right-side of the Console panel.

Chrome DevTools Console

There are three types of messages Chrome DevTools shows – Informational, Warning, and Error. Informational Message is displayed without any background color. Warning message in Yellow and Error in Red background color.

If you want to view only Error messages, you can select ‘Errors’ in the ‘Default Levels’ drop-down.

Console’s Command Prompt

Console panel has its Command prompt. It is a node command prompt. If you want to run any JavaScript snippets on a webpage, you can use this command prompt. Where can I find the command prompt? You can find the command line cursor below the log messages.

Chrome DevTools Command Prompt

Selecting Elements

Everyone is aware that we can search elements in the Elements panel using XPath/CSS Selector. However, you can select an element in the DevTools Console panel as well. If you know about the ‘document.querySelector’ method, then it is straight-forward.

‘document.querySelector’ method accepts a CSS selector as an argument, and it selects only one element. If you want to select multiple elements, use the ‘document.querySelectorAll’ method in Console’s command prompt.

Using the ‘document.querySelector’ method, it returns one element, and you can focus on that element without any distraction. Whereas in Elements panel, it just highlights the selected element.

Selenium Chrome DevTools Protocol (CDP)

Now Selenium 4 has support to listen Console log messages. Manually, you can open the console panel and monitor the logs. However, in automation testing, there was no way to listen the logs.

DevTools devTools = driver.getDevTools();
devTools.createSessionIfThereIsNotOne();
devTools.clearListeners();

devTools.send(Log.enable());
 
devTools.addListener(Log.entryAdded(), logEntry -> {
System.out.println(logEntry.getText().contains("404"));
        });
 
driver.get("https://codoid.com/fafafafsasf");

In Selenium 4, using Chrome DevTools Protocol, you can listen the logs. Refer to the below code. Note: Selenium 4 is not released yet. We have used Selenium 4 alpha version to accomplish the snippet.

In Conclusion

As a QA Company, we use the Chrome Console panel to access logs messages and report the errors to our clients’ developers. In the subsequent blog articles, we will be publishing on Chrome DevTools’ other panels.

Continuous Testing in the Retail Industry

Continuous Testing in the Retail Industry

With the rapid changes in technology, the digitization across the business sectors had a tremendous impact on the retail industry. The retail sectors have been the most affected by the rapid digitization moves and changes among the business sectors. At the front end, the continuous Retail Testing Services includes stable and user-friendly customer experience. On the other hand, if we talk about the back end, then the Retail Testing Services has a transaction data load.

For the entire retail industry, the center of the business is primarily the customer experience. If the customer has a bad experience with the mobile app or storefront, it would significantly impact the customers’ experience. It will indeed affect the bottom line of the business as well.

The retail industry is continuously facing significant challenges due to the digitization process in today’s date. All businesses in the retail sector face many challenges. The challenges are met at both the application and the business level. Therefore, continuous testing in the retail industry is a must in order to fix all those challenges, thus ensuring the success of the retail industries.

What Is Continuous Testing?

Continuous testing is a process that involves the testing of the software at every stage of the software development cycle. The main and primary goal of continuous testing is to evaluate software quality at every step of the ongoing delivery process by testing often and testing early. Incorporating continuous testing in the retail industry is a great way to ensure that all the products are released to the market at the quality customer expect.

In other words, we can say that continuous testing is a software testing type in which the product is often and early evaluated throughout the entire ongoing delivery process. The process of constant testing enables constant feedback for the developers to fix all the bugs before being released to production. This process will increase the time to market for the retail industries but will also improve the quality that the customers expect.

Why Involve Continuous Testing In the Retail Industry

The testing of the omnichannel retailing model has increased the business via online technologies. It is essential for retailers to remain relevant in the present industry. The testing of the omnichannel and versatile retail sector is critical in order to deliver a consistent, reliable, and incorporated customer encounter.

Therefore, to create digital confidence among all the retail industry customers, it becomes essential to start with Retail Testing Services. If you want to know why to involve Continuous testing in the retail sector, then below mentioned are the reasons that will support its involvement:

Customer Experience Needs To Be Guaranteed: With the digital channels’ advancement, the customers find it really easy to access the products. Therefore, a retail industry needs to offer positive customer experience both on mobile application and in store. The customers’ main aim is to be able to shop anytime, anywhere without facing any issues. So, problems like slow apps, downtime, bugs, etc., will leave the customers with a bad experience.

Thus with continuous testing, it becomes very easy to check the software regressions, performance issues, and bugs. The outcome of catching bugs early will reduce the chances that these bugs will make it into production. Therefore, the process of continuous testing promises to offer an excellent customer experience with fewer bugs and enhanced performance.

Early Bug Detection Ensures Resource And Time Saving: The most important benefit offered by the process of continuous testing is that it helps in saving resources and time of the retail industry. The traditional approach of testing was very time consuming and confusing. The bugs can be detected by running the tests earlier under continuous testing before bundling up the new features. The early detection of bugs thus allows the developer to make necessary changes before time. Therefore the bugs can be corrected with less effort without wasting time on the other teams involves.

Thus, continuous testing helps the retail industry save their valuable resources and time by early bug detection.

Traditional Or Human Testing Is Not Sufficient: The human testing of the retailing industry software is not enough, and hence there arises the need for continuous testing. The changes in the software can have various unanticipated and unexpected side effects. Therefore, the testing must be utterly comprehensive in order to bring protection.

With each new release, it becomes essential to implement continuous testing throughout the entire pipeline. This will ultimately allow the retail industry to guarantee an excellent user experience prior to each of its releases. Therefore, with continuous testing, the test runs’ quality can be improved, thus improving the customer experience. It will altogether eliminate the need for traditional or human testing, which was very time consuming and creates many errors during the testing process.

Retail Industry Software Needs To Progress Constantly: As we all know, the advancement of technologies really calls for the need to develop and evolve the software continuously. One of the significant differences between the traditional product and the software is that it is always changing. With the variety of software products now, they are obligated to continuous evolvement after its release.

With continuous testing, you can make various changes and improvements even after the release, whether it involves redesigning the user interface or an improvement in the machine learning or artificial intelligence algorithms, all this with the primary motive of providing a flawless and unblemished customer experience.

Why Retail Industry Should Not Miss Out On Continuous Testing

With the digitization of services adding values to the retail industry, it is equally important to involve the process of software testing as well. The concept of continuous testing originated from the need to introduce the process of testing the software right from the beginning of the software development cycle and keep the software updated for frequent releases.

The retail industry should not miss out on continuous testing because of the following reasons:

  • Continuous testing helps to reduce application bound risk
  • Continuous testing enables the faster release
  • Continuous testing helps in improving the test coverage
  • Continuous testing helps in bringing consistency
  • Continuous testing cuts the downtime taken for Code Review
  • Continuous testing enables more transparency

The Bottom Line

As you have come to the article’s bottom line, have you realized how necessary continuous testing is? Be it a Retail industry or any other business industry, the process of constant testing plays a vital role at every step in the software development lifecycle. From bug detection to excellent customer experience continuous, testing holds major importance in the Retail Sector.

Mandatory Skills Required to Become a Machine Learning or AI Engineer

Mandatory Skills Required to Become a Machine Learning or AI Engineer

Becoming a successful machine learning/artificial intelligence engineer, there are certain numbers of skills required to stir a prosperous career in the field of ML/AI. Having adept about the subject of matter, understanding essential requirements and the fundamentals necessary to build a successful career in the field of artificial intelligence or machine learning.

Machine learning is an innovative technology that employs logical algorithm and statistical models to carry out specific tasks, such tasks are being completely achieved through system self-learning of complex and important trends from a given dataset and drawing an inference for useful insights and conclusion. Whereas, artificial intelligence is a wider aspect of machine learning that employs human cleverness to machines in other to be able to autonomously process, learn, think and lastly make intelligent adjustments or corrections. Artificial intelligence was built to work autonomously without engaging the computer programmer for explicit coding of each part of the AI system.

Skills Required By Machine Learning Engineers

A quality and qualified engineer looking for an amazing career in the field of ML/AI needs to possess an in-depth knowledge of data science and statistical implementations; also, some fundamental know-how on software engineering and data handling. Some of the important skills required by aspiring ML/AI engineer includes:

Basic computer programming knowledge

A fundamental knowledge about software building and implementation ranging from linear programming, computer structural design, data architecture, to algorithm optimization as all needed as a ML/AI engineer. This engineer will also engage in simulating machines to carry out activities same way human beings does. An engineer without this basic programming knowledge will find it difficult.

Data handling and validation

Data handling skills is very important in ML/AI building and implementation. These skills is highly required by the intending engineers to perfectly identify different trends and patterns available of gathered datasets. Without this skills, proper data handling and validations can’t carry out.

Statistics and Probability

Data science was based on statistical modelling, a very crucial part of ML. An intending ML/AI engineer must be skilled in carrying out probability theories like Markov models, Bayesian principles, amongst others. Also, such an engineer must be capable of performing univariate and multivariate statistical analysis that forms the fundamental of ML models.

Software design

Long-term product of building a ML/AI system is incorporation into software either on PC or Smart phones. An engineer of ML/AI requires to have these skills for final representation and deployment of the developed model into software, this will provide a user-friendly interface for proper application.

Signal processing skills

Knowledge of signal processing is required to extract features and solve complex problems. This is a crucial aspect of ML that includes feature mining that will enable algorithms like Shearlets, Bandlets, and Wavelets perform theoretical analysis in solving multifaceted scenarios.

Architectures of Neural Network

Tasks that are beyond human capabilities are execute by Neural Networks. This network has demonstrated to be one of the most accurate ways of deciphering problems like Object recognition and classification, speech recognition, natural language processing, and many more.

Good understanding of Algebra and Calculus

Having an in-depth knowledge of Calculus, Matrices, Vector, Algebra, and others are very vital in understanding and representing some ML/AL concepts.

Physics

This is one of those basic knowledges required by ML engineer. It aids in the representation of complex situation and inferring of the situation.

Domain Knowledge

Knowledge of the field of subject matter, a machine learning engineer must be vast in of problem identification and solving to be able to design a nearly perfect model for useful insights and interpretation.

Fast Prototyping

The available for building and implementing an ML system is expected to be reduced to the barest minimum. This can only be achieved an engineer that knows how to select right model in carrying out certain excellently. It also includes weighing up different methods to achieve a faster model for implementation.

Python Oops Quick Start Guide

Python Oops Quick Start Guide

We all are pretty much aware that Python is an object oriented programming language. A software tester should possess profound Programming Language skills and expert level Automation Tool knowledge before commencing scripting. Automation and coding patterns can be achieved when you are familiar with Oops concepts. For many automation testers, Oops concept is still a grey area. However, to setup test automation framework & excel in automation testing career, Object Oriented Programming Concepts are important. We, as a QA company, has a concrete career journey from automation tester to Test Automation Architect role. If you are familiar with Python Oops concept, you can create test automation libraries which are useful for your team to ease their automation scripting effort. This blog will provide you a sneak peek review of Python oops concepts.

Class Declaration

You can define class variable, instance variable, and methods in a class. Below snippet shows how to define a class.

class SuperClass():
    pass

Class with Constructor

Constructor is a special method which will be invoked when an instance is created. When Line #7 is executed, it will invoke ‘__init__’ method. i.e. constructor method. You may ask a question – Why are we passing ‘self’ as an argument in constructor method? Answer: ‘self’ represents the instance of the class.

#Class Definition
class SuperClass():
    def __init__(self):
        print("Constructor is called")

#Object Creation
obj = SuperClass()

Class Variable

Class variable which is stored in Class memory not in instance memory.

# Class Definition
class SuperClass():
    counter = 0 #Class Variable
    def __init__(self):
        print("Constructor is called")

# Object Creation
obj1 = SuperClass()
obj2 = SuperClass()

obj1.counter +=1
obj1.counter +=1

print(obj1.counter)
print(obj2.counter)

In the above code, Line #14 prints 2 and Line #15 prints 0. However, as per the class variable paradigm it should print 2 for both the instances. The reason is line #11 & #12 change the values using its instances. To change class variable value, you need to use class name not instance. Please refer the below code. It changes class variable’s value using Class Name.

# Object Creation
obj1 = SuperClass()
obj2 = SuperClass()

SuperClass.counter +=1
SuperClass.counter +=1

print(obj1.counter)
print(obj2.counter)

Instance Variable

Instance variables are stored in Instance memory not in Class memory. Let’s see how to declare and use Instance variable.

# Class Definition
class SuperClass():
    def __init__(self, name, age):
        self.name = name
        self.age = age
        print("Constructor is called")

# Object Creation
obj1 = SuperClass("John", 40)
obj2 = SuperClass("Peter", 50)

In the above snippet, ‘name’ and ‘age’ are instance variables. When you create instance for SuperClass, memory will be allocated for ‘name’ & ‘age’ variables in instance memory.

Inheritance

#Super Class
class Animal():
    def __init__(self, name, age):
        self.name = name
        self.age = age

#Sub class
class Cat(Animal):
    def __init__(self, name, age):
        super(Cat, self).__init__(name, age)

instance_1 = Cat("Kona", 2)

print(instance_1.name)

In Conclusion

Python oops concept is a vast topic. However, we wanted to keep this blog post precise and act as a quick start material to learn/recap Python Oops. As a test automation company we create useful test automation libraries with coding patterns and best practices. When you are aware of code design patterns and follow best practices, you can deliver quality test automation scripts with ease.

Python CSV File Read Examples

Python CSV File Read Examples

CSV stores data in tabular format. Importing CSV files can be achieved at much faster, rate with less memory consumption. In this blog article, we have listed a few Python CSV File Read Examples for your better understanding and reference. We, as a QA company, use large CSV files to verify data quality between source and target. In order to automate data quality checks, we use Python libraries to import CSV files programmatically.

Built-in CSV Library

Python has built-in CSV library. You can read & write a CSV file. You needn’t install additional packages to use this module.

import csv
with open('test_data.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

Read CSV using Pandas

Pandas is a powerful data analysis Python library. Let’s say for instance if you wish to import large CSV files on one go for Pandas. We, as an automation testing company have used Pandas library for our ETL & Data Analytics projects at various occasions and found it noteworthy.

import pandas as pd
test_data = pd.read_csv("test_data.csv")
#Reading First Value from name column
print(test_data["name"][0])

Convert XLSX to CSV

If you want to convert XLSX to CSV in Python programming, you can try out xlsx2csv library. It converts large XLSX file to CSV.

CleverCSV

CleverCSV detects the dialect of a file automatically , additionally it has command line implementation, if you would like to check the file outside Python environment.

# importing this way makes it easy to port existing code to CleverCSV!
import clevercsv as csv
with open("data.csv", "r", newline="") as fp:
  # you can use verbose=True to see what CleverCSV does:
  dialect = csv.Sniffer().sniff(fid.read(), verbose=False)
  fp.seek(0)
  reader = csv.reader(fp, dialect)
  rows = list(reader)

In Conclusion

When you use Python libraries, you can craft your test automation scripts quickly and concisely instead of writing lengthy snippets. The above listed libraries will be helpful when you handle CSV files. We, as a software testing company, use various Python packages for ETL & Data Analytics testing projects. There are several other Python CSV File Read packages available in the market, However, they are not active in development. We hope you enjoyed this blog article and found it worthwhile.

AWS Device Farm an Overview

AWS Device Farm an Overview

Any web-app or app intent to provide a truly universal experience, must be seamlessly functional on whatever device/ OS/ browser combinations their customer prefers. Having access to the latest hardware, operating systems, and platforms allows the testing process to be more streamlined, less expensive, and more innovative. In order to meet this objective, device availability becomes imperative and organisations spend several hundreds to thousands of dollars in procuring and maintaining these physical devices which are used for testing. This necessitates the need for a cloud-based device testing environment such as AWS Device Farm.

There are many cloud based solutions such as SauceLabs, BrowserStack, Perfecto mobile etc. AWS is another cloud testing platform which allows testing of apps over real android and iOS devices. AWS Device farm is a cloud-based application testing environment that enables remote testing of websites and mobile apps on a significant number of real mobile devices and an extensive range of desktop browsers, without the hassles of managing of building any testing infrastructure. It offers access to both modern and legacy versions of devices from multiple manufacturers.

Pricing

AWS device farm has three pricing options for mobile app testing.

Pay as you go There won’t be any charge for the first 1000 minutes and you will be charged $0.17per device per minute.

Unlimited test & access This is a slot based plan. You can buy a slot for $250/per month. Let’s say you buy an Android slot. Now, you can access any real Android device using the slot for unlimited hours. If you want to run in parallel, you need to buy more slots. I.e. one slot, you can access one device at a time.

Private devices In this option, you can choose devices of specific hardware and software configurations that you wish to run your tests, those devices will be reserved for you till you unsubscribe from the plan. This plan starts from $200 per month.

Remote Access

An interesting feature is the possibility to connect remotely to a specific device model via a remote screen and install our app. As of today, AWS device farm has 162 device combinations. You can access devices which are eligible for remote access. If you want a real device for manual testing, then open Device Farm Page and start a session. You can hold a session for a maximum of 150 minutes.

Private Devices

You may ask a question: Why should I go for private devices as I already have a slot for manual testing. What difference does it make? Private devices are dedicated to you. In other options, the devices which you access on remote sessions are actually used by someone a while ago. However, the private devices will be allocated dedicatedly for your account. No other users can access it.

Automated Testing

Appium is a widely used tool for automating your mobile application, you can run Appium scripts using TestNG, Junit, Node.JS, Python and Ruby. Many cloud device services allow you to upload test scripts, however in AWS device farm, you have to upload a test package to execute on multiple devices simultaneously. Uploading the script has upside and downside. Upside – we don’t need a highly configured machine to run the test scripts. Downside – sometimes it is hard to figure out scripting issues.

Usually, on some cloud testing provider such as SauceLabs, the test code will run on your computer while instructing cloud devices to do something, but in Device Farm you need to package all your tests to be run on the cloud. When executing tests, ADF uses an approach which we call as server-side execution. This means that the test code runs entirely on their infrastructure. The alternative to this is what providers like Browserstack or Saucelabs use where the test code runs on the user’s machine, called client-side execution, and interacts with the cloud service via a web service.

In general, client-side execution is easier to implement; if you already know how to execute tests locally, the configuration changes you need to make are minimal. Amazon Device Farm approach is a bit trickier as it requires a few extra steps, namely packaging and uploading everything necessary to run your tests to their servers.

Plugins

Automated tests can be scheduled in Jenkins to perform continuous testing using the Amazon Device Farm for each new build of the application. There is an Amazon Device farm plugin available for Jenkins. Here are the steps on how to configure your AWS account with Jenkins.

Steps to use this plugin:

1. Log into your Jenkins web UI.

2. Click on the job you wish to edit.

3. On the left-hand side of the screen, click “Configure”.

4. Scroll down to the “Post-build Actions” header.

5. Click “Add post-build action” and select “Run Tests on AWS Device Farm”.

6. Select the project you would like to use.

7. Select the device pool you would like to use.

8. Select if you’d like to have the test artifacts (such as the logs and screenshots) archived locally.

9. In “Application”, fill in the path to your compiled application for testing native or hybrid app. Check “It is a web application.” for testing web app.

10. Choose the test framework, provide the path to your test package location and other relevant details.

11. Configure device state parameters like radio details, extra data and device locations.

12. Configure the maximum execution timeout. The default execution timeout is 60 minutes.

13. Set the execution configuration parameters: video recording and app performance monitoring.

14. Click “Save”.

If you don’t want to use Jenkins UI and are looking for a code based plugin, then you can try aws-device-farm-gradle-plugin. Using this plugin, you can configure your application file and test files in the Gradle build system.

Security

AWS allows third-party security auditors to assess the security and compliance of AWS Device Farm. AWS device farm has data retention policies. The data entered or saved in the device will be wiped out once the session is closed. However, Uploaded applications & test packages, logs, and video recordings will be retained certain days.

Limits

Almost most of the devices are public and shared ones, you cannot hold the devices for more than 150 minutes per session for both manual and automation testing. There is no information about the access limit for private devices.

Conclusion

If you have robust automated test scripts and you have performed multiple dry runs locally, then AWS device farm is a suitable platform for your cloud devices testing. However, don’t forget to use the 1000 minutes free trial before you go for any plans. We, as a software testing company, use different cloud testing platforms to test mobile applications on real devices. We would recommend choosing the platforms based on your testing needs. Before choosing a cloud testing tool, check how quickly the new devices are added and whether the remote access provides the selected device without any delay.

One of the best advantages of AWS device farm is uploading the test package once and getting the result for multiple devices. Whereas in other cloud testing platforms, you need to execute the same test package using your machine. With device farm we get detailed logs, performance graphs and screenshots are generated during each run to provide general and device-specific feedback. The service offers a lot of flexibility by allowing the state and configuration of each device to be altered in order to reproduce very specific test scenarios. Ensure the test cases selection for automation test execution is done via build file arguments. So that you can use a single build file with the same test package.

We hope you have enjoyed reading this blog article and found it insightful.