by admin | Sep 20, 2021 | Automation Testing, Blog, Latest Post |
The need for automation in testing has been on the rise as more and more companies adopting for it which has also increased the demand. Going from being a manual tester to an automation test engineer doesn’t just happen in a snap. It is a process that takes time and requires a lot of disciplined effort. But at the same time, it is not like you will transition yourself into doing something totally irrelevant. As a leading manual QA testing company, we firmly believe the objective of both manual testing & automation testing to be the same, and that both are quintessential. So a good understanding of manual testing can help lay the groundwork for what is to come in the future. In this blog, we will be covering the automation tester skills that you should concentrate on to make a smooth and successful transition from Manual Testing.
Understanding the need
But before we head over to see what the must-have qualities of an automation test engineer are, let’s first understand the need for automation testing. The rise of the agile software development process has radically increased the rate at which software is developed. So automation testing has become the solution to meet the ever-growing demand as it is very much efficient in performing repetitive tasks over and over again. Now that we know the purpose of automation testing, we will be able to get a better picture of the focus points needed for this transition and understand them better as well.
Coding is the Key
There is just no other way to put it. Coding is one of the must-have automation tester skills when it comes to automation testing and there is no workaround that will let you bypass it. If you are considering tools that claim to perform codeless automation, we assure you that it is not a viable option. Learning to code is the first step that you have to take and there might be difficulties here as you might feel as though you are starting everything from scratch again despite being a manual tester all this while. But the actual situation here is that you are a software tester and you are just adding a new skillset.
Coding is the key to a successful automation career and so make sure you are familiar with concepts like Object-Oriented Programming, JavaScript, HTML Basics, Coding design patterns, and so on. The lingering question in your mind would be about what programming languages you must focus on. The answer to that question is Python, Java, JavaScript, XML, CSS, (C, C++ & C#), SQL, and Perl in no particular order. Do a bit of groundwork and find out which of these languages you have easier access to learn about and start your learning journey.
Tools and Frameworks to Explore
Learning the programming languages is a good first step, but it is by no means the only step you would have to take to hone your automation tester skills and fully transition into an automation testing engineer. You can further simplify the automation process with the help of the numerous open-source tools and frameworks that are available in the market. Once you have learned the various programming languages, you will be in a position to write effective automation scripts that can be implemented in such tools to get the job done. Selenium is one of the most renowned tools that every automation tester would use to automate the web application testing with their scripts. Likewise, Appium is a great option for mobile automation testing, Postman for API testing, and the list keeps going. Read our blog that covers the top 10 automation tools to get a better idea of what these tools can do.
Take the hassle out of the development process by using effective automation frameworks like Nightwatch.JS, Cucumber, and Protractor. Such tools will be instrumental in making your test suites easy to maintain, data handling, increasing code reusability, and so on.
The Automation Testing Life Cycle
We will not be taking a step-by-step walkthrough of the Automation Testing Life Cycle (ATLC) methodology. Rather, we would be bringing to light a few things about it that you should know to begin with. Deciding which test cases should be automated is the first and foremost aspect of this methodology. Just because we can do something, doesn’t necessarily mean we have to do it. The same applies to automation testing as well. You have to make sure you’ve understood the product and the requirements well enough to run a risk analysis. Based on that analysis, you should implement automation only in places you deem to be necessary.
This decision plays a pivotal role in the test strategy that you will be implementing in the ATLC. Once you have narrowed down the test cases you should automate, you can then pick the automation tools that you will be needing to complete the task. Few tools are open-source, few are not. So you would have to also plan the predicted cost and calculate the estimated ROI to make sure your decision to automate was correct. If there is no scope of ROI, then it would be probably best to review the initial decision. After which, you would have to plan, design, and develop the tests and move forward with the regular testing process of executing the tests and reviewing the results before starting the next cycle.
The Learning Curve
Completing a degree or a course is a great value add. But that alone is never enough. “Practice Makes Perfect” is an old saying, but it still holds up when it comes to automation. The key factor to remember is not to overwhelm yourself by starting out with extremely difficult tasks. Even in case of any misstep, simple test cases will make it easier to debug, maintain, and even reuse. Start small, but make sure you do it right. The more you keep automating test cases, the more equipped you get in handling any unforeseen scenarios that might arise as challenges in the process. The objective here is to develop your automation tester skills and not just getting certified. So make sure you continue the learning process by being updated with any new tool in the market, new tips, hacks, and so on.
Conclusion
We hope you found this blog to be insightful and helpful. Finally, we would like to say that you have to be rooted in the concept of delivering better software quality. As one of the best manual software testing companies, we understand the importance of manual testing and that it can’t be completely replaced with automation. So make sure to stay updated on both fronts as both are vital aspects in delivering quality software.
by admin | Sep 22, 2021 | Automation Testing, Blog, Latest Post |
During the early days, record and play was popular to create automation scripts. However, in the modern era, it goes without saying that you have to be highly skilled in test automation scripting. Some automation testing tools claim that it supports code-less automation. But in reality, there is no substantial fact to prove that code-less automation is a game-changer and that no coding knowledge is required to create test automation scripts. In this blog article, you will learn why coding skills are a key to kick start your test automation career and what are all the coding concepts you should know to begin with.
JavaScript & HTML Basics
Basic knowledge in JavaScript and HTML is a must-have skill for any automation tester. If you have sufficient knowledge about a web element’s HTML tag & attributes, and its associated JavaScript events, you can create a robust automation test script.
Let’s say you want to fill a date using the calendar field, there is no need for you to automate the date selection in the calendar field. Rather, you can fill the date directly using the Selenium JavaScriptExecutor instead of writing complex code snippets.
In addition to that, you should also know what the HTML DOM tree structure is, and how the page components are divided using DIV tags. So it is evident here that basic knowledge in JavaScript and HTML is very crucial when you are at the budding stages of your test automation career.
Object-Oriented Programming
We know for a fact that it is not possible to create an automation test script without a class. So it is mandatory for you to know the below-mentioned object-oriented programming concepts prior to starting your test automation career.
– Constructor
– Object Creation
– Method Overloading & Overriding
– Inheritance
– Getters & Setters
As a leading automation test company, we make sure we provide the best in class programming and tool level training to all our resources before they are inducted into any project. Make sure you pour your heart and soul into the process as it is vital for you to know the real purpose of each concept and how it is implemented in test automation while learning object-oriented programming. One of the best sources to learn OOPS concepts is the multiple GitHub projects which are public. You will be able to learn how OOPS concepts are used in test automation and fly high in your test automation career.
Coding Design Patterns
Page Object Pattern is a fundamental part of programming that every test automation engineer will know about. However, there are a lot of other coding design patterns which you can use in test automation to avoid boilerplate codes.
Singleton Pattern
When it comes to test automation, you can use the Singleton pattern for DB connections. Once a DB connection is established for query execution, there will be no need for you to open a new DB connection to execute another query if you use the Singleton pattern.
Factory Pattern
Factory Pattern allows you to create an object from one of the several possible classes that share a common superclass. By following this pattern, you can hide the instantiation logic and avoid writing complex logic inside the ‘if else’ blocks.
Strategy Pattern
Using the Strategy pattern, you will be able to implement the methods’ logic of multiple classes that share a common interface and objective and call the methods in one place instead of calling all the implemented methods of the classes for different logics in multiple places.
Dependency Injection
There will be a need to create multiple page object classes for test automation. If you want to create objects for the page object classes only once and serve the created objects in all the tests, then you need to know how to set up the Dependency Injection pattern in your Framework.
Though Test Automation Design patterns are advanced concepts, you should at least know the basics of them before starting your test automation career.
Exception Handling
You have to keep in mind the fact that you will never handle exceptions in your automated tests. The reason behind it is that if a script throws an exception, it will be marked as a failure and the exception details will be required for troubleshooting. However, if you get into the framework and other automation library development, you have to catch exceptions because libraries are not tests. So make sure to avoid unwanted exceptions. It would be better if you report them in log files that are related to test automation frameworks.
Assertion Libraries
Assertions are important to report whether an automated test case has passed or not. There are several assertion libraries available in the market and so you should learn how to use assertions in your tests. Apart from that, you should also know that assertion chaining allows you to write complex validations in a single readable line.
Conclusion
As an Automation Testing Services Company, we train our resources in all the aspects of coding in order to create robust test automation scripts and frameworks. As stated earlier, even with the introduction of tools that claim codeless automation, there is just no path to automation without coding. Simply put, you can’t ignore coding and do automation testing as coding will have a huge impact on your test automation career.
by admin | Sep 20, 2021 | Automation Testing, Blog, Latest Post |
Nowadays we cover all the functional tests in automation using Selenium and Appium tools. But the question here is, are we doing the Automated GUI Testing right? We would definitely check whether a button is clicked or not. But we might fail to check whether CSS has been applied as excepted and if the button is displayed to the end-user as per the design.
Let’s say an e-commerce website has an ‘Add to Cart’ button that is blue in color and the font is white in color. But what if the font color is also made blue by mistake? The result would be a button that seems to be empty despite having the text. The more serious underlying issue here is that the end-user will have difficulty in making a purchase as they will not be able to find the ‘Add to Cart’ button. In this case, the automation test script will pass even though the issue is a huge business concern that will lead to financial loss.
Another example is having a button that is too small and inconvenient for touch action on mobile devices. These type of issues can’t be spotted until it is tested manually. So, in this blog article, we will be taking a look at how to get automated GUI testing right.
Layout Testing
The above-discussed roadblocks and topics of concern can be overcome if we had the option to check the layout of the GUI elements.
Galen Framework is a great option that will fulfill this need of ours as it enables us to check both the size and alignment of GUI elements on multiple browsers and devices. .spec is the file format of the Galen script and you can write the scripts using the Galen spec language. Specs files can be triggered for execution from JavaScript and Java as well.
Galen is an open-source project. It even lets us perform Selenium actions in order to perform some functionalities on GUI and view certain page components. Parameterization is a critical feature for any test automation framework, and Galen supports parameterization in data tables. We will be able to tag the data table inside the spec file.
Grouping the tests and running a group test using its tag is a must-have feature. We know for a fact that we will not run all the tests in one go every time. Moreover, if you don’t group the tests, the test output (HTML Report) will list all the executed tests in one group instead of showing a segregated output. So it becomes a cumbersome task for an automation tester to analyze the report. Galen also supports mutation testing.
As an automation software testing company, we have used Galen in many of our automation testing projects and detected many responsive and GUI-related issues that would have been overlooked without Galen.
Visual Testing
Visual testing is another viable option we can opt for to detect many UI issues. But what is visual testing? Storing the baseline screenshots of web pages, and capturing the actual images again to compare them with the baseline images is called Visual Testing. As stated earlier, when a Selenium script is used to click a button, the script does not confirm whether the button is displayed as per the design. However, if you compare the web page screenshots, you will unearth many UI issues and have enough time to solve them.
Menu Touring
Menu touring is a type of visual testing and it is exactly what the name suggests it to be. We will write scripts to navigate all the pages from the main menu and all the other available links as well. Once the page is loaded, we can take a screenshot and compare the screenshot with the baseline image. As one of the leading software test automation companies, we set up a menu touring automated test suites as visual smoke tests for our clients. So with the feedback from both the Automated Function Regression testing and Visual regression testing, your team will be able to deploy the application confidently.
Tools for Visual Testing
It is very much possible to create Visual regression test suites without the aid or usage of any visual testing tool. All you would need to know is how to navigate to different web pages/mobile screens and compare the screenshots. However, there are some tools available in the market which are specifically developed for the purpose of visual testing alone and they can come in handy.
Applitools
One can say that Applitools is a quite sophisticated visual testing tool as it supports over 50+ frameworks and languages. Using it you will be able to write tests for web, mobile, desktop, IoT, AR, and even VR apps.
Percy
Once you have written the tests using the above tool, the other aspect is comparing the screenshots and that is where Percy comes into the picture. It can be used to compare the screenshot against the baseline image. You can even run the tests with different responsive widths and even across different browsers.
Functional testing alone is not sufficient. Visual testing is a must to identity GUI issues that could go overlooked during functional testing. So pick the right visual testing tool which fits well with your existing CI/CD pipeline. If a tool is a good fit for your requirement, go ahead and use it instead of reinventing the wheel. Implementing and managing custom frameworks for visual testing is an overhead that should be avoided. As a tester, you must focus on being able to provide quick and accurate feedback at regular intervals. So leave the visual testing to the tool as your job is to create the scripts.
Conclusion
Automated GUI testing is instrumental in deploying your website/apps with the utmost confidence. GUI issues have the potential to bring down your business’ reputation at first sight even before your product has a chance to win the customer over with its functionality. So make sure to catch the GUI issues before they are reported by end-users.
by admin | Sep 20, 2021 | Automation Testing, Blog, Latest Post |
Programming language for automation testing should never be chosen based on popularity. There are several factors involved in choosing the best programming language for Test Automation. While some may prefer an option based on the testing team’s skillset, some teams go with the programming language which was used to develop the application to be tested. Are these factors alone enough? Let’s find out as we will be exploring the factors to consider when choosing a suitable programming language for your automation testing needs.
What programming language is best fit for test automation?
We, as an automation testing company have faced this question multiple times from our clients during sales calls. But imagine if this same question is asked to a Ruby programmer, the obvious answer will be “Ruby is an excellent programming language that will satisfy all your needs”. We shouldn’t be surprised with this answer as a person who has been using Ruby for a while will seem to feel that way.
But if we take a closer look at the reality, we will understand that the Ruby, Cucumber, and Selenium combination was very popular among automation testers a decade ago. The lack of community support and the emergence of other programming languages have resulted in Ruby losing its popularity. However, if you use Ruby even now, you will still love it as the aspects that made Ruby great are still there. It’s just the popularity that has gone down and that in no way makes a great language bad.
So let’s jump straight to the point and take a look at the factors an automation testing team should consider when choosing a programming language for automation testing:
1. The Automation Tools in use
If the automation testing tool you’re using is the right fit but supports only a few programming languages, then you would be left without much choice as you would have to choose from the languages that are supported.
The Common factor
There could be times where the programming language used during the development stages would also be supported by the test automation tool and have a lot of test automation libraries that you can benefit from. During such scenarios, it is better to opt for that language.
Your Forte
Everybody has their own strengths and weaknesses. So if your company or team has testers with a specific programming background and the tool also has good community support for the language, you can go for that programming language.
Checklist
Performing this action will definitely help you make a more educated choice that fits your needs. You would have to prepare a checklist of the valid reasons that would justify the choice of not just the programming language, but also of the automation tool. So what you would have in your hand is a report of whether you are taking a biased decision or a decision with the mindset that is unwilling to go out of your comfort zone. Be very point-blank with your justifications to get the best results.
Now let’s go over some of the popular programming languages we have used thus far in our automation testing projects. But more importantly, we will also be seeing what made the language popular and thereby help you have a better insight when making that choice for yourself.
Java
When Selenium and Appium emerged in the market, the trend to write automation tests using Java also picked up. If you go to any Selenium tutorial page right now, you will be able to see the examples using Java in the very beginning. Maven and Gradle are two major value-adds for Java as you will be able to develop some unique test automation framework features using Java if you know the design patterns and Maven capabilities. It is also fairly easy to find an automation tester who is knowledgeable in the Java, Selenium, and Appium combinations.
Python
According to a report, in the year 2020, 29% of the tutorials that were searched for was for Python and 19% for Java. Python’s popularity explosion was very quick and the stats are a clear reflection of that fact. But that alone doesn’t make Python one of the best programming languages for test automation. We, as a software testing company, have started recommending Python to our clients as the support for the tool, the libraries for automation testing, and the talents from different regions also grew in tandem with its popularity.
JavaScript
JavaScript was originally introduced for client-side programming. No one even thought about using it for server-side until Node.js came into the picture. To adopt a programming language for automation testing, it should have a package manager which allows to upload & download the test automation libraries and the automation tool should have 100% support for the language. When Node.js and npm were launched, JavaScript got the package manager it needed and gained more popularity.
C#
When Microsoft made the .net framework open-source with (.net core), it enabled the support for Linux & macOS. This is turn resulted in C#’s popularity shooting up drastically. Nowadays C# is used widely for the development of Desktop and Gaming Apps. If your team is using C# for application development, then C# is a great choice for automation testing as well.
Conclusion
You can’t choose a programming language for automation testing by others’ opinion, and that goes for our opinion as well. As a leading QA Automation Services provider, we use Python, C#, Java for multiple automation testing projects. But we do not pick them at random as every project has its own requirement. We never fail to perform the evaluation using the checklist to pick both the automation tool and the programming language.
by admin | Sep 7, 2021 | Exploratory Testing, Blog, Latest Post |
Exploratory testing is so widely used nowadays that almost all agile methodology projects use them to good effect. So if you’re wondering what makes exploratory testing an important component that is needed for a product to be successful, we have a simple answer. Exploratory testing has the potential to not just identify, but to even resolve certain issues that may have gone unnoticed during scripted testing. But what makes it that way? If you give it some thought, you will understand that scripted testing doesn’t capitalize on the tester’s expertise. Though it has its own advantages, scripted testing alone is no longer enough to meet high-quality standards. As a leading QA company, we have employed mind maps for our exploratory testing documentation in various projects. So in this blog, we will be exploring why you should document exploratory testing using mind maps.
Exploratory Testing
Let’s have a brief introduction to exploratory testing before we head over to the exploratory testing documentation part. To put it in simple words, exploratory testing is a software testing method that involves focusing on the requirements, the test design, and the test execution at the same time. It’s a hands-on technique in which testers are involved in as little planning as possible while still performing as many tests as possible. Usually, in testing, the test cases are written in advance along with the expected results. After which, the testers will perform the tests and compare the actual result to the expected result.
What makes exploratory testing different is that the expected results are not defined, as not all results can be predicted. As mentioned earlier, exploratory testing can be used to tap into the potential of a seasoned software tester who has vast experience. Moreover, only an experienced tester will be able to perform effective exploratory testing as a fresher who might be even able to perform automation testing will suffer without experience. But it is a well-known fact that experience alone doesn’t make a person more adept in their field. So it is vital that the tester has the required expertise as well.
Why is Documentation Necessary?
Quality can’t be achieved by just finding the bugs, it can be achieved only if the identified bugs are fixed. That is why good documentation is an integral part of exploratory testing. Just imagine yourself being on any team, be it sports, IT, or any domain, it is of paramount importance that all the players on your team are on the same page as you. If there is a lack of communication within the team then you would no longer function as a team, rather you would be functioning as an individual in a group. Good documentation doesn’t just make it easy for every person on your team to understand your actions, it’s also instrumental in helping you maintain a record of your actions that can be used to reflect upon and create new strategies.
There are multiple ways one can document the test cases, but just like how exploratory testing has its distinct advantages, let’s find out what are the plus points of using mind maps for exploratory testing documentation.
Exploratory Testing Documentation using Mind Maps
Mind maps in general, have a lot of advantages for many use cases. But in this blog, we will be focusing on what makes them apt for documenting exploratory testing. Unlike formal descriptions, the structure of mind maps is very much adaptable to changes. It is a powerful approach that has the capacity to improve learning about the application/product and enable testers to solve the problem in creative and efficient ways. Since the expected results are not defined in exploratory testing, we can add new nodes during or after execution to cover the entire application. You can create as many test cases as you want in your mind map using different nodes, you even can add a node, edit an existing node, or delete a node as per the requirement.
For a better understanding of the exploratory testing documentation, let’s take a look at an example. The mind map we have used below illustrates the exploratory testing flow for the process of ordering a product from Amazon.
Mind Map for Ordering on Amazon
If not for exploratory testing, a tester would generally
→Check for the navigation smoothness
→Cosmetics check on each page
→Check for the timeout session
→Check for the amount deduction, reduction, etc.
But as an exploratory tester, he/she would have to perform the test cases using both mobile and web login. So mind maps are a great option for the high number of combinations that would be required during exploratory testing.
If the tester had to perform the same action, but as an existing user, then the general way to write test cases would be,
Positive test cases:
The primary objective here is to ensure that the login is successful when the correct credentials are given.
Entering correct email id or the phone number → Okay
Entering correct password → Okay
Negative test cases:
The objective here would be to ensure that the login is successful only when the correct credentials are given. So we would have to try out different combinations to make sure that everything works correctly as planned.
Combination 1 :
Entering incorrect email id or phone number → Okay
Entering the correct password → Supposed to throw an error → Okay
Combination 2 :
Entering correct email id or phone number → Okay
Entering incorrect password → Supposed to throw an error → Okay
Combination 3 :
Entering incorrect email id or phone number → Okay
Entering incorrect password → Supposed to throw an error → Okay
Despite using straightforward terms for a very simple scenario, this type of descriptive exploratory testing documentation might still confuse people. But at the same time, if we use a mind map to represent the same information, it will definitely seem simple.
Mind Map for Existing User
On seeing this mind map, even a non-technical person like a Business Analyst will be able to understand the way of testing. The visual representation helps to create an uncluttered outline of the entire process making it far more superior than the regular documenting that can be done on a notepad or similar tools. Apart from that, mind maps will be instrumental in predicting what other errors could be there based on the existing record and save loads of time and effort.
In the future, if there was an additional screen that was added after the login screen, it can be represented as follows,
Mind Map for Additional Feature
The above figure illustrates the concept of an additional screen that has been introduced next to the login screen as a part of security for the application. So according to that, even if the correct credentials are given the user would have to enter the captcha code correctly to successfully log in.
Conclusion
Since exploratory testing is also reliant on the tester’s cognitive skills, mind maps are an excellent choice that can bring the best out of the exploratory testing documentation process. Our highly skilled team has enjoyed using mind maps to provide the best exploratory testing services to all our clients, and we highly recommend you try it as well. We hope you found this blog to be informative. If you have any doubts or strategies you would like to share, make sure to use the comments section.
by admin | Sep 2, 2021 | Mobile App Testing, Blog, Latest Post |
The advent of technology has enabled many businesses to thrive through the power of the internet. There used to be a time when ventures had to rely on their physical shops and traditional means of advertising to establish presence and relevance in the market. Nowadays, it’s all about the eCommerce platform and its ability to showcase different products through an intuitive and user-friendly platform.
If you happen to run your online store, chances are you’re still trying to find ways to make it trend in your market. When promotional materials aren’t cutting it anymore, it may be time to invest in a mobile app to represent your online store.
It may seem trivial at first until you realize the different advantages that it may provide towards your venture:
1. A Wider Reach
Investing in the creation of a mobile application for your online store will attract more people to your products and lengthen your reach amongst the target market in general.
Most people now use their cellphones to accomplish various tasks and transactions, and investing in mobile apps means you wouldn’t be left behind, primarily if your competitors utilize them as well. Strike while the iron is hot and grab the opportunity to have your online store app now! Increase your sales by having more leads and customers upfront.
2. An Ever-Changing Trend in Sales
Mobile apps are customizable. Sure, you may retain its primary function as a storefront for all your products and branding. However, you may still change how they will be represented by utilizing different placements and designs, all of which can be accomplished with the help of your programmers and designers.
Remember that this may require you to look at the data from time to time to determine which designs are trending and how they may best acquire the appropriate reactions towards your brand. Just remember to be in sync with your data and creative team so that the core messaging of your brand will not come in conflict with the app.
3. A Whole List of Options and Preferences
Thanks to a mobile app, your target audience will never have to be limited by the options offered by your online app store. They will all have a specific rundown of products while hiding all the rest that they’re not interested in. For example, if you happen to be looking for a television, chances are you do not have any patience to go through a list of washing machines and vacuum cleaners just to find that 24-inch flatscreen.
If you want to attract more customers to your brand, implement this feature to add convenience to the interface. Just be sure to hire the help of mobile testing services so that this will be executed flawlessly.
Conclusion
There are various reasons an online store may need to invest in mobile application development. So as long as you know the different advantages that it may provide towards your brand, you may be able to make the most out of its functionalities and deliver an app that doesn’t alienate your intended market.
Focus on getting a wider reach, adjust according to ever-changing trends, and offer user-friendly navigation that your target audience will love in the long run. Do this all efficiently and watch your sales grow over time!
If you want to ensure the quality of your mobile app, you may need the help of mobile application testing services. In that case, we at Codoid will be more than happy to help you. We provide a wide range of QA services ranging from analytics and regression testing to mobile apps and game testing. Contact us today!