A Simple Approach to Test Design Techniques

What are test design techniques?

Test design is a significant step in the Software Development Life Cycle (SDLC), also known as creating test suites or testing a program. In other words, its primary purpose is to create a set of inputs that can provide a set of expected outputs, to address these concerns:

  • What to test and what not to test
  • How to stimulate the system and with what data values
  • How the system should react and respond to the stimuli

Therefore, various techniques exist for test design and execution. It is understandably crucial to utilize some effective test design techniques since software development is getting more complicated. Generally, software testing design techniques help you write better test cases and optimize testing processes. It also helps reduce the time of executing test cases while escalating test coverage. In this post, I will discuss the overview of software testing design techniques.

The importance of test design techniques

Test design techniques are applied to satisfy the goals of every individual in software development projects, including testers. Although the main purpose is to ensure that the products meet the expectations of clients and their businesses, these techniques allow testers to execute the test effortlessly based on various risk factors. Here is a checklist of standards that a smooth testing process meets:

  • Gather information to understand users’ requirements
  • Derive all important business scenarios
  • Design test scenarios for every derived critical business scenarios
  • Assign all planned test scenarios to different test cases

Then, you will have to choose a test design technique for each requirement. At this point, if things are correctly implemented, you can make significant changes that affect your ROI extraordinarily. Two of main advantages of test design techniques lie on their consistency and repeatability:

  • Possibility to reproduce a test: At several testing phases, testing techniques are considered as a set of rules help ensure a minimum level of consistency. Testers, indeed, would work much more efficiently with a base, thereby reducing a significant amount of effort in later fixing.
  • Increasing of the found bugs: Test design techniques can also be used as analytical tools. When applying techniques to elements, we often see problems in the definition of those elements
Types of test design techniques

Each of these test design techniques is suitable for identifying a certain type of error. The new standard ISO 29119 Software Testing includes the following techniques:

1. Specification-based or Black-box techniques

  • Equivalence Partitioning: The idea of this approach is grouping the inputs with the same attributes to partitions. Code is not visible to testers. Your task is to pick one condition out of each partition, which covers all possible scenarios, to execute test cases. If a condition of a partition is valid, other conditions are valid too. Likewise, if a condition in a partition is invalid, other conditions are also invalid. This helps reduce the number of test cases.
  • Boundary Value Analysis: This is one of the software testing techniques in which test cases are designed to include values at the boundaries. If the input is within the boundary value, it is considered ‘Positive testing.’ If the input is outside of the boundary value, it is considered ‘Negative testing.’ The goal is to select test cases to execute boundary values. In other words, the behavior of Negative testing is more likely to be incorrect than the behavior of Positive testing; and boundaries are an area in which testing is more likely to yield defects.
  • Decision Table Testing: This technique can be used in test design because it helps testers explore the effects of combining different input values when adhering business rules. A Decision Table is a tabular representation of conditions versus test actions. Conditions are considered as inputs, while actions are considered as outputs.
  • State Transition Diagrams: Using this approach, the tester analyzes the behavior of an application under test (AUT) for different input conditions in a sequence. You can provide both positive and negative input test values and record the system behavior. Any system in which you get a different output for the same input is a finite state system.
  • Use Case Testing: Use case testing is a functional testing technique, meaning programming skill is not required. It helps the tester determine which test scripts are executed on the entire system from the beginning to the end of each transaction.

2. Structure-based or White-Box techniques

  • Statement Coverage or Line Coverage: In this technique, every statement in the source code is executed at least once. Thereby, we can check what the source code is and is not expected to do. However, we cannot test the false condition in the source code. Statement coverage = (No. of statements Executed/Total no. of statements in the source code)*100
  • Condition Coverage or Predicate Coverage: Condition coverage is seen for Boolean expression. Condition coverage ensures whether all the Boolean expressions have been covered and evaluated to both TRUE and FALSE.
  • Decision Coverage or Branch Coverage: Test coverage criteria require enough test cases so that each condition in a decision takes on all possible outcomes at least once, and each point of entry to a program or subroutine is invoked at least once. That is, every branch (decision) is either true and false. It is helpful to invalidate all branches in the code to make sure that no branch leads to any abnormal behavior.
  • Multiple Condition Coverage: Every combination of ‘true’ or ‘false’ for the conditions related to a decision has to be tested in this technique.

3. Experience-based technique

  • Exploratory Testing: Usually, this process is carried out by domain experts. They perform testing just by exploring the functionalities of the application without having the knowledge of the requirements. Testers can explore and learn the system while using these techniques. High severity bugs are found very quickly in this type of testing.
  • Error Guessing: Error guessing is one of the testing techniques used to find bugs in a software application based on the tester’s prior experience. In Error guessing, no specific rules are applied.

Learn more details about these techniques at Different Types of Test Design Techniques You Must Know

Choosing the right technique

As mentioned, choosing the technique is the most decisive step. This step is dependent on these factors:

  • Type of system or software application: Testing techniques are mainly determined based on requirements for the domain of the application. Moreover, these techniques are applied differently between mobile and web applications.
  • Regulatory standards: It is evident that your selection of techniques must follow conventional rules of, and approved by the IT industry.
  • Customer’s requirements: Selection of techniques varies and is based on the customer requirements. If your customer does not provide any provision, you have to choose the experience-based approaches.
  • Level and type of risk: Risks may include lack of requirement, equipment or anything related to quality assurance. Both high-level and low-level design techniques can be applied.
  • Test objectives: Test objectives are important because it narrows down the scope of testing activities. Based on that, you can select the most suitable techniques for your project.
  • Tester’s skill and knowledge:  This plays a very crucial role in the selection of techniques since it depends on the availability of test documents like requirement document, analysis report, design document etc. The perception of testers about the application and experience on test execution help to figure out defects quickly, and make the product a quality one.
  • Time and budget: Some projects are short-term, and some are long-term. Based on the project you need to choose techniques. You need to cleverly calculate the budget for each project. For small budgets, cost-effective approaches should be taken.
  • Application development life cycle: The application development lifecycle has different stages, parallel to testing stages. Different stages of development and testing require different techniques.
  • Previous experience in types of defects tracked: This is a type of experience-based techniques on defects that you may encounter in the testing life cycle. What’s more, you can replicate the same situation and catch the errors that met previously.

While I have discussed aspects of designing techniques, I want to emphasize that a poorly designed test would lead to undesirable results or worse, fail to identify defects. Besides, I will discuss the types of designing techniques, their benefits, when to use, and the challenges that lie in each in the next article. Hope this helps!

Original source: https://testautomationresources.com/software-testing-basics/softwar…

Author:  Tierney Cantrell

Intro to Vital Pros & Cons of Bug Tracking Software

Without high-quality free bug tracking software, observing software bugs is unthinkable. No tester/developer can track every single defect in his or her head, nor with a single spreadsheet. Bug-tracking software enables teams to center around priority issues that directly influence the quality of the software product and impart to them more adequately.

Today, such overburdening Software development tasks have been offloaded to bug tracking software. The best news is that software bug tracking is presently a facilitated arrangement. There is no requirement for in-house tinkering of hazardous applications.

By getting the services of the independent facilitated free bug tracking software solution, you can just relax and let the administration fix the issue/bugs for you.

So, if you’re new to the software bug tracking system or software advancement world, you may have a waiting inquiry that you’ve needed to ask: for what reason would it be advisable for you to utilize software bug tracking process in any case?

All things considered, isn’t it similarly as simple to manage bugs with email, or a mutual software bug tracking spreadsheet on your organization’s server? You may think in this way, yet we lead against it.

Thus, in any case, you haven’t implemented a best or free bug tracking software system into your team; then consider the following pros and cons below.

Pros of free bug tracking software:
Quick arrival of the high-quality software:

The best free bug tracking software encourages you to distinguish and fix the bugs that are causing breakage and inability in your software product. Also, these software bug tracking tools will enable you to track the attempts of your QA team for streamlined administration of your QA services.

Enhance Return on Investment by Reducing the Cost of Development:

The best bug tracking software can organize bugs and allot issues. This spots dull issues and focuses on critical issues. The development team will have the capacity to focus on high priority defects as opposed to wasting time on smaller bugs. This enhances group’s efficiency and decreases the cost of the development.

Team connectivity and Better communication:

Most software testing bug tracking tools provide a communication infrastructure to your testing team. Attachment capability, email notifications, and Chat interfaces are only a couple of the features that decrease friction amongst development and QA teams.

Better Service and Customer Satisfaction:

software development bug tracking system permits end clients to report issues and bugs directly on their applications. Basic issues can be examined and unraveled through product adjustments. A list of bug tracking software or tools is composed such that you can utilize it effectively with no exceptional training.

It gives an automated reaction to end clients. They get updates and status of advancement through alerts.

This additionally gives better and significant services to clients by permitting inputs and proposals.

Expanded efficiency:

At the point when engineers can recognize, track, and fix software bugs, they take “ownership” of the bug and are urged to accomplish business as usual. The distributed interface of most online bug tracking software and tools gives developers a chance to monitor every others’ accomplishments, advancing profitability and cooperation.

Cons of free bug tracking software

Similarly as with anything that has a rundown of pros viewpoints, there is additionally a rundown of cons perspectives, however, there are few. One of the greatest cons isn’t so much from the software development bug tracking or software bug tracking tool itself yet more from the way of submitting issue requests. Clients should be extremely detailed with their issue requests in a case, they need a detailed response.

Miscommunication isn’t a blame of the product, the client, or the organization – it’s essentially something that happens. Clients and organizations alike both need to make sure to be persistent with each other and to treat each other with a common regard. A second complaint is that the length of issues in some of these project management and bug tracking software.

A few clients don’t have the tolerance to look through a not insignificant rundown of software issues that have been already recorded and this causes dissatisfaction among the organizations that took time to buy software that saves them.

The length of issues that are submitted can likewise turn into an issue because if there are excessively numerous issues submitted and insufficient architects to address them, some can get neglected. No one jumps at the chance to be overlooked, yet more often than not these sorts of simple bug tracking software incorporate point by point directions and are simple to utilize.

Consequently, top bug tracking software, when utilized right – as a tester, you understand your biological system better and as a team, it will enhance the general proficiency.

So, by utilizing this, an organization can oversee resources better way and offer arrangements substantially speedier. The software for bug tracking can be utilized as a part of every single phase of the advancement procedure, in this manner helping engineers to be content and more beneficial.

This should be done thoroughly and if you are not utilizing it then start working with us, as it will most likely affect your development attempts due to which it can also go in vain.

Author: TestOrigen Software Testing 

Practical steps to moving from manual testing to automation testing

Obstacles of moving from manual to automation testing
  • Too busy running manual tests
  • Put automation off until the “next release.”
  • Company culture is not open to change
  • Company is not sure about the investment
  • Not enough knowledge or experience to implement
  • Not sure how or where to start
Steps to go from manual to automation testing

Step 1: Build a good test case foundation

  • Why create a good test case foundation?
    Good manual test cases are blueprints for what you will and will not be able to automate. Explore automation framework options
  • Aim for goodness, not perfection
  • Test cases will evolve and change as you dig in deeper and learn more
  • Pick a tool to store and organize your manual test case. This can be as simple as you need

Common test case storage options:

Manual test case organization considerations:

  • The option should include tracking which tests can/should be automated and what has been automated.
  • Are you planning on storing test results and/or test plans with your manual test cases?
  • Create a wish list (need to have versus nice to have)

Tips: you can start simple and then import your list into a more complex tool if needed or wanted

Test case management tool wish list example:

Must-Have Nice to Have
– Hosted off-site (cloud)- Test plan management- The ability to export test cases, results, and plans

– Versioning for test cases

–  Variety of export format options (for test summaries)-  Integrates with the defect tracking system (e.g., Assembla, Jira)

–  Integrates with Slack

– The ability to execute automated tests from the tools

Step 2: Explore automation framework options

  • By framework, I mean what your tests are coded in that will run the actual tests. For example, the framework is what will actually send the test to the Selenium Server.
  • What if you don’t know what framework are available?
    If you don’t know, ask resources around you including: Developing team members, QA folks in professional organizations, QA/ Tech mailing lists or Forums, Slack groups, Twitter experts
  • Narrow down your list to about three options and create a matrix that compares each option. This could include building your own.

Framework options and examples:

  • If you are using Selenium, you have some great options: Java, Robot, Python, Ruby, Cucumber (and many more). This can be hosted or self-managed.
  • Many Selenium hosting providers give you “wizards” that will help you set up the framework environments that will work with the solution.

Step 3:  Explore infrastructure options

  • What hardware is needed?
    – Servers: physical, self-managed virtual machines, cloud hosted
    – How will the hardware be installed? maintained?
    – Backup strategy
  • What software is needed?
    – Buy versus Build versus Hosted
    – Versioning strategy for the manual and automated test cases
  • Will the automated test cases exist in the same repository as the project code?

Step 4: Make the first choice:

  • After you have proved to yourself that your approach will work, time to get the team to buy in on your solution
  • What is the quickest way to get to Proof of Concept (POC)?
    – Develop a good plan and get moving
    – The plan should include a REAL DATE for a POC
    – Many times you can take advantage of trial membership for some testing products and tools. If you need the trial extended to reach out to the company and just ask.
  • Have at least one backup plan in case the first choice does not work out.

Step 5: Start simple

  • What is the simplest way to implement your framework approach using your actual product?
    Selenium example: Can you use Selenium IDE scripts to confirm assumptions about product test-ability?

Step 6: Confirm your choice works

  • Go beyond the simple checks you have performed
  • Confirm that your choice will work in your specific environment
  • Many software providers will allow you to sign up for trial accounts so you can take a closer look.

Tips: there is no harm in asking for an extension on a trial account if you needed more time for analysis.

Step 7: POC for team buy-in

    • Proof of Concept (POC) is a chance to share your results, recommendations, and excitement with the large team.
    • Best to show a live demo if possible
    • Have dates and requirements for implementation
    • Helpful to have metrics or other supporting detail to exemplify why automation

Step 8: Implement

My automation implementation:

  1. Git: QA repository containing test cases, test queues, and vagrant/AWS configuration
  2. Jenkins: takes QA git repository and deploys on a Linux system based o config settings
  3. Linux system: launches vagrant/AWS system and executes Robot scripts.
  4. Testing bot: robot scripts are executed against the Selenium server(s) and the internal vagrant/AWS system.
  5. Slack: posts test results from the Linux system to the team. This is broken up between pass and failed test results with emojis.

Note: This video is originated from SeleniumConf UK

This article was originally posted at Test Automation Resources. 

Contact: Tierney Cantrell 

Why the Apps Crash & How to Fix it?

Since we’re all application dependent, it’s madly disappointing when you face any app crash problem while you’re highly involved with something vital. Let’s be realistic, regardless of whether you’re simply taking a BuzzFeed quiz when the application crashes, it’s still insanely disappointing.

People hate when app crash, or notwithstanding when they back off or freeze for a couple of moments. As per an overview by Dimensional Research, approx 61% of clients anticipate that mobile applications will begin inside four seconds, while 49% need reactions to contributions for two seconds. If an app pool crash, freezes or has errors, 53% of clients will uninstall it.

So, what’s the arrangement? We are hardly at the beginning of application advancement any longer, so for what reason some of the most popular, very much created applications keep on crashing on us? For those whose vocation and consumer loyalty relies upon the response to this question, it’s important to get to the foundation of this unavoidable issue.

Here are the few best ways your development can go off to some faraway place and leave your application at risk of app crash problem that taking off a performance cliff.

Wireless Only

Without a doubt, it would be superb if everybody who utilized your application utilized it with an exceptionally quick wireless connection. It would also be awesome if there were free, culminate Wi-Fi organizes wherever on the planet. But, that is not the truth we’re managing, is it?

No, a large number of your clients will likewise be getting to the application by means of terrible 4G and even 3G internet when they’re out on the town. Your application originator needs to get ready for association drop-offs in these cases. Your clients live regarding genuine spotty information associations, and that is the place your application needs to work.

Error Handling

Despite how much an engineer tries, it’s difficult to control all app crash error parameters and factors in specific circumstances. For instance, a client may lose Wi-Fi access amid a record exchange or a client may enter an incorrect value into a field. These circumstances don’t really prompt an app crash view, however great exception and errors dealing with skills from developers can have an immense effect.

Poor Construction

It shouldn’t come as an unexpected that a standout amongst the most widely recognized purposes behind an application to crash is on the grounds that it has code that could be portrayed as “sloppy”. At whatever point you have an issue with innovation, the principal reason you should dependably consider is human error. Indeed, even the best software engineers and application developer commit app crash problem, and it doesn’t take a major misstep to bug up a complex application.

Software Lifecycle and Development Process

Despite the fact that the conventional improvement process has its own upsides and downsides, it’s the most recent iterative procedure of application advancement which has made things much more confounded. The iterative application advancement process is very like agile development where engineers release an early form of a working application into the market to manufacture a crowd of people and enhance application features, outline, execution, steadiness and different issues after some time.

Memory Matters

This is App Development 101 people –in a case, you don’t get ready for enough memory control, and your application is bound to crash. The thing is, memory administration is truly unique for Android app crash versus iPhone OS. So, if you’re confirming different application developers, take additional care to discover somebody who is similarly comfortable with both OS memory and booting systems.

How to solve app crash problem?

So, launching applications into the market without satisfactory android app usability testing prompts huge amounts of security and execution issues; but, a brilliant and cost-productive solution is here i.e. android app QA testing. As app crash fix is only possible if the application should pass the Android beta app testing properly before launch.

Moreover, TestOrigen helps developers to test their applications on real devices with real clients, empowering them to effortlessly discover app crash problem and fix issues as quickly as time permits. We collect use logs locally and send them to the engineer’s online interface when a network connection is accessible.

Author: TestOrigen Software Testing 

Choose Mobile CRM to Get Strategic Advantages for Your Business

Nowadays, everyone is talking about how important it is to go for a mobile solution for your business. The benefits they describe makes you feel like building a mobile app of your own will work not less than a magic wand. But if there is such a buzz in the market, this becomes a fair question to ask. Can mobile really make such a huge difference to the bottom line of your business?

The answer is a resounding YES!

In the current competitive environment, your company’s strategic objectives have probably gotten more granular. Increasing sales through a mobile app by 20% is a corporate goal that just doesn’t cut as per Gartner survey. So, the real question for you here us, how exactly are you going to increase sales?

The strategic objectives of your organization will have to get more specific. This will help your organization to focus on fine tune the outcomes that you are planning. You will also have to check what impact it creates on the bottom line.

And, that is where CRM mobile app comes in. Customers these days expect you to come to them. So, agility in the field is a must have. It’s not good enough to just be there, either. You need to have the information that the customer needs now. Not tomorrow with a follow up phone call. You will have to have it Now. To close the deal today.

Some Questions You Need to Mull Over
Let me ask you 5 interesting questions and help you understand how businesses wish to drive their business through.

– Does your Managers wish to share data in real time?
– Do you wish to increase your average sale with a good margin?
– Wish to achieve maximum key field completion in customer records?
– Do you wish to reduce the billing lag time?
– Do you want to lower down the cost of sales?

Mobile CRM app can help you to achieve these strategic goals and make such wishes come true. The kind of goals that takes you ahead in the competition and gets money in the bank too.

Mobile CRM Helping Businesses to Take the Strategic Advantage for Your Sales Team
In today’s market it is important to differentiate yourself from the competition. Mobility is a way to increase the level of customer service.

Your sales people might be having high motivation to close higher value sales. While that may seem like an obvious statement, do they have the best tools to accomplish that objective?

Here, Mobile CRM is tool that helps them to drive their motivation in the right direction. It gives them immediate access to product information, account histories, price listings and data on promotions. This helps them to smoothly accomplish their job and offer more option to customers to build good sales. That all while chucking the web of office hassles. No calling back to office to ask for approvals, no return calls, no delays!

Mobile CRM Helping You to Keep Great Salespeople
Mobile technology has become a key role-playing differentiator. Now, companies that don’t provide mobile CRM to their sales people will struggle to fill the vacancies left by those exiting for more agile employers. The ideal solution will allow each sales person to use the device that he or she is most comfortable with. Whether it’s an iPhone, iPad, an Android device or Windows or anything else, they will be more motivated to use it when they love it.

I am sure you also want to earn good revenues from your business. Some real good revenues. Mobile CRM can help you achieve this objective and will render umpteen benefits. So, if you are working on a CRM then it is the high time you should integrate your CRM with Mobile app. All CRM will allow you to get a customizable solution with extend features. For example, if you are using SuiteCRM for your business, you can integrate it with SuiteCRM mobile app. It will be a technically sound, cost-effective and high-end flexible solution with more features. It will work as a light and cost effective platform for your CRM app that hold a potential.

Author: Maulik Shah

Learn Top Best Test Data Generation Methods with TestOrigen

With rising trends, the innovation is additionally moving from code generation paradigm to data model. The fundamental thought behind test data generation techniques is testing the capability of a product or an application. Testing an application with genuine information is essential to connect with constant situations and roll out the important changes accordingly.

In simple words, Test data is the recorded shape which is to be utilized to check the working of a software product program. It is the set of information that affects or is influenced because of the execution of a particular module.

Test data can be sorted into two classes that incorporate positive and negative test data. Positive test data is utilized to approve whether a particular contribution for a given capacity prompts a normal outcome. Negative testing is done to check a program’s capacity to deal with strange and surprising data sources.

The test data generation techniques are another fundamental part of software testing. It is a procedure in which an arrangement of information is made to test the capability of new and reconsidered software applications. This can either be the real information that has been taken from the past activities or an arrangement of manufactured information outlined particularly for this reason.

Test data generation techniques have a few conceivable methodologies, relying on the current situation. While there is nobody specific approach, a few top best test data generation methods are mentioned below:


1. Automated test data generation:

This system makes utilization of test data generation tools, which, thusly, quickens the procedure and prompt better outcomes and higher volume of information. One of the normal tools that are utilized as a part of this strategy is Web services APIs and Selenium/Lean FT.

One of the real advantages of automated software test data generation is the high level of exactness. There is likewise a superior speed and conveyance of output with this method. The best part of this system is that it can perform without the help of any human interaction and amid non-working hours. This, thus, helps in saving a considerable measure of time and in addition creating a vast volume of the precise test data.

The real weakness of utilizing this method is its high cost. Also, these are accessible in a particular structure, which, thus, makes it hard to totally understand the framework. This, thus, makes it an order for the HR to have essential skills and additionally for the organizations to give sufficient preparing to its accessible assets.

2. Manual Test data generation:

Manual test data creation is frequently improved the situation precisely covering the basic test cases. This is an especially direct method for making test data. Different situations are tested with various kinds of test data, for example,

  • Dataset for performance
  • Null test data
  • Valid test data
  • Invalid test data

Standard production information is regularly deficient when wide test scope is required.

One of the significant advantages of manual test data generation is that no extra assets are required to be calculated in. Testers are regularly urged to make distinctive data sets utilizing their judgments and skills. The time taken also require not be considered in, as it is a part of testing the application.

3. Third-Party Tools:

Third-Party Tools accessible in the market assist essentially with information creation and infusion. They understand data living in the back-end applications completely and help draw in data that is similar a continuous situation. Henceforth, the software test data generation winds up being differing and voluminous in nature and empowers wide test data scope.

Third-Party tools are precise with regards to making test information due to the tools understand the framework and the area completely. The tools are composed in a way that splendidly populates continuous information in the framework. The tools additionally help take care of the backdated data fill, which empowers clients to perform essential tests on the historical information. It isn’t fundamental for the end-client to have colossal domain level skills to play out this.

4. Pathwise Test Data Generators:

Considered to be one of the best search based test data generation techniques, this strategy furnishes the client with a particular approach rather than various ways to avoid confusion. Utilizing this method causes the clients to increase particular and better information and additionally anticipate its scope. This system influences the client to enter the program to be tested and in addition, the criteria on which it is to be tested, for example, statement coverage, path coverage, and so on.

5. Back-end test data generation in software testing:

The back-end servers, which include the database, are required in this method. Test data saved in the database can be utilized to directly update the current databases, in this manner getting voluminous information in a split second, through SQL inquiries. Despite the fact that this wipes out front-end information passage, it should be done carefully, keeping in mind the end goal to abstain from fiddling with database connections that characterize data integrity.

Back-end data infusion is a method that guarantees quick information infusion into the framework. It is moderately a more viable system. In the first place, the infusion of this information through back-end ordinarily requests lesser specialized ability in the examination with automated test data generation procedures. It ends up being a perfect skill as it also empowers the production of antedated sections, which is a gigantic disadvantage in both, manual and also automated test data generation procedures.

These are some of the best test data generations methods that, we use to generate test data at TestOrigen. The test data generation strategies are various and fluctuated. One should simply pick the best one according to their needs and program. If done legitimately, this can profit the organization in various angles and prompt momentous outcomes.

Author: TestOrigen Software Testing 

Managing QA Dilemmas with Appium Mobile test Automation

With the rise of myriad of mobile applications, operating systems, device platforms, networks, the need of quality testing becomes most critical. Automated mobile testing is still an ingenuous concept in the Quality assurance industry.  Mobile app testers were facing serious challenges until the emergence of Appium as the most reliable open source mobile test automation tool for testing Android and iOS apps. It reduced quite a number of challenges faced by testers and became a tester-friendly tool for automated mobile app testing. According to the world quality report 2017-18, the most common challenges that the QA team faces are lack of time in-house test environments, testing expertise and the lack of right tools and approaches to test the mobile apps, , difficulty in integrating test automation into a devops process, etc.In order to overcome these problems, there has to be a shift in the strategies and methodologies at a much deeper level for an improved customer experience.

Below are some of the challenges pointed out based on the experiences mobile app testers faced in Automated Mobile app testing:

Test Execution on multiple devices: It is difficult to deploy and run tests on different device environments. It is easy to buy and run tests on lesser number of devices but when the number is more, running automated testing on all devices becomes a bit tougher and time consuming. It is always a good idea to consider cloud services like pCloudy when testing large number of devices. pCloudy Appium integration architecture make developers’ life simpler with lesser changes in the code. You just need to mention some desired capabilities instead of calling APIs or doing changes in the code to run the Appium scripts. You can run tests in parallel on more than 500 devices. And wonder what! it makes you save 50% of your app testing time.

  • Device Connectivity: Devices come with different features. Some devices have certain limitations in terms of security, accessibility and drivers. Some features of the app that run on one device might not run on the other. So, the devices that would be used for testing would differ a lot in features hence the problem may arise at this level.
  • Test Performance: Testing on the Real devices is most effective as everything is validated on the real situations, especially in the case of testing performance and testing applications under different network conditions. Many of the gestures like GPS, proximity sensors, life sensors, etc cannot be tested on simulators. An application tested on emulator might not always work same on the real devices. There might be an incongruity in the same OS across different devices, let alone different OS. A device cloud testing can also be considered in the scenarios where there is a need of large scale device testing.
  • Access to networks: In order to have a smoother functioning, it is mandatory to have an easy access to the networks, databases and web services. In case of working with remote services, configuration of device tunnels and VPN connection would be required to have an easy access of resources. pcloudy’sDevice tunnel provides the developer a full control over the device on cloud. Through this, the cloud devices can be accessed via Android Studio or Eclipse IDE installed in the computer. This has helped the developers and testers to enter any kind of device hosted on cloud for running quick evaluation and app debugging sessions.

The above were some of the challenges of the Mobile app testing Automation but how does Appium solve these issues?

  • Appium supports Selenium Webdriver API which most of the testers are familiar with
  • No need to modify code of the application that is being tested.
  • Appium supports chief programming languages like JAVA, RUBY, PYTHON, C# etc.
  • Appium supports both IOS and Android mobile platforms
  • Appium has a huge community of users and is an open source tool.

However, it does have its own challenges on some of its versions. Challenges like it doesn’t support image recognition, not all features are available on both Android and IOS simultaneously, some APIs are not implemented, etc. Despite of these drawbacks, Appium remains the best choice of the testers.


Which environment is the most favorable one for the Appium performance? Is it on real devices or on the cloud?

  • On Real Devices– real device environment is the best to perform regression testing when it comes to providing real time user experience. But real devices always carry a baggage of being unscalability when it comes to handling large number of platforms. Its performance and test usage is high on real devices, parallel testing could be executed. It is best recommended when the device coverage is lower and handling the cost of multiple devices is not an issue which is a rare case.
  • On Cloud – Could is the best, affordable and scalable choice even in the case of large number of platforms. It can provide access to many devices to run tests at the same time. Cloud has other benefits like it can capture reports with screenshots and videos, support from the Appium cloud community,etc. It has an average performance on cloud services, parallel execution is possible even in this case. This is a highly matched scenario in the case of compatibility testing, regression testing and where the device coverage is high

Below table showcases the comparison of best test environment for optimal automation testing:


With the advancement in technology comes both opportunities and challenges. As the customer becomes technology friendly and aware, the pressure to provide the best would prevail and the QA community has to be a step ahead to deliver the best customer experience. They would need to tweak the methodologies, approaches and use the tools adept in handling technology advancements. Use Appium as a preferred mobile test automation tool is highly recommended. It supports Android and iOS and also the same code can be applied to both the platforms, it minimizes efforts, costs and saves time. It is open-source, free and has API based on Selenium which is practices by most of the testers. As of today, Appium serves the purpose even when aligned with pcloudy’s testing environment.

Sign up for free trail to test your apps on real android and ios devices. Click Here.

Author: Shankar Anamalla 

Brief Description of Keyword Driven Testing

The advanced keyword driven testing is the next generation test automation approach that isolates the task of automated test case execution from the automation framework.

Test Language isn’t a test automation approach. Test Language is an extensive test approach that hands over the duty of automation design, outline, and execution to the functional testers by utilizing keyword driven testing solutions.

In keyword driven testing using selenium, every keyword relates to an individual testing activity like a mouse click, choice of a menu thing, keystrokes, opening or shutting a window or different activities.

An advanced keyword driven testing is an arrangement of activities, in a keyword design, that reenact client activities on the tested application.

Fundamentally, to play out any testing activities, testers essentially simplified the keyword that relates to the coveted task or they can simply record their activities and the keyword driven testing in selenium that worked for them.

What is keyword driven testing?

The KDT is a kind of useful automation testing system which is also called table-driven testing or action word based testing.

In Keyword-driven testing, we utilize a table arrangement, more often than not a spreadsheet, to characterize keywords or action words for each function that we might want to execute.

The advanced keyword driven testing approach isolates the test automation usage from the test case outline. A keyword is characterized for each activity in the test case. Once the keyword is set, you needn’t bother with any programming learning to effectively outline and keep up the automated tests.

Testing tools utilized for Keyword Driven Testing:
Some of the keyword driven testing tools which are broadly utilized are given below:
Why do Keyword Driven Testing
Keyword Driven Testing is done because of the following reason:
  • Regular parts dealt with by standard library
  • Utilizing this approach tests can be composed in a more conceptual way
  • High level of reusability
  • The detail of the content is avoided the clients
  • Clients don’t need to utilize the scripting languages
  • The test is compact, viable and adaptable
Disadvantages and Advantages of keyword driven testing:
  • Keyword driven testing enables automation to be begun before in the SDLC even before a steady form is conveyed for testing.
  • There is a high level of reusability.
  • It is most appropriate for non-technical tester or a novice
  • Empowers composing tests in a unique way utilizing this approach.
  • Beginning interest in building up the keywords and its related functionalities may take longer.
  • It may act as a confinement to the technically abled testers.

Thus, the keyword-driven test automation is an awesome method to make adaptable test cases. It empowers teams with a differently technical foundation to work on test automation projects together while keeping test plainly organized and effortlessly viable.

Author: TestOrigen Software Testing 

What is Gantt Chart & How to use it?

Numerous individuals have never known about a Gantt-chart. Basically, a Gantt chart project management software is a visual perspective of task scheduled after some time.

Gantt chart software is utilized for arranging tasks of all sizes and they are a helpful method for indicating what work is booked to be done on a particular day. They additionally enable you to see the start and end dates of a project in one easy view.

Gantt chart definition: Basic Gantt charts are a staple tool in project management. They’ve accomplished this status due to their capacity to envision the timeline of the project and the resources required for it. In any case, with the plenty of various visual tools, you would now be able to use to track projects.

A Gantt chart developed by Henry Gantt is over 100 years prior and have been a staple of project directors ever since. The reason is that they are basic and natural to make and utilize, however, show a lot of data initially.

While Gantt chart project management software are like timelines in that both diagram types deal manage time and events, the configuration and reason for Gantt charts are very unique.

Gantt chart purpose:

Projects have a considerable measure of moving parts. They are normally time-delicate, so ensuring everything is arranged appropriately and keeps running on a calendar are urgent to effective completion.

Gantt chart project management is an amazing tool for small to moderate size activities including different individuals. They are easy to make and utilize. It doesn’t require a lot of time or push to make Gantt chart and stay up with the latest if you utilize a decent, intuitive software program.

How to create a Gantt chart:

It’s simple for anybody to make a free online Gantt chart. You can import an assignment list, or make one starting with no outside help, and immediately look at your Gantt bars populate.

Here’s a well-ordered Gantt chart tutorial for making a detailed Gantt chart:
Step 1: Make a new project

When you first sign in, you essentially enter a project name and select “Make”

Step 2: Add Tasks.

As you include tasks, the default date will be today, and since you haven’t included a more drawn out due date than today, the task shows up in the Gantt chart software open source to the all right, speaking to that they begin and end today. The dotted line represents the present date.

Step 3: Add due dates.

As you expand the dates, the bars on the Gantt broaden as well, demonstrating to you to what extent each task will take.

Instructions to Use a Gantt chart to Collaborate with Your Team

In spite of the gossipy tidbits, it’s easy to locally available your group with most online project management tools. When you have welcomed your group to the new tool, you can begin enhancing task administration in two or three distinctive ways. You can organize a team assembled to work out the project, appropriate on the Gantt chart tool itself. Or then again, you can pre-populate the rundown of tasks into the Gantt, either with a simple import capacity or reordering the rundown, so the tasks and assignments are now populated when your group trusts on a call.

Here’s the manner by which you can simply begin working together with your group:
Step 1: Allocate colleagues to assignments

You can simply re-assign or assign assignments to individuals in view of their accessibility. At the point when individuals are alloted to assignments, their name shows up over the task-bar on the Gantt.

Step 2: Customize Gantt Chart

You can customize your Gantt chart in software engineering in the way suits your group. Here, you can see that distinctive individuals are spoken to by various hues on the Gantt, so it’s easy to see initially, who is in charge of which tasks. Others may utilize hues to speak to various periods of a project or distinctive groups in charge of a gathering of tasks.

Step 3: Attach Files, Comments or Notes

At the point when your group works cooperatively on a Google Gantt chart tool, you can do as such substantially more than simply design tasks. You can include pictures, recordings, links, notes or remarks right at the task-level, so all the applicable assignment work is caught and effectively available in one place.

Step 4: Get Email Alerts

Your group can personalize email alerts in a way that works for them. That way, at whatever point their tasks have been refreshed on the Gantt or anyplace else in the framework, your group is quickly alarmed by that change.

Step 5: See What’s New

Every one of the reports on the Gantt can be found in one view on your Activity page. You can perceive what the group is working on and when tasks have been updated. Collaboration is simple with Gantt chart planning.

We’re almost certain you’ll locate your own specific way to take advantages of Gantt chart regardless of whether it’s for tracking progress, visualizing task dependencies, collaborating and scheduling. In case you’re looking for more direction in regards to project management, you should visit our website or give us call.

Author: TestOrigen Software Testing

Moving Beyond Traditional App Testing with AI and DevOps

Are we not living in an amazing time? Technologically advanced, digitally sound!

We thrive on all things digital. The world around us is becoming all digital with limitless possibilities. Today as a consumer, you can preorder your coffee, interact with augmented reality in the store, and skip the lines at store with alternative payment methods.

To cut the story short, as a consumer, we have access to unlimited goods and services and connected around us. And mobile is at the center of all this change. It’s the tool that is bridging the gap between the digital and physical.

And the availability of 5 million apps come as a proof of this explosion. In the first quarter of 2018, Apple had 2 million apps on App store. As of the same quarter, Android users were able to choose between 3.8 million apps. More and more businesses are adopting Mobile Apps as their primary channel for business growth. This explosion proves that mobile is at the core of customer experience.

Before moving further into the topic, you can watch the entire webinar here or else you can skip the video and continue reading to get the gist of the webinar.

As a business mobile Apps are not just another channel. More and more organization are realizing that it can be a means to create awesome customer experiences. There are numerous examples to illustrate.

One such example is Starbucks.

The secret to Starbucks’ app’s success is that it gives users an intuitive experience, making it as easy to find a store, order your coffee and make a payment through their wallet. Recently, Starbucks has also taken the mobile app experience one step further with an innovative conversational ordering system powered by Artificial Intelligence (AI). The explosion in mobile apps imply to speed. How quickly you can make a change and let the customer experience it? The mathematics of velocity matter here. Market speed has left companies with a simple problem: How do we go faster than we ever have before, without losing an eye on quality?

The success stories like Facebook and Netflix tell us that we can It is an amazing fact that Facebook mobile app is updated and refreshed every two weeks like clockwork. That’s the new normal. We will talk about this example in detail a little later in the webinar.

So in order to gain Quality@Speed, we reach to a point where experience and quality intersect and we name this convergence Quality@Speed. It’s a no brainer to say that Quality @ speed can be achieved with two fundamental principles.

Agile: Agility allows teams to work closely with business and it Pulls quality forward. It’s also called Shift Left of Quality. You are delivering small chunks to end consumers on weekly or monthly basis. This allows teams to get feedback early on.

DevOps: DevOps brings you speed. It’s a Shift left of operations.

DevOps practices allow you to create “ready to deploy code” on demand. In other words, it means deploying software and the environment on which it runs, automatically and on demand, at any stage of the software delivery lifecycle. You can truly have multiple deployment in a day.

If we dig deeper, DevOps is enabled by two practices Continuous Integration and Continuous Delivery. These two will not work in sync until you have continuous testing in place. It’s also proven by many independent studies.

Here, we have a look at the data extracted from World Quality report, 2017-18 showcasing the popular and the best practices followed in DevOps.

If we have a closer look at the data, we will find that 87% of CIOs and senior tech professionals use or are planning to use cloud based test environment. Depending on choice of organization, it could a Private or public cloud but it’s a must to achieve speed.

Second data point is about Continuous Testing, here as well more than 80% of respondents chose this as a preferred DevOps practice.

Let’s look at what some of the success stories say

Facebook follows Ship early and Ship often approach. They update their web app multiple times a day while their Mobile Apps with frequency of almost 2 weeks. This is possible with DevOps best practices they have been following from past few years.

If we analyze their DevOps story in short, we find that one of the biggest takeaway for Mobile Teams is their massive investment in device infrastructure. Every time they make a change to app, it gets tested on 2000 real devices. Imagine 2000 real devices! They have bypassed use of simulators/emulators.

Mobile DevOps Challenges
Now let us move on to have a look at some of the Mobile DevOps challenges that comes as an obstacle on the way of mobility teams.

Multi-platform Support
Mobile apps have multi environmental target. Mobile apps have to deal with device fragmentation as they need to be workable on multiple devices. This poses a test for Ops team to build an optimal device infrastructure. Moreover, it is difficult to keep pace with the ever changing device requirements.

Mobile apps as an enterprise front end
Mobile apps, that too, mostly the enterprise mobile apps catering to business-to-consumer (B2C) or business-to-employee (B2E) segment of apps, characteristically have very less trade logic on the mobile device itself. On the other hand, a B2C or a B2E mobile app serves as a front end to enterprise mobility already in use by the firm, such as transaction processing systems, employee HR systems, or customer acquisition systems.

This implies that the mobile app, available on multiple platforms as a native or Mobile Web app, needs to be built and delivered aligned with the backend services. The biggest challenge for DevOps is to think about enterprise mobility holistically and manage their build and release processes and cycles.

The App store
The app store includes an extra asynchronous step to the deployment procedure since developers are not able to update apps on demand. Even for grave bug fixes, new app versions need to pass through an app store submission and review process. Continuous delivery here gets a roadblock and the instant delivery becomes “submit and wait.”

Build Challenges
Since apps today are supported on multiple platforms, numerous different builds of the app has to be triggered each time when a change is being deployed by a developer.

The build system and configuration for each supported mobile environment is dissimilar from the others. You will probably require a small farm of build servers to be provisioned and available to manage these multiple operating system builds.

A typical Mobile DevOps Architecture

Let’s try to depict the Mobile DevOps cycle. Some of the tools mentioned here are a representative set of tools in the respective category.

It starts with a Dev checking in a code to Git/Versioning system. That triggers the CI server to build the App which could be Internal build server or a cloud system like Circle CI. Once the build is successful, Unit tests are runs on Real devices. If the Tests are pass, build is pushed to QA Env. Where Automated regression tests are triggered on real devices. If that’s a pass App compatibility tests for new features are done.

The Evolution

We’ve by now witnessed quite a journey to reach Continuous Testing. “Classical” testing was intended for software delivery cycles spanning months or year. Agile has changed this norm to a 2-week development iterations—but now something extra is required to meet today’s insatiable demand for software. Attempts to fasten the process further, created a chasm between Development, Test, and Operations. That gap has been bridged with DevOps and Continuous Testing in order to move beyond that speeding up plateau. However, when we look into the future, it’s clear that even Continuous Testing will not be enough. We need “Digital Testing” to achieve extra acceleration and meet the quality needs of future. AI can help us get there.

Mobile Testing and AI
If you keep pace with the market buzz you will find there is an ongoing debate about what AI can do? When it comes to testing, lot of theories have started predicting that AI has the ability to replace testing. Well personally I don’t see this happening in near future. But we certainly are very excited about capabilities AI present in from of us.

When we an organization think of using AI to sole testing problems we think on three lines
a) Can it improve speed of current testing process?
b) Can it help generate meaning full data for me to make intelligent decisions?
c) Can it improve the test coverage and reduce cost?

So, are you ready to adapt a personal assistant for testing. So are you ready to say? Certifaya, Can you run an App Test for me? pCloudy’s AI powered bot, can automatically test the mobile applications over hundreds of real mobile devices and gives its users real time insights into the app’s behaviour and performance. Do you want to explore more? Try Certifaya for free now and testify it yourself. You can also go through our webinar on the same topic to understand it in detail.

Author: Shankar Anamalla

1 2 3 4 5 34