Select Page

Category Selected: Latest Post

154 results Found


People also read

Software Development

CSS Tips and Tricks for Responsive Design

Software Tetsing

Changing dimensions in a data warehouse: How to Test

Artificial Intelligence

Talk to our Experts

Amazing clients who
trust us


poloatto
ABB
polaris
ooredo
stryker
mobility
Scripted Testing vs Exploratory Testing : A Comprehensive Comparison

Scripted Testing vs Exploratory Testing : A Comprehensive Comparison

There are many subjective factors to consider when choosing between scripted testing and exploratory testing approaches and there is simply no universal right option. An easy way to understand this concept is to compare exploratory testing with improv in art. In certain scenarios, the artist’s talent could complement the improv method and enhance the art. But if used incorrectly in the wrong scenarios, it could degrade the art as well. So if software testing is the art, then the tester’s (artist’s) abilities and the scenario in which the exploratory testing approach is used also play a vital role. So in this blog, we will be pitting Scripted Testing vs Exploratory Testing to understand them better and use them in a way that suits your needs.

Clearing Misconceptions

As a first step, we will clear any misconceptions if there are any as few might confuse exploratory testing with ad hoc testing. We all know that scripted testing is more like clockwork where we define the test cases with every single detail that is needed for a tester to test the software without any deviations from the expectation that has been set. Yes, thinking ahead is a great way to increase efficiency, but it is not always the best method to be thorough as it is almost impossible to think of all the possible scenarios beforehand. But on the other hand, we have ad hoc testing that lacks any form of structure or goal. So exploratory testing takes the best of both concepts as it does provide the flexibility that ad hoc has to offer despite remaining structured and goal-oriented.

Scripted Testing vs Exploratory Testing

Staying on track is one area that we should pay a lot of attention to while performing exploratory testing. So let’s take a look at a few concepts that can help you not just stay focused on your goals, but also increase the efficiency of your exploratory testing. In addition to that, we will also be using these concepts to highlight how exploratory testing differs from scripted testing.

Test Charters

Test charters help you define the goals for your exploratory testing sessions. But it is different from your goals in scripted testing as the goals can be changed as you move forward with your testing. Be it scripted or exploratory testing, we always start by analyzing the information we have at our disposal. So when you find something you didn’t expect when you begin your tests, you can redefine your goals based on the new findings and stay focused on them. But when it comes to scripted testing, finding something unexpected itself is not very likely as the approach increases the tendency to see only what you want to see. You begin your software testing with the mindset of finding the bugs you already anticipate. So assigning such fluidic test charters helps you overcome this issue and prevents you from going off the rails.

Test charters should only act like a guide that doesn’t restrict the tester too much. Flying blind is never an option, but restricting yourself too much defies the purpose of exploratory testing itself. So make sure to strike the right balance between both. For example, if you are going to test a certain feature of functionality after changes have been made, then you can define boundaries based on that and test it without having to spend too much lead time that will be needed for performing scripted testing. So you can go about performing your exploratory tests by targeting the different possible scenarios, or by using your experience and expertise to develop a strategy by performing boundary value analysis & risk analysis and by following the equivalence technique. In this Scripted Testing vs Exploratory Testing blog, we will be seeing tips for better implementation under each section as well.

Tip

Classifying the bugs you find while testing or the bugs you anticipate is a great way to help create an outline for your test charter. Use your experience in testing similar software or similar concepts to curate a list of commonly found bugs and work around it. Since there is also a possibility of missing the simplest aspects when using such a method, make sure to create a checklist for the basics to avoid any oversight.

Time Boxing

We have already seen how exploratory testing helps you reduce the lead times before you start the testing process. The time gained here shouldn’t be lost elsewhere by being stagnant on a certain feature, scenario, or module. You must have an in-depth understanding of the software you are testing to create effective test charters. Likewise, that knowledge will also help you figure out how much time you’ll be needing for your tests and create test sessions. Once you start the tests, you will be able to assess the probability of finding bugs in that particular feature or module. Just because you are exploring the software doesn’t mean that you have all day. So if you are not finding any bugs, don’t spend too much time trying to find them. If you have unearthed a deep and unexpected issue that calls for more attention, modify your test session accordingly.

Such adaptability will not be available in scripted testing as you would have to go through with all the steps and tests even if there are no bugs. Yes, it will be very important to follow the scripted testing approach when you are testing critical modules or apps. But if you are in a position to test a module or software at its early stages of development, you can certainly not be able to do everything over and over again as there will be rapid changes in the code. Apart from that, as one of the most experienced Software Testing companies in USA that employ the agile methodology, we can assure you that exploratory testing is a key pillar of the agile development process.

Tip

In addition to saving time, the experience and understanding gained from exploratory testing will be instrumental in developing effective test scripts. So it is evident that you can get the best results when you combine both of these approaches in your project. Apart from time, be aware of the various metrics to gauge your performance during the process.

Divide and Conquer

Testing the application in its entirety is not a good option even if it is a basic application with a fewer number of modules. You’ll lose track of your goals and objectives when testing in such a random manner. So, add structure to your exploratory testing by dividing the software into various modules. So in terms of the approach, exploratory testing is not very much different from what happens with scripted testing in this case. Once you check each module off your list, you will have more insight into the bugs you may find in the application. Ensure you evaluate your original plan based on the results you have in your hand. If you identify any common issue across all the modules, change your plan accordingly. You would also have to look for the root cause of the bugs in each module and improve your test charters with better predictions.

Tip

You can use mind maps to easily identify the root cause and common issues across the various modules. Mind maps will provide you with a visual representation that will help you connect the unseen dots. In addition to that, exploratory testing does require proper documentation for it to be effective and mind maps will come in handy to easily record the issues and evaluate them later on. So for a better understanding of how effective mind maps can be for documentation during exploratory testing, visit our blog.

Exploratory Testing Techniques to Master

Though the individual skills of the software testers who perform both these types of software testing are important, the skills do play a more vital role when it comes to exploratory testing. So if you are focused on improving your exploratory testing skills, then make sure to read our blog about ‘The 5 Exploratory Testing Techniques to Master’. If not, here is the list of the 5 techniques we have explored in that blog.

  • Exploring User Stories
  • Being Bold Enough to Test New Waters
  • Getting handy with Mind Maps
  • Improving Your Integration Testing Skills
  • Following an End-to-End Approach

By now you would have clearly understood that the experience of the QA performing the exploratory testing is very important. Experience alone isn’t enough as only dedicated work in those years of experience will equip you with the required expertise to do effective exploratory testing. Experience is something that you can’t get overnight, but the above-mentioned techniques will definitely help your cause.

Conclusion

So to sum things up in this Scripted Testing vs Exploratory Testing blog, exploratory testing is a great option when you want to test during the early stages of software development. Since exploratory testing is a context-driven approach, it will also be a great choice to use when following the agile method of software development as it helps keep up with the short scrum cycles. It is also a great way to identify usability issues in comparison to scripted testing methods. But exploratory testing alone is not enough by any means. As one of the best Automation Testing Companies, we also focus on scripted testing as automation is easier to implement in this approach. You can also avoid any oversight issues or bias issues by following the scripted testing approach. So we would highly recommend you to use both these methods for the best results.

App Testing: Is It Essential to Mobile App Development?

App Testing: Is It Essential to Mobile App Development?

Today’s trend in technology is the use of mobile devices. The reason for this is because a smartphone can do the same things a computer can. This is why many companies resort to developing mobile applications to expand their operations. While it’s a sensible choice, not everyone succeeds in this endeavor.

A mobile application may have a successful launch, but its maintenance can make or break it. For this reason, proper app testing must be conducted first to set the parameters of how an app will be maintained.

In this article, we list down eight reasons app testing is vital to the mobile app development process. Read on below to learn more.

#1 – Implements Quality Assurance

Similar to most products, quality assurance applies to mobile apps too. After all, you don’t make a mobile app and rush immediately to launch—you’ll want to make sure that everything is working properly for it to succeed.

#2 – Helps with Revenue Generation

There’s no doubt that the growing need for smartphones only means that apps must be well-developed. For companies, this only means one thing: to capitalize on mobile apps and generate more revenue.

App testing will assist you in developing strategies to allocate resources for activities such as branding, development, and marketing up to the final launch of the app. When done right, you will maximize your profit.

#3 – Improves User Interface

An excellent user interface can bring in more users, so it has to be user-friendly. Some pointers to take note of when making a user interface design are:

  • Easy navigation
  • Fast load times
  • Includes a search feature
  • Simple design

As long as these four are present, your user interface will be good, making it easier to use your app.

#4 – Guides with Update Releases

You might think that your app is already perfect, and there’s nothing wrong with that. However, there will come a time when the app’s functionality is considered outdated. For this reason, updates to maintain the app’s functionality will be released.

It’s not even just functionality because other improvements are also included with updates, such as increased security. App testing ensures that updates will work for all devices, and it will also give you time to evaluate what can be improved.

#5 – Reduces Risks for Your Business

It’s estimated that mobile apps from more prominent companies cost somewhere between $100,000 to $500,000 to develop. With that amount of money, you definitely don’t want it to go to waste.

Through app testing, you will know the risks that will pose a threat to your mobile app. These issues are mitigated because you can detect problems earlier.

#6 – Helps Establish Your Brand

Many businesses functioning through apps must always look for ways that will distinguish them from the competition. App testing will help implement recommendations and feedback from test users, allowing more users to enjoy using the app.

#7 – Attracts More Users

If your mobile app is tested, it’s a guarantee that they’ll use it for their comfort. With a solid user base, you can attract more users to your app whenever your loyal users recommend the app to people they know. Referrals trying out your app because of its positive reputation is an added bonus.

#8 – Ensures Compatibility Across Various Devices

The number of smartphones being manufactured each year is rising. Because of this, compatibility between devices must be prioritized. App testing ensures that the app can function without issues regardless of whether the device is Android or Apple.

Conclusion

App testing is a critical part of the mobile app development process that must not be skipped or rushed in any way. If you don’t conduct app testing, you’re setting yourself up for failure because it won’t do users any good, leading you to lose business.

Codoid offers top-quality mobile app testing services to make sure that your mobile app functions correctly. A mobile app must always help solve a user’s needs, and an incomplete app won’t do that. Contact us today to learn more!

An End-to-End Robot Framework Tutorial

An End-to-End Robot Framework Tutorial

Robot Framework is an open-source Python-based automation framework used for Robotic Process Automation (RPA) and also for Acceptance Testing & Acceptances Test-Driven Development (ATDD). It is used with the keyword-driven testing approach for which testers can write automation test scripts easily. The Test cases are written using the keyword style in a tabular format making them easy to understand. Robot Framework does provide good support for external libraries. But Selenium library is the most popular library used with Robot Framework for web development and UI testing. As a leading mobile app testing service provider, we have been using Robot Framework in our various Android and iOS app testing projects. So we have written this end-to-end Robot Framework Tutorial that covers everything one has to know.

The Basic requirements for robot framework

Since the Robot framework is built based on Python, we have to install the latest version of Python by downloading it from their official site. After successful installation, set up the Path environment variable in your local system.

Steps to Install Robot Framework:-

1. You can check if the Python setup has been installed properly by opening Command Prompt and typing the below command.

python --version

2. Use the below command to check the pip version. (Pip is a Python package manager)

pip --version

3. Now we’re all set to install the Robot framework

a. For a straightforward installation of the robot framework, you can use the command

pip install robotframework

b. If there is a need to install the robot framework without any cache, you can use this code instead.

pip install --no-cache-dir robotframework

c. If for any reason, you want to uninstall the Robot framework, then you can do so by using the below code.

pip uninstall robotframework

4. Just like how we verified Java, we can use the below commands to check it using Command Prompt.

(i)

pip show robotframework

This command will show the details of the robot framework and the framework location.

(ii.)

pip check robotframework

Once we enter this command, the desired result that should be displayed is “No broken requirements found.” If any other message apart from this (i.e.) a warning is displayed, we need to check the warning related to the setup and install it properly.

We can also verify if the Robot Framework has also been installed properly in our Local system.

Go to the Python folder > Lib > site-packages > verify if Robot Framework is installed.

Robot Framework Installation

5. To verify the version of the installed Robot Framework, use this code

robot --version

6. You might face a scenario where you would need to use a specific version of the Robot Framework, you can accomplish this by mentioning the specific version you need as shown below.

pip install robotframework==4.0.0	//mention the specific version

7. In time, you might want to upgrade the old version of the Robot Framework. You can use the below code to do it.

pip install --upgrade robotframework

8. In addition to verifying if the Robot Framework has been installed correctly, you might also have to check if the python libraries.

(i.)

pip freeze

This command will show all the python libraries installed with the robot framework version.

(ii.)

pip list

This command will show all the python libraries installed with their version numbers.

For writing automation test case:

In the Robot Framework Tutorial, we would be exploring how to perform web browser testing using Selenium Library. But for that to happen, we have to import the Selenium library file to this Robot project

Step 1: Enter the Command-Line to install Selenium

pip install selenium

Step 2: To upgrade the pip installation with the Selenium library, enter the below-mentioned command

pip install --upgrade robotframework-seleniumlibrary

Step 3: Finally, you can check if the pip Robot framework Selenium library has been installed properly by using this command.

pip check robotframework-seleniumlibrary

IDE for the Robot framework:

We can conveniently use the following IDE’s to write the Robot Framework automation testing codes.

1. PyCharm

2. Eclipse with RED plugin

3. Visual Studio with one of the plugin

4. RIDE

In this Robot Framework Tutorial, we have used PyCharm with Selenium to write a website automation testing code.

PyCharm IDE Installation and a New Project Creation:-

Step 1: Go to https://www.jetbrains.com/pycharm/download/#section=windows

Step 2: Download the free Open-Source Community Version of the PyCharm .exe file.

Step 3: Once you run the .exe file of the PyCharm setup, you’ll see the ‘Install Location’ window. If you want to change the location from the default option, you can click on the “BROWSE” button, and select your own file setup location and click on the ‘Next’ button.

Step 4: In the 4th Window, select the 64-bit launcher and click the ‘NEXT’ button to move to the next window where you can directly click on the ‘INSTALL’ button to install all the files.

Step 5: Once the setup and jar files are properly installed and updated, tick the checkbox and finish by clicking on the “OK” button in the “Import Pycharm Settings” pop-up.

Step 6: Now, you will see the ‘Welcome to PyCharm’ window. Click on the “Create New Project” option and it will automatically generate a project fill location to set up the project. If you would like to change the location, then you may click on the file option to customize it as you please. Enter the “Project Name”, and click on the “CREATE” button.

PyCharm IDE Installation

Step 7: Finally the PyCharm Window will display with New Project.

PyCharm IDE new project

In this Pycharm IDE, we are going to create a Robot framework for a website’s automation testing. So let’s explore how to generate a report and all the other essential actions in the upcoming topics of this Robot Framework Tutorial.

How to Create a New Robot Project and the required Setups:

In the Robot framework, we have to set up interpreters and add some plugins as well. Let see how to do those things now.

Step 1: You’ve already created the Initial Project for which you need to add the interpreters to work with the Selenium and Robot framework. So follow the below steps, and use the image as a reference if needed.

Go to File > Settings > Click on Project: “current project name” > Python Interpreter > + icon

Create new Robot Object in Robot Framework Tutorial

Step 2: You need to install the following packages for this project

i. Selenium

ii. robotframework

iii. robotframework-seleniumlibrary

You have to enter these three keywords one by one in the search input field and search for the packages. Once you find them, you have to click on the “Install Package” button and wait for a while for the packages to install in the back end. Once it is successfully installed, the highlighted message will appear and you can close the window by clicking on the “OK” button in the settings window.

Note: Make sure to close the window only after installing the three packages one by one.

Installation of Selenium

Step 3: Now, you have to add the “IntelliBot @SeleniumLibrary Patched” Plugin as it’ll help us find the Robot framework files and give auto suggestions for the keywords. So without this plugin, PyCharm will not be able to find the “.robot” files. The steps are as follows,

Settings > Plugin > Marketplace >Search “IntelliBot @SeleniumLibrary Patched” > Install

Adding Intelli Project in Selenium Library

Once the Plugin has been installed, you have to restart the IDE for the initial configuration.

Step 4: Normally, the Project Structure contains multiple directories and each directory contains a similar kind of file. So in this Test project, we are going to create a test case inside the directory first.

Right-click Test Project > New > Directory > Enter the Directory Name

That directory will be created under the Test Project and so our Robot test cases can be created inside it.

Step 5: Create the “.robot” file under the created directory.

Right Click on Created Directory > New > File > Enter a File name that ends with “.robot”

Once the robot project has been created, the structure of the project will be how it’s shown in the following image.

Create Robot file in Created Directory

Prerequisites to run Automation Test Cases in the Robot Framework:

Whenever you write automation test cases in the Robot framework, 4 sections should be there. They are

  • Settings
  • Variables
  • Test Cases
  • Keywords

Prerequisites to run Automation Test Cases

Note:

  • These 4 sections are must-know aspects from a beginner’s point of view.
  • Each and every section starts with ‘***’ and is followed by the Name of the Section. It also ends with ‘***’.
  • One (or) Two Tab spaces are needed in between the Keyword and the Test data (or) Data (or) input data because indentation is very important in Python.
  • When you’re about to write a test case, you should first write the test case name and then go to the next line to write the keyword after leaving a tab space.

Step 1: Settings

You are going to import the Selenium Library in this Test case.

The first line indicates the code block and the second line uses the “Library” keyword to import the “SeleniumLibrary”.

Syntax:

***Settings***
				Keyword		LibraryName

Selenium Library in Settings Test Cases

Step 2: Write the Test Cases

Now, you have to write exact test cases as per your requirements. First, you have to assign a test case name, and then enter the test case information in the next line. You can write these test cases using free defined Selenium Keywords. Being a leading QA Company, we wanted our Robot Framework Tutorial to be a comprehensive guide even for beginners. That is why we’re going through everything from scratch.

Syntax:

***Test Cases***
			TestCase_Name		
				Keyword	Locators(or)data	Testdata

In this Robot Framework Tutorial, we are going to perform the following test cases:-

1. Visit the Codoid Website.

2. Navigate to another page and verify it.

3. Pass the Input data.

The first step towards automation is launching your browser. Based on the browser you are using (Chrome, Firefox, etc.), you have to download the various drivers. Once you have downloaded the drivers, you have to extract the downloaded file and copy the driver.exe file path. We will be using Chrome for our demonstration.

Syntax for the Chrome launch:

***Test Cases***
TestCase_Name
Keyword	driver_name		executable_path= “driver_path”

Syntax for Chrome Launch

There is also another method that can help us save some valuable time by reducing the time to launch the browser. You can,

1. Copy or Cut “various_driver.exe” file from your local.

2. Paste them under the Python/Scripts page under your local system as shown below.

Local System folder

After this step, we can directly launch the browser without pointing to the driver location in the framework. We have to write the following syntax instead of using the “Create webdriver” keyword to set up the path.

Direct browser launching syntax:

***Test Cases***
TestCase_Name
Keyword	input_data (or) URL	driver_name

Browser Launching Syntax

Based on the requirements, we have to write the test steps under the test case name with the Selenium Library Keywords and respected Locators along with the test data.

Selenium Keywords in Robot Framework Tutorial

In this example, will be performing the test case with limited Selenium Keywords in the robot framework. For more Selenium Library keywords please visit their website.

Step 3: Define the Variable

The variables are elements used to store values which can be referred to by other elements.

Syntax:

***Variables ***
				${URL}	url
				@{UserCredentials}		inputs

Defined variables can be replaced in test cases and we can even reuse them anywhere in the test case when needed.

Define the Variable Testcases in Robot Framework Tutorial

Apart from this, we have a lot of variables available in Robot Framework. We have mentioned only the required ones here

Variables Available in Robot Framework Tutorial

Step 4: Define the KEYWORDS

Since the keywords are reusable in the Robot framework, it helps manage the changes in a faster and efficient manner. You can even create our own keywords here.

Syntax:

***Keywords***	
			Keyword_Name
				Selenium_keyword		locators 	input_data

Keywords Testcases

Once you write your own keyword, you can replace the test case steps with the keywords.

Replacing Test cases with Keywords in Robot Framework tutorial

Even once all of this is done, we won’t be able to run our project directly in the PyCharm Robot framework. We would have to go to the Terminal and use the below command

robot directory_name\file_name.robot

Terminal Section in Robot Framework Tutorial

Once the project has been successfully executed, the output.html, the log.html, and the report.html files along with the screenshots for each test case will be automatically created in our project structure. So we can copy and paste it into any browser to check the report of the execution of our project.

Execution of the Project

Testcase Report

Here we have executed all the test cases. But if you are looking to run a separate test case, you can do so by using Tags. You should include the tags with the name of your choice inside the test cases section under the test case name as shown in the below image.

Including Tags in the testcases

You can either run one or a particular set of test cases by using this command in the Terminal.

For one particular Tag:

robot --include=Tag_name directory_name\file_name.robot

One particular tag at a time

For Two Tags at a Time:

robot –i Tag_name  -i Tag_name directory_name\file_name.robot

Two tags at a time

So using tags you will be able to get more concise reports as you can execute the test cases based on priorities. Refer to the following images to get a better understanding of what we mean.

Tags details in Testcase in Robot Framework Tutorial

Test Case details in the Robot Framework Tutorial

Test Case log

Conclusion:

We hope you have found our end-to-end Robot framework tutorial to be useful as the Robot framework is an easy-to-understand open-source tool that provides a modular interface to build custom automation test cases based on your varying requirements. So it has been widely adopted by various large organizations for this very purpose, and for good reason.

An Overview of the Software Testing Intricacies for Different Business Entities

An Overview of the Software Testing Intricacies for Different Business Entities

Knowing each entity in depth is very important when it comes to testing banking applications that deal with corporate customers. Corporate Customers are the ones who are neither individuals nor micro-enterprises. With years of experience in providing the best software testing services to our clients, we are well-worse with everything a team will need to know about entities. So in this blog, we will be seeing an overview of entities on the whole as we will be learning what is an entity, exploring the Different Business Entities, and will also be covering how to test its intricacies.

What is an Entity?

An entity is a registered organization that processes and provides certain services to end consumers. It has its own goals & missions and a separate existence like humans. There are key representatives called the key principles of the organization who govern the entity. Now let’s take a look at the list of the different types of entities and explore them one by one.

The Different Business Entities:

  • Public Limited Company
  • Private Limited Company
  • Partnership
  • Sole proprietorship
  • HUF
  • Religious Establishment
  • LLC
  • Statutory Corporation
  • Holding Company
  • Trust
  • Funds
  • Non Profit Organizations
  • Investment Vehicles
  • State-Owned Entity
  • Charitable Organizations
  • Central Bank
  • Sovereign Wealth Funds
  • Clubs and Societies

Public Limited Company:

A public limited company offers shares of their stock to the general public by listing it on the stock exchange. The stakeholders are the owners of a PLC. It is referred to as PLC in the United Kingdom, as Inc in the United States, and as Ltd. In India. PLC requires a minimum number of 7 members, and there is no upper limit. It should also have at least 3 directors.

Private Limited Company:

A Private Limited Company can be listed in the stock exchange or need not be. Even if they hold shares, they cannot be sold to the general public. It requires a minimum of 2 members to start the company and it should have 2 or more directors. It is called LLC in the United States, PVT in the United Kingdom, and Pvt. Ltd in India.

Partnership:

A Partnership is a formal agreement between 2 or more parties to manage the business and share its profit or loss. Unlike Private Limited companies, partnership firms are not separate entities. A change in the partners leads to the formation of a new partnership firm while the old partnership firm would get dissolved. There should be a minimum of 2 partners, but the number should also not exceed 50.

Sole proprietorship:

When a company is owned and managed by a single owner, it is called a sole proprietorship. It is unincorporated by nature, meaning this company has no separate existence by itself. It is easy and inexpensive to establish when compared to the other entities as it has fewer regulations. The biggest challenge would be raising the required capital for the business from external sources. Small business owners mostly prefer sole proprietorships.

HUF

HUF is a family business that lends a way of saving taxes by clubbing the assets owned by the members of a family. Though it is an option available only in India, we wanted to be thorough in our proceedings. The senior-most member in the family will most probably be the head of their HUF. It is governed by Hindu Law. So the death of the senior member does not affect the existence of the business, the next senior-most male member becomes head.

Religious Establishment:

Temples, Churches, and Mosques are places of worship that can be termed as religious establishments. There are a lot of regulatory laws that help prevent the misuse of religious institutions as an unauthorized way of gaining money.

LLC (Limited Liability Company:

An LLC is a Legal Entity that helps its owners avoid personal responsibility for its debt and liabilities. LLCs do not pay tax as the profit or loss is passed to the owners who show it as their personal gain or loss. It is mostly incorporated, meaning the entity has a separate existence, unlike Sole Proprietary.

Statutory Corporation:

Statutory Corporations are companies owned by a government with the presence of other stakeholders. It is a cumbersome task to start such an entity as a lot of approvals are required. Once the policies governing this entity have been created, it is nearly impossible to change. So they are prone to wastage of capital & assets and inefficiency in operations compared to private establishments. It also suffers from political interference.

Holding Companies:

When multiple businesses are owned by a single person or by a group of people, they create a holding company which is called the ‘Parent Company’ to keep track of its subsidiaries. This holding company doesn’t usually perform any business activities, its primary purpose is to monitor the subsidiary businesses. So when the subsidiaries grow, their parent companies also grow in tandem. It receives dividends from its subsidiaries. The holding company either owns 100% of its subsidiary or at least 51% of its subsidiary to maintain control over it. This helps them to protect the interest of its subsidiary and helps to protect it from the creditors of the subsidiary to control the assets by investing less money.

Trust:

Trusts are owned by Banks or Financial Institutions and act as custodian for asset management, beneficial ownership registration, and so on. It acts on behalf of its client or beneficiary to make investment-related decisions.

Funds:

Funds are investment companies that focus on investing in securities. They employ portfolio managers to help manage the investment options offered by the firm.

Non Profit Organizations:

A non-profit organization can be a trust, a corporation, an association, a Limited Liability Company, or unincorporated. Since they are mainly created to serve a social cause, they will have tax exemption benefits.

To create a Non-Profit Organization, first, we have to decide if creating it as a non-profit is the right choice, create a mission statement, develop a business plan, build a board, and then file for the tax-exempt status.

Investment Vehicle:

An investment vehicle is a type of company that helps the investor grow their money by issuing bonds or investing in stocks or investing in real estate. Any mutual fund company that helps its investors diversify their portfolios is an example of an Investment Vehicle.

There is a special type of Investment Vehicle called the Special Purpose Vehicle (SPV). It is created by the parent company for the main purpose of undertaking some risky projects.

State-Owned Entity:

It is a company owned by the Government with the sole purpose of generating profits or helping the Government with certain activities that are vital to them.

Charitable Organizations:

It is a type of organization created with the sole purpose of aiding a social cause. It can be set up with the objective of safeguarding animals, protecting the environment, aiding in disaster recovery, and so on. The major difference between a charitable organization and an NGO is that it can run for profit. They accept funds from the general public for their survival.

Central Bank:

Central Bank is an entity that can be seen in every country and is called the Bank of Banks. They are responsible for the formulation of monetary policies and supervising or governing the other banks. It holds the privilege to issue currency notes for the nation. It eases or tightens the supply of money based on the demand to keep a nation’s economy on the positive side. It can be a lender when any financial institutions are in trouble.

Sovereign Wealth Funds:

It is an enterprise created by the Government to invest its surplus funds from any trade or budgeting. The sovereign wealth funds then invest that money in local industries to generate the return.

Clubs and Societies:

Based on the nature of Clubs and societies, it could be a non-profit or a profit-based entity whose profits go to the owner or can be saved by the club for a rainy day. Clubs can be established for fun & recreational activities, for people with similar interests, or even for social causes. They can grow to the extent of sponsoring an event or conducting a competition.

Testing Intricacies for the Different Business Entities:

Each entity type has its own intricacies based on its purpose and objective. We have mentioned the various testing considerations below.

Setting up an entity or type of Business

  • Business rules pertaining to each of the entity types
  • Nature of the business
  • The process to add or modify the key owners or stakeholders of the entity.
  • The type of registration that is required.
  • Documentation requirements for setting up the entity.
  • The workflow process for the approval or verification of an entity.
  • Consider the variations in the country in which the setup is made based on and the country’s risk exposure as well.
  • The economic condition of the country and its impact on the setup of the entity.
  • Risk definition and approval mechanisms.
  • The political influence and exposure of the business. (Could be added as a part of the Business Rules)

Below are the scenarios in which Testing should be mandated:

  • When we need to create or set up an entity in a system, we are required to be aware of all the above areas and it has got its own influence on the setup. The primary focus area is on the Business Rules for each type of Entity.
  • When we modify an entity type, we should again be careful to test all the above areas as business rules, country exposure, etc. might have different levels of impact.
  • When there is new criteria or business rule imposed by a country, we need to do a round of post regression testing as the entity level rules change.
  • When Risk exposure on a firm / Country / Region changes, we have to do another round of testing.

Since these entity setups mostly require multiple levels of approval and review, most of the applications will be standard workflow products like PEGA, IBM-BPM, TIBCO Business Studio, Appian, etc.

Conclusion

We hope you have found this blog to be informative and now have a clear picture of what an entity is, what the different types of entities are, and the intricacies you’ll have to know. As a leading QA company, we will be exploring such niche topics. So make sure to follow us on our social media handles to be updated with our blogs.

Preventing App Crashes by Testing Your App’s Stability

Preventing App Crashes by Testing Your App’s Stability

An application crash is a developer’s worst nightmare. Even though it happens to everyone, it could be unbearable for your users and may cost you financial damages. Recurring crashes lead to more uninstalls; therefore, it’s great that there are numerous techniques to avoid them during mobile app testing. To accomplish this, your program must consistently provide a good user experience.

To ensure the stability of your application, first, identify the primary sources of crashes and devise methods to avoid them. Here’s how you can prevent app crashes by testing your app’s stability:

Memory and Processing Management

Memory difficulties are a leading cause of software crashes because not all users own high-end tablets and smartphones. As a result, your software must perform its intended functions while maintaining memory management.

To proceed, take caution not to utilize too much RAM. When possible, make use of your cache. Determine which parts of your software consume the most data or have the most complex data structures, and make sure they are all required. 

Additionally, you can also profile your program to find memory leaks. As you structure network inquiries to avoid overburdening the device, craft methods and strategies to save memory and prepare a list of what to keep and what to delete.

Error Surveillance

Once you’ve identified errors and problems, you can rectify them. And when it comes to fixing app breakdowns and issues, you must go above and beyond. One method is to monitor the performance of the Internet Information Server and look for flaws.

For example, if a user’s WiFi connection goes down during a file transfer, you can notify them via a communication channel. When failures occur as a result of unexpected app behavior, you’ll need crash detection tools in your mobile app testing kit.

App Compatibility Testing

To test your program or app, use as many platforms, devices, manufacturers, and generations as possible. You can use this method to determine your compatibility. The majority, if not all, of devices and platforms are supported. 

You must, however, be mindful of your limitations. Comprehensive mobile app testing will ensure that your app is compatible with a wide range of devices and will aid you in finding and addressing flaws before its release.

Activate Offline Use

Continuous network connectivity issues can harm your application system and may lead to a bad reputation. Users may be dissatisfied if they need your program but cannot access it due to a lack of internet access. 

By employing a local data store such as Google Room, you can create an app that functions flawlessly offline. The application’s offline mode can help you prevent crashes and freezes caused by a sluggish internet connection.

However, early testing of mobile apps on slow networks may reveal weaknesses, preventing software from becoming inoperable on all networks. So, make it a point to check if the program works on unreliable networks.

Conclusion

While not all accidents are avoidable, those that are can be corrected quickly. This notion applies to developing applications as well. To put it simply, one of the most effective ways to learn about and fix your crashes is to use crash reporting tools. As you gather data and further broaden your knowledge, you’ll be able to create an app that is efficient and useful to your users.

Are you looking for mobile app testing services? Codoid is a forerunner in quality assurance comprising a team that guides and leads the community. For your assurance, our brilliant engineers attend meetup groups, forums, software quality assurance events, and automated testing conferences on a regular basis. Get in touch with us today!

The Complete Appium Guide to Run Tests on Real Device

The Complete Appium Guide to Run Tests on Real Device

Appium is a great choice if you are on the lookout for open source tools to automate mobile applications. Be it native, web, or hybrid applications, Appium will be able to automate it. In addition to that, it has cross-platform support across Android, iOS, and Windows as well. Last but not the least, its support for multiple programming languages like C#, Python, Java, Ruby, PHP, JavaScript with node.js, and so on. As a leading QA company, Appium has been always been our go-to tool in many of our projects. So in this Appium guide, we will be giving you a thorough walkthrough of how you can run tests on real devices using Appium. Let’s take a look at a few other advantages that Appium has to offer before we proceed further.

Advantages of Appium

  • Appium is an open-source tool that is very easy to install. Reinstallation of the application is also not needed when there are any small changes that have to be made.
  • Appium doesn’t require any application source code or library.
  • It has an active and helpful community.
  • Unlike other testing tools, you wouldn’t have to include any additional agents in your app for making it compatible with Appium for automation. It will test the same app that will be uploaded to the App or Play Store.
  • Beyond testing the mobile apps from Android and iOS, it can also be used to test windows desktop applications.
  • Parallel execution of test scripts can be achieved by using Appium.

Prerequisites for using Appium

Now in this Appium Guide, let’s take a look at few of the prerequisite you’ll be needing in order to get Appium up and running. You would have to install the following,

  • Java (JDK)
  • Android Studio
  • Additional Android SDK tools
  • Appium jar file
  • Appium Desktop Client
  • Eclipse IDE for Java

Note: Node.js and NPM will be there by default whenever the Appium server is installed. It is not required to install node.js and NPM separately as would be already included in the current version of Appium.

Appium Guide to install Appium with Node.js

Step 1: Check if node.js is installed on your system by entering the below-mentioned code in Command prompt. Step 1 isn’t the only step where we have mentioned the codes. So make sure to use the appropriate codes we have highlighted in the command prompt.

node --version 
             
npm –version

Step 2: Download the node.js installer

Step 3: Run the installer & install node.js & npm

Step 4: Check if node.js & npm are installed.

node --version
             npm --version
             where node
             where npm

Step 5: Install Appium with node.js

npm install -g appium 

Step 6: Check if Appium has been installed

appium -v
where appium

Step 7: Start Appium

Installing Appium with APPIUM DESKTOP CLIENT in Windows

Step 1: Download the Appium desktop client

http://appium.io/

https://github.com/appium/appium-desk

Step 2: Install the Appium desktop client

Step 3: Start Appium through the desktop client

Appium Guide to install Appium on MacOS

Step 1: Check if node is installed on your system

node -v

Step 2: Install node.js

https://nodejs.org/en/download/

https://brew.sh/

brew install node

Step 3: Check if node is installed using these codes

node -v
            
npm -v

Step 4: Install Appium

npm install -g appium

Step 5: Check if Appium is installed

appium -v

Step 6: Use the below code to start appium

appium

Installing Appium with Appium desktop client

Step 1: Download the Appium desktop client

http://appium.io/

https://github.com/appium/appium-desktop

Step 2: Double click on the .dmg file to install the Appium desktop client

Step 3: Start the Appium desktop client

To verify Appium’s installation and its dependencies

Install Appium-doctor as it is a tool used to verify Appium installation. We can install it by using npm as we’ve already installed node

npm install appium doctor -g

If you want to check the version of Appium doctor, use the following code

appium -doctor --version

How to uninstall Appium

If you had installed through node.js, then use the below code,

npm uninstall -g Appium

If you had installed the Appium Desktop Client, then just delete the app

Appium Guide to connect a Real Android Mobile Device on Windows

Step 1: Download SDK tools

https://developer.android.com/studio

Step 2: Unzip the folder and then extract the platform-tools using the below code

sdkmanager “platform-tools” “platforms;android-28”

This command will extract the platform-tools

Step 3: Set the environment variables

ANDROID_HOME=location of SDK folder

Path: Append the path of the plaform_tools folder

Step 4: Check the command ‘adb devices’ in the command line

Step 5: Make the device ready

Enable developer mode to turn on ‘USB Debugging’

Step 6: Connect the real device to the computer using a USB cable.

Step 7: Run the below command

adb devices
adb = android debug bridge

Check if your device ID is displayed.

Appium Guide to Connect Real Android Device on macOS

To achieve this, you must have Java installed on your system, and the JAVA_HOME should be set in the environment variables command to check the Java –version. You should have also installed homebrew.

Step 1: Download the Android SDK

You can download it using this link directly and install it using the below-mentioned codes.

brew install android-sdk
brew cask install android-sdk

Step 2: Extract the platform-tools folder using the following command

sdkmanager “platform-tools” “platforms;android-28”

Step 3: Add environment variables

ANDROID_HOME = path of android-sdk folder

Path: Append the path of the platform-tools folder

export ANDROID_HOME=/usr/local/share/android-sdk
   echo $ANDROID_HOME
   export PATH="/usr/local/Caskroom/android-sdk/4333796/platform-tools:${PATH}"

Use the below code to set the environment variables permanently on the Mac system

   cd ~/
   cat .bash_profile

If bash_profile does not exist

touch .bash_profile

bash_profile
Press i and add the following

For setting the PATH for ANDROID_HOME

   export ANDROID_HOME=/usr/local/share/android-sdk

For adding the platform tools to the PATH

  
PATH="/usr/local/Caskroom/android-sdk/4333796/platform-tools:${PATH}”

Press the ‘Esc’ key

   :wq!

Hit ‘Enter’

Now Android Home and Path have been set permanently.

   echo $ANDROID_HOME
   echo $PATH

You should be able to run the command ‘adb devices’ now.

Step 4: Same as Windows, make your mobile device ready for automation by enabling developer options and turning on the ‘USB Debugging’ option.

Step 5: Connect the real device with your computer system using a USB cable.

Step 6: Run the following command

adb devices

Check if the Device ID is displayed

Running Your First Test on a Real Mobile Device

Step 1: Download Eclipse or any other IDE for Java

Step 2: Create a Java project

Step 3: Add the following libraries

1. Selenium Java

2. Appium Java client

https://mvnrepository.com/

Step 4: Connect your device and run the below command

adb devices

Step 5: Start the Appium server either from the command line or using the Appium Desktop Client

Step 6: Add the code to start automation on your mobile device.

Set the desired capabilities and start the calculator application.

 deviceName
    udid
    platformName
    platformVersion

    appPackage
    appActivity

Step 7: Run and validate

Appium Test Case for Native Android App (Calculator)

Step 1: Download the ADT Eclipse plugin or download the ADT bundle separately

Step 2: Open Eclipse and Create a new Project >> Package >> Class

Step 3: Import the Selenium library and TestNG inside that new project.

Step 4: Now create a small test Program for ‘Calculator.app’ to add two numbers.

package src_Appium;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
//import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.*;


public class Calculator {
WebDriver driver;

@BeforeClass
public void setUp() throws MalformedURLException{
           //Set up desired capabilities and pass the Android app-activity and app-package to Appium
           DesiredCapabilities capabilities = new DesiredCapabilities();
           capabilities.setCapability("BROWSER_NAME", "Android");
           capabilities.setCapability("VERSION", "4.4.2"); 
           capabilities.setCapability("deviceName","Emulator");
           capabilities.setCapability("platformName","Android");

   
  
capabilities.setCapability("appPackage", "com.android.calculator2");
// This package name of your app (you can get it from apk info app)
 capabilities.setCapability("appActivity","com.android.calculator2.Calculator"); // This is Launcher activity of your app (you can get it from apk info app)
//Create RemoteWebDriver instance and connect to the Appium server
 //It will launch the Calculator App in Android Device using the configurations specified in Desired Capabilities
   driver = new RemoteWebDriver(new URL("https://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void testCal() throws Exception {
   //locate the Text on the calculator by using By.name()
   WebElement two=driver.findElement(By.name("2"));
   two.click();
   WebElement plus=driver.findElement(By.name("+"));
   plus.click();
   WebElement four=driver.findElement(By.name("4"));
   four.click();
   WebElement equalTo=driver.findElement(By.name("="));
   equalTo.click();
   //locate the edit box of the calculator by using By.tagName()
   WebElement results=driver.findElement(By.tagName("EditText"));
           //Check the calculated value on the edit box
assert results.getText().equals("6"):"Actual value is : "+results.getText()+" did not match with expected value: 6";

}

@AfterClass
public void teardown(){
           //close the app
           driver.quit();
}
}

Conclusion

So we have done a comprehensive coverage of everything that you would need to know in this Appium Guide like the advantages of Appium, the methods to install Appium on both Windows and macOS, and also saw how to connect a real device on both platforms and run a test. We hope you’ve found this blog to be informative. As one of the best mobile app testing services providers, we highly recommend Appium for your testing projects to get the best results.