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

Learn Basics of Ruby Automation Testing Tool

Ruby testing is a universally useful, object-oriented, intelligent, dynamic programming language. It was first created and outlined in the mid-1990s by Yukihiro “Matz” Matsumoto in Japan. As indicated by its maker, Ruby was impacted by Eiffel, Perl, Lisp, Ada, and Smalltalk.

Smalltalk is a genuine object-oriented language. Ruby automation testing tool, same as Smalltalk, is an impeccable object-oriented language. Utilizing Ruby syntax is significantly much easier than utilizing Smalltalk syntax.

Ruby on Rails automated testing is a greatly gainful web application system written in Ruby by David Heinemeier Hansson. This Ruby automation testing tutorial gives you a complete understanding of Ruby automation testing.

Why Ruby testing?

Ruby testing started in Japan and now it is picking up fame in US and Europe too. The accompanying components contribute towards its fame

  • Simple to learn
  • Really object-oriented
  • Less coding with fewer bugs
  • Easy to broaden
  • Accommodating community
  • Open source
  • Rich libraries

In spite of the fact that we have numerous motivations to utilize Ruby testing tool, there are a couple of disadvantages also that you may need to consider before actualizing Ruby

Performance Issues − Although it competitors Python and Perl, it is as yet an interpreted language and we can’t contrast it and abnormal state programming dialects like C or C++.

Threading model − Ruby automated testing does not utilize local strings. Ruby strings are reproduced in the VM as opposed to running as local OS strings.

Features of Ruby testing framework:
  • Ruby is open-source and is freely accessible on the Web; however, it is liable to a license.
  • Ruby tool for testing can be utilized to compose Common Gateway Interface scripts.
  • Ruby can be inserted into Hypertext Markup Language.
  • Ruby has a perfect and simple sentence structure that enables another developer to learn rapidly and effectively.
  • Ruby is a broadly useful, interpreted programming language.
  • It is truly object-oriented programming language.
  • Ruby is a server-side scripting language like Python and PERL.
  • Ruby can without much of a stretch be associated with Sybase, MySQL, DB2, and Oracle.
  • Ruby has a rich arrangement of inherent capacities, which can be utilized straightforwardly into Ruby scripts.
  • Ruby has comparable sentence structure to that of numerous programming languages, for example, C++ and Perl.
  • Ruby for testing can be installed in POSIX and Windows conditions.
  • Ruby helps numerous GUI tool, for example, GTK, OpenGL, and Tcl/Tk.
  • Ruby is especially versatile and huge projects written in Ruby are effortlessly viable.
  • Ruby testing tools can be utilized for creating intranet and Internet applications.

We, at TestOrigen also perform automated testing with Ruby as well as Ruby on rails testing and provide 100% bug-free software products to our worldwide customers.

Author: TestOrigen Software Testing

5 Emerging Software Quality Assurance Testing Trends to Follow

Quality Assurance Testing is a critical step in the process of software development. It enables discovering defects early on in the development cycle, saves money, time and frustration.

3 Reasons Why Quality Assurance Testing Services Are Essential

The following are reasons why quality test services are important for success in any software development project.

  1. Saves money and time. While it may take time to understand QA testing and software testing servicesthroughout the development project, it would cost considerably less to fix an issue early on in the cycle instead of having to go back to numerous steps in the development process to fix something later on. Thus, QA Testing should happen throughout the project lifecycle than simply at the end or during the phase implementation.
  2. Prevents feature creep. Definitely, adding a specific feature may sound like a great idea, but during documentation review, a quality assurance tester could bring up several possible concerns, which should be looked into before moving further. These could include security questions or concerns on how it easy it would be for the app to be scalable, if the feature is added.
  3. Minor change could have a major impact. Even if there’s minor change to the software app, a QA tester has to understand its effect and test it. A good analogy would be to imagine if there was a slight change to the navigation code, which an airplane uses, and someone has decided that it’s not worth testing. It’s likely no one wants to fly with that company. It works the same with software development. If each component has not been tested, nobody would know that it would perform as expected when deployed.

Quality Test Services In Today’s Software Development Process

Nowadays, where quality is a primary factor all over the world, software testing are indispensable for any organization to ascertain the least possible risk for the end product. Dedicated QA team works 24/7 to help clients across industry verticals meet their organization-wide quality standards and goals. Furthermore, the QA testing team have proficiency in numerous platforms, technologies and standards, thus they could apply integrated testing strategies as well as the best testing solutions.

Top Emerging Testing Trends To Follow In 2018

To continue the business mobilization era as well as digitalization brings new techs in software development, together with quality assurance testing services trends. As it is, the QA department is one of the most critical ones, which defines the weak points of apps and websites before they’re launched. In itself, testing is an important stage of developing software, wherein all QA initiatives will save money and time by finding bugs or problems fast and in an effective manner. So, every QA expert should be updated on the latest testing trends to be able to present a product that is high-grade, which clients demand.

When it comes to software testing, quality and speed work hand in hand, indeed. Check out the top techniques to find out the latest trends in usability, performance, compatibility, functionality and security testing areas.

  1. The IoT conquest. The internet of things is becoming the Optimus Prime among others. Applications and software, which connect hardware to the web or with one another bring about huge concerns for the IoT project QA team. Establishing security priorities as well as defining the correct testing tools isn’t easy. An IoT product should be tested for its reliability, functionality and its effectiveness. The IoT tech breaks boundaries and expands possibilities. However, it’s also vulnerable to bigger amount of breaches in security. Thus, this latest trend to be focused and thorough when performing dynamic and static testing of internet of things gadgets.
  2. Open source tools would win over the world. It’s a fact that more and more companies accept the services of Open Source to execute test management and automation, defect management and DevOps and agile tactics. This means only that the next era would bring further expansion of the newest tools in the market, which is the Open Source ones. This could lead to greater support communities’ involvement for open source tools that become more active. Full support, feature richness and accountability of the said technology reduces development costs and hastens the making of an app.
  3. Merge of DevOps and Agile. The key principle of DevOps is that all the departments of an IT firm should seamlessly collaborate. Meaning that centralized Test Centers of Excellence would be things of the past soon, since test automation developers are part of the agile teams already nowadays.
  4. Big time for big data testing. The explosion of digital technologies, like Big Data and Cloud computing signals demand for appropriate testing trends in software engineering this year would exponentially grow. QA teams and quality assurance testing services require a very robust strategy for Big Data testing since it requires high-grade frameworks and analytical tools, together with superior techniques. Big sets of data has nowhere to go but grow and it requires improvement in the testing process on the highest level for quality assurance testing services to provide faster releases as well as depletion of the time to market.
  5. Migration from performance testing to performance engineering. The QA process enhancement ideas of 2018 is not possible to be imagined without this trend in software development. The better application’s user experience is, the higher the chances of market success. A need to provide the best UX leads to the preference of SPE or Software/System Performance Engineering, rather than Performance testing. The consistent performance of an app across different platforms, mobile devices and operating systems should be issued beforehand, not after testing.

New trends in quality assurance testing services raise new challenges for testers, but would also make the development strategy more effective and cost-efficient.

Author:  Jaymin Vyas 

Lesser known tips on BDD testing using Squish

Behavior-Driven Development (BDD) is an extension of the Test-Driven Development approach which puts the definition of acceptance criteria at the beginning of the development process as opposed to writing tests after the software has been developed. With possible cycles of code changes done after testing.

Behavior Driven Tests are built out of a set of Feature files, which describe product features through the expected application behavior in one or many Scenarios. Each Scenario is built out of a sequence of steps which represent actions or verifications that need to be tested for that Scenario.

Some lesser know tip on BDD testing using Squish:

1) Breakpoints in the feature file

When doing BDD testing with the Squish GUI Tester, you can suspend execution using breakpoints not just inside steps(steps.js) which implement your BDD steps, but also in the feature file .

As a developer you want to be able to put breakpoint(s) in feature files so you can debug a feature/scenario/step. It’s possible to do so in Squish. It’s not so obvious since most users think it’s just a text file, but in Squish IDE you can put a breakpoint on any of the steps in the feature file and single step through.

2) Recording missing steps

When recording a BDD scenario, did  you miss some steps? You can record these steps easily.

In the Squish IDE, right click on the scenario missing the implementation.

From the context menu select the option “Record Missing Steps”.

Squish will first execute all the steps which have been implemented until it comes across the step which is missing implementation and start recording.

You can read up more on BDD testing in Squish documentation for each edition at the links below:

Author: Reginald Stadlbauer

Brief Description of Software Testing Traceability Matrix & its types

Traceability matrix in software testing is a report that follows and maps the connection between two benchmark records. This incorporates one with the requirement specifications and another one with the test cases.

As an important tool utilized amid the development of new product, the traceability matrix software testing guarantees fulfillment and transparency of the software product testing.

The software testing traceability matrix assumes a key part in persuading the customer that every one of the needs determined, have been met and there are no escape clauses that are left at the time of software product conveyance.

It more often than excludes segments, for example, necessity, benchmark record reference number, bug ID and test case.

The consideration of these sections improves the task of tracking any necessity made by the customer utilizing bug id.

A portion of the regular parameters that are incorporated into traceability matrix template in software testing is user acceptance test cases, risks involved, unit test cases, requirement type, and description trace to test script,   integration test cases, and requirement ID.

What is traceability matrix in software testing?

The Software Testing Traceability Matrix also called requirements traceability matrix in software testing is a table that is utilized to follow the prerequisites amid the SDLC. It can be utilized for forward tracing or in reverse tracing. There are numerous user-defined templates for RTM.

Every necessity in the RTM record is connected with its related test case so testing should be possible according to the specified prerequisites.

Types of traceability matrix in testing:

Forward Traceability: It is the mapping of necessities to test cases. Guarantees whether we are building the correct product.

In reverse Traceability: Backward traceability is the mapping of test cases to necessities. It offers the advantage of checking whether we are building the software product right.

Bi-directional Traceability: This traceability grid includes both in reverse and forward traceability. Through in reverse traceability, we can guarantee that the test cases are mapped effectively with the prerequisites. Through forwarding traceability, we can ascertain that prerequisites are mapped with the test cases properly.

How to prepare traceability matrix in software testing?

There are just three compulsory steps required to set up traceability for your project. In case you’re willing to go the additional mile and make a fourth stride you’ll have the capacity to help your advantages considerably further.

Step 1: Distinguish your “artifact types of traceability matrix

Step 2: Characterize the relations between those artifact types

Step 3: Make a traceability framework for each connection between artifact types of requirement traceability matrix

Advantages of utilizing traceability matrix in software testing:
  • Make clear to the customer that the product is being created according to the prerequisites.
  • To ensure that all prerequisites incorporated into the Test cases
  • To ensure that engineers are not making features that nobody has asked
  • Simple to distinguish the missing functionalities.
  • In a case, there is a change ask for a necessity, at that point we can without much of a stretch discover which test cases need to update.
  • The finished framework may have “Additional” usefulness that may not have been indicated in the design specification, bringing about wastage of labor, time and attempt.

Additionally, it is critical for the organizations to ensure that every one of its software product meets the highest quality benchmarks and there are no bargains made regarding its quality. Consequently, it is critical to ensure that the traceability matrix is utilized so the conveyance of best quality software product is guaranteed.

Author: TestOrigen Software Testing 

How to Make your Magento Inventory Management System Ready for Your Upcoming Sales?

Distributors in any industry have to carry an extensive amount of inventory and stock that meet the demand of entire customer base. It often happens that Magento store owners wish to take maximum advantage of their upcoming sale or discount campaigns and add more stocks in their warehouses. This process often ends up with excessive load in warehouses and at distributors’ docks. And this is the stage where most of the inventory nightmares take place.

Thus, it becomes important for enterprises to manage the inventory while streamlining the delivery process. You cannot afford to have a scenario of misplaced and damaged products or wrongly delivered orders. In this blog, we will discuss about some practices that can make your Magento Inventory management intact for upcoming sale.

Let us start with the four pillars on which you must pay more attention to get the best out of your upcoming sale. These pillars where your process should lay upon are as follows:

– Timeliness:
All your operations must be time bound and must beat the clock. Make sure that you set up your entire stock and make it ready for the upcoming massive sale orders. It is utmost important that you must deliver product on time without any delay to meet order deadlines.

– Quantity:
It is important to manage your inventory in right proportion and do not go beyond capacity. Keep a track of complete stock through your Magento Inventory Management Software. You should also make sure that all the products listed are available and in the system.

– Quality:
Good quality is of utmost importance! It is important both the ways, if you are manufacturing, it is necessary to produce good. You must also take care of your stock while you manage it and prevent it from damages.

– Documentation:
Proper documentation drives the entire Magento Inventory Management System of yours. Add all the products in your system with proper details and make them easily trackable. Whenever an order received, a well-organized documentation will help you to process the order at quickest.

Once you focus on these core areas of your inventory portions, it will give a good shape to your Magento Inventory Management System. Clubbing these focus areas with some fine practices will help you to organize the whole process that streamline quick and error free order processing.

Some of these best practices that can enrich your inventory system and enable you to execute quick delivery with complete customers satisfaction.

– Assessment of Inventory
It is important to constantly check health of your system and detect the loopholes right before your offer period. Executing regular assessment is also a good practice and helps the enterprises to maintain a good health of their inventory management.

– Clear identification of performance gaps
Obviously, you would never like to face any error and wish to commit mistake to process any orders or to manage your inventory. Thus, it is important to identify performance gaps and bugs in your system.

– Enhanced operational control of processes
It is good to decentralize the power and give more control to employees to enrich you Magento Inventory Manager. Allow them to process the latest orders and escalate them for delivery. This will save time and efforts.

– Streamlined management reporting
Reporting is must. Make sure that you streamline reporting and keep a track of every product and order. Also ensure that your employees are making proper entries of the whole stock. Report must be in a way that admin can track any product, order, and shipment.

Hence, focusing on these crucial most parts of your Magento Inventory Management will streamline your order processing. It will empower you to process mass orders from your upcoming sale campaign/ Some of the major advantages that you will get out of these practices are:

– Consolidated shipments
– Fewer purchase orders
– Fewer expedite orders
– Higher customer satisfaction

So, if you are looking forward to begin up with the new spring season sale or just planning a discount campaign, follow these tips to systemize your inventory.

Author: Maulik Shah

Mobile App Performance Monitoring basics to advanced

With the myriad of apps cluttering our smartphone screens nowadays, it has become all the more important to optimize app performance. While going through your daily routine, you certainly don’t want useful apps hanging up or worse still, crashing abysmally.

In this post, you’ll know how app monitoring performance works so that you can get the best out of your smartphone software.

What is application performance management? 10 APM features that we can tick right off our fingers are:

  • Troubleshooting of disruption of frequent speed and uptime
  • Monitoring of the speed at which transactions are performed by end-users and systems
  • Use of a single integrated suite of software tools
  • Load-testing
  • Synthetic monitoring
  • Real-use monitoring
  • Root-cause analysis
  • Web-performance monitoring, to gauge app speed and uptime
  • An end-to-end overview of bottlenecks
  • Review of service interruptions

APM is integrated through the lifecycle of an application including the pre-deployment and post-deployment stages. It is therefore important for developers, testers, and business teams.
A slow load can be prevalent due to a host of issues related to APIs, servers, or browsers. APM techniques are what help pinpoint the actual problem.

Basic availability monitoring involves testing IP protocols and network services, but a user needs to establish some optimal performance thresholds and real-time alerts to monitor and manage both speed and reliability.

Tips for monitoring app performance

Performance monitoring must take into account certain things in order to optimize user experience. These include measuring from the user’s point of view, i.e. performance, stability, and resource utilization in real time the way the user perceives them.

The context is crucial too. It’s important to determine how many users were affected by a slowdown, and what action on a specific operating device prompted the disruption. To truly experience a ‘mobile moment,’ you should follow these tips for monitoring your app performance:

Measure Frame rendering time

Only measuring network time doesn’t cut it out for users, who are interested in when the network resumes as well as when it responds.

Measuring response time by the device or operating system allows the product manager to focus on one platform at a time, respond to performance issues, and deploy resources accordingly.

Measure battery usage

It’s crucial to measure the battery consumption of your mobile app, along with data plan impact and memory usage. If the app is responsible for draining your battery, you should bring it in line with best practices.

Frequent updates can also be minimized so that user satisfaction can be increased.

Measure cell data consumption

Recent studies by Dimensional Research have shown that 20% of respondents stopped using apps that were heavy on data usage. This indicates that you should measure the consumption by app version, the total number of users, KBs of data consumed per minute, the amount of data being transferred per hit, and the percentage of data being consumed per hit.

Measure errors

HTTP errors from certain URLs need to be captured. This will help track the number of users who received an error, the actions that resulted in it, number of users with errors on app launch, the percentage of actions that led to at least one error, and the app version.

Note: Sign up for free trial to test your apps on real android and ioS Devices. Click Here.

Author: Shankar Anamalla 

iOS Automation with Appium & Selenium

Appium is an open source tool/framework for automating iOS Native and Hybrid Apps. It uses the WebDriver JSON wire protocol to drive iOS apps.

Appium server is written in Node.js and talks to iOS using UIAutomation via Instruments. You can use the Selenium WebDriver API for writing tests which talk to Appium via JSON wire protocol for running the Selenium commands. This also gives you the advantage of writing tests in your language of preference.

Installation

I found installing Appium quite easy on a local machine. You need Node.js installed before using Appium.

1. Install Node.js from http://nodejs.org/

2. Install WebDriver package for Node.js with the following command

sudo npm install wd

3. Install Appium with the following command

sudo npm install appium -g

4. Start the Appium server with the following command

appium &

Appium server will start at http://localhost:4723

Implementing test using Selenium WebDriver

I am using a sample BMI Calculator App developed with native iOS SDK for this example

Bmi Calculator App

Build the app using the xcodebuild command (In this example the BmiCalc app)

xcodebuild -sdk iphonesimulator6.1

I am using Maven to set up a Java project for this test and here is pom.xml with the following dependencies added. For this example, I have used IntelliJ IDEA. For more information on using Maven for Selenium script development refer bonus Chapter Integration with other Tools from my Selenium Testing Tools Cookbook

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="UTF-8"?>
/code>project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    /code>modelVersion>4.0.0</modelVersion>

    /code>groupId>org.bmicalc.test</groupId>

    /code>artifactId>bmi-ios-test</artifactId>

    /code>version>1.0-SNAPSHOT</version>

    /code>dependencies>

    /code>dependency>

        /code>groupId>junit</groupId>

        /code>artifactId>junit</artifactId>

        /code>version>4.11</version>

        /code>scope>test</scope>

    </dependency>

    /code>dependency>

        /code>groupId>org.seleniumhq.selenium</groupId>

        /code>artifactId>selenium-java</artifactId>

        /code>version>LATEST</version>

        /code>scope>test</scope>

    </dependency>

    </dependencies>

</project>

And here is BmiCalcTest class

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import java.io.File;
import java.net.URL;
import java.util.List;
import static org.junit.Assert.assertEquals;
public class BmiCalcTest {
    private WebDriver driver;
    @Before
    public void setUp() throws Exception {
        //Appium needs the path of app build
        //Set up the desired capabilities and pass the iOS SDK version and app path to Appium
        File app = newFile("/Users/upgundecha/Desktop/AppExamples/BmiCalculator/build/Release-iphonesimulator/BmiCalculator.app");
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.BROWSER_NAME, "iOS");
        capabilities.setCapability(CapabilityType.VERSION, "6.1");
        capabilities.setCapability(CapabilityType.PLATFORM, "Mac");
        capabilities.setCapability("app", app.getAbsolutePath());
        //Create an instance of RemoteWebDriver and connect to the Appium server.
        //Appium will launch the BmiCalc App in iPhone Simulator using the configurations specified in Desired Capabilities
        driver = new RemoteWebDriver(newURL("http://localhost:4723/wd/hub"), capabilities);
    }
    @Test
    public void testBmiCalc() throws Exception {
        //iOS controls are accessed through WebElement class
        //Locate the Height & Weight textField by their accessibility labels using By.name()
        WebElement heightTextField = driver.findElement(By.name("Height"));
        heightTextField.sendKeys("181");
        WebElement weightTextField = driver.findElement(By.name("Weight"));
        heightTextField.sendKeys("80");
        //Locate and tap on Calculate button using the click() method
        WebElement calculateButton =  driver.findElement(By.name("Calculate"));
        calculateButton.click();
        //Locate all the label elements using By.tagName()
        List<WebElement> labels = driver.findElements(By.tagName("staticText"));
        //Check the calculated Bmi and Category displayed on labels
        //Label with index 8 has value of the Bmi and index 9 has the value for category
        assertEquals("24.42",labels.get(8).getText());
        assertEquals("Normal",labels.get(9).getText());
    }
    @After
    public void tearDown() throws Exception {
        //Close the app and simulator
        driver.quit();
    }
}

I really liked using Selenium WebDriver API for writing iOS tests with Appium. I can add iOS support to my existing Selenium Framework with minimal changes. Appium presently supports locating elements using the tag name (an i.e type of iOS control) and accessibility labels.

Author: Isabel 

Key Difference B/W V-Model and W-Model in Software Testing

Software development process is a strategy in which a product is made to experience different phases of ideation, arranging, advancement and testing before the end software product is conveyed. While each phase of the SDLC has its own importance, testing is one such stage that is amazingly essential to guarantee the conveyance of an ideal quality product.

V model vs W model are two of the most critical models that are followed during the time spent in software testing. V Model, otherwise called Verification and Validation Model, is like waterfall model that takes a successive way of execution of procedures. Waterfall model is a straight successive plan approach in which the progress flows in one direction.

Then again, w model in software testing is a consecutive way to deal with test a product and should be possible just once the development of the software product is finished without any adjustments required to be done in the middle. This kind of testing is most appropriate for here and now extends as medicinal applications.

There are various different manners by which the two v model vs w model is unique in relation to each other.

Read on to know and understand the difference between the two models in detail:
V model vs W model:
V Model diagram in software testing:
What is v model in software testing?

V-model in software testing implies Verification and Validation show. Much the same as the waterfall model, the V-Shaped life cycle is a successive way of execution of procedures. Each stage must be finished before the following stage starts. V-Model is one of the numerous software development models.Testing of the product is arranged in parallel with a relating period of advancement in V-model.

Underneath the V shaped model in software testing, the relating testing period of the evolution stage is arranged in parallel. In this way, there are Verification stages on one side of the ‘V’ and Validation stages on the opposite side. The Coding Phase links the two phases of the V-Model.

V-Model – Verification Phases:

There are a few Verification phases in the V model in software testing life cycle, each of these are clarified in detail beneath.

Business Requirement Analysis: In this V-model before evolution is begun, a system test plan is made. The test design centers around meeting the functionality indicated in the requirements gathering.

System Design: Once you have the unmistakable and definite product requirements, the time has come to plan the complete system. The system design will have the understanding and enumerate the whole communication and hardware setup for the product being worked on.

Architectural Design: This is also referred to as High-Level Design and gives a review of the arrangement, stage, framework, product and service/process. An integration test plan is made at this stage also keeping in mind the end goal to test the bits of the product frameworks capacity to cooperate.

Module Design: In this stage, the detailed internal outline for the entire framework modules is indicated, alluded to as Low-Level Design. It characterizes the real rationale for every last segment of the framework. Class outline with every one of the techniques and connection between classes goes under LLD.

Coding Phase: This is at the base of the V-Shape show. Module configuration is changed over to code by developers. Unit testing is performed by the developers on the code written by them.

Validation Phases:
The distinctive Validation Phases in a V-Model are clarified in detail beneath.
Unit Testing

Unit testing is the testing at the code level and removes the bugs at a beginning time; however, all errors/bugs can’t be revealed by unit testing.

Integration Testing

Integration tests are performed to test the concurrence and communication of the inner modules inside the system.

System Testing

System testing is directly connected to the system configuration stage. System tests check the whole system functionality and the communication of the system being worked on with external systems.

Acceptance Testing

It is related to the business requirement analysis phase and includes testing the product in the client condition. Acceptance tests reveal the compatibility issues with other systems accessible in the client condition.

W model in software engineering:
What is w model in software testing?

This Model was first Process Model to be presented. It is also called as a linear-sequential life cycle model. It is exceptionally easy to understand and utilize. In a W-Model, each stage must be finished completely before the following stage can start.

This kind of software development model is fundamentally utilized for the software testing project which is small and there are no questionable requirements. Toward the end of each stage, an audit happens to decide whether the project is on the correct way and regardless of whether to proceed or dispose of the task. In this w model software, testing begins simply after the development is finished. In waterfall model phases do not overlap.

The successive stages in Waterfall Model are –

Requirement analysis and Gathering− All conceivable requirements of the system to be produced are caught at this stage and recorded in a requirement specification document.

System Design − The requirement details from the first stage are contemplated in this stage and the system design is readied. This system design helps in indicating system and hardware requirements and aides in characterizing the general system architecture.

Implementation − With contributions from the system outline, the system is first created in little projects called units, which are incorporated in the following stage. Every unit is created and tested for its functionality, which is called as Unit Testing.

Testing and Integration − All the units produced in the usage stage are included into a system in the wake of testing of every unit. Post-integration the whole system is tested for any issues and errors.

Deployment of system − Once the practical and non-functional testing is done; the product is sent in the client condition or discharged into the market.

Maintenance − There are a few issues which come up in the customer condition. To settle those issues, patches are discharged. Additionally to upgrade the product some better versions are discharged. Maintenance is done to convey these adjustments in the client condition.

While beyond any doubt V Model is a compelling method to test and uncover comes about for dynamic test cycles, W models are more viable and enable one to get a more extensive perspective of testing. The association that exists between different phases of testing is much evident with W Model.

So, one must pick carefully as the game isn’t tied in with picking a model, however, conveying an ideal quality product.

Author: TestOrigen Software Testing

Top Website Issues That Must Be Tested For Better User Experience

When designing a site, place yourself in the client’s shoes. What you find usability issues in website design is something clients will probably discover incapable themselves.

website’s usability, or its ease of use, is an important part of its success, particularly with sites ending up increasingly interactive, complicated and packed with highlights. User-centered design is tied in with building sites that satisfy the objectives and need of its clients, and at the core of this idea is that a client must be capable communicate with your site successfully.

In a case, you develop your site in a way that is excessively confounded, making it impossible to explore, deliver content excessively hard to understand, or outline usefulness excessively unwieldy, making it impossible to utilize, your site won’t meet its destinations, and you will definitely lose business.

There are various usability issues in website design that can stand in the way of an effective deal. Indeed, even the smallest website usability issues like load time or nonappearance of a specific product filter can discolor your site’s UX and kill clients.

What technological issues affect the usability of a website with internet shopping that influences visitors to leave and never return?

Thus, keeping in mind the end goal to make sure that you get the most out of your new site, here is the list of usability issues in website design that must be tested for better user experience.

Complicated navigation issues on website:

For most sites, it’s basic that the client has the capacity to travel through various website pages as effortlessly as could be allowed. Safety comprises of various UI segments, for example, route menus, search boxes, interfaces inside the copy of a site page, sidebar gadgets that show later or top content etc.

Insufficient filter display:

Another UX website design issues are various filters. Regardless of whether clients are uncertain what they’re searching for, they, at any rate, have preferences. Offering the chance to customize list increases the chances of users finding the particular product they need.

On account of dress and footwear sites, channels may incorporate brand, size, color, season, sexual orientation, event, etc.

Social issues website’s speed:

One factor of website management issues that are not totally apparent is the requirement for a site to be quick and responsive.  In fact, website users profoundly think about how quick they’re ready to get the data they require. The better performing a site is, the more effective a client will be while finishing his desired tasks.

Unattractive website layout:

“Try not to judge a book by its cover” doesn’t have any significant bearing on online business. In a case, your online store appears to be unappealing to clients; they’re probably going to leave without making a buy. Your plan must be perfect and minimized – keep the text on landing pages and main pages to a minimum.

It additionally abandons saying that the format of your online store must be suitable for the kinds of products you’re offering and should oblige your intended audience. It is abnormal to see pink ruling an online automobile parts store, similarly as chrome black would appear to be somewhat uninviting for a child dress site.

Buggy site:

When we examined website technical issues with page load time, we set up that the present clients anticipate that online business sites will have a continuous flow. Notwithstanding, there may be an all the more profound established issue behind loading speeds that will at last outcome in a site crash.

If your site displays any of the accompanying qualities, your deals are ensured to suffer:

  • Broken links
  • No Cascading Style Sheets
  • Files containing no data
  • 404 not found error
  • Failed DNS lookup (Please try again later)
  • Malware warnings

Furthermore, visitors must have the capacity to contact support promptly if they experience an issue. That way you can recognize a report on the issues concerning website usability from the get-go and clients won’t need to wait for the possible arrangement.

So as to manage these usability issues in website design, you will require a professional software testing team that will monitor and handles them when they show up.

Come to us,  We are always available with 100% guaranteed solution of these above-mentioned defects and errors.

1 2 3 4 5 35