Feature Testing: Why is it important before Release?

Feature testing

Feature testing is a necessary process since updates are essential for an app to keep up with time, for monetary benefits and to make the customers feel that the makers of the apps are putting in so much effort.
Apart from bug fixing, the addition of new features is also essential for the survival of any app.
The biggest question here is how to test these new features of an app that has already been tested or not been tested?
interested? go through this blog.
alt
Developing New Feature?
While developing a new feature for your mobile app you need to determine what you are going to develop? The new feature that you will develop should be worth releasing, otherwise, it might mislead users.
You need to come up with a feature according to the app’s user base responds to various elements of the mobile application.
Run various experiments for in-app elements to better understand the missing feature.
How do you test new features?

  • Determine the type of audience the feature caters to. By knowing the right audience you can calibrate your test according to it
  • Release the software with the intended features to a small amount of audience before the actual test
  • Make sure that you are recording the results and categorizing it to the appropriate section. For instance, Order values by departments, average order values, conversion rates, o add to cart rates, hits on the checkout page per department,  etc. Categorization will help in analyzing interaction on various segments of the software
  • Once the software has been validated by a small number of users.  Prepare it for the larger  A/B test.
  • Create a product management system so that feedback can be run through a loop

Why you should do Feature testing?
Before releasing new features that you have developed, it needs testing to determine the impact among the users and application.
To better understand the impact of your feature you need to perform mobile application testing.
Mobile app testing will help you to understand the business impact of this new feature and what improvements should be made before release.
Testing of New Feature
Before releasing a new feature, it has to be tested with real-world test cases.
As the feature will be released among thousands of users, it becomes even more difficult to release an application that is error-free, as every individual is different from another.
Thus, below is some process for testing a new feature for mobile applications.
banner

  • Field Testing

Field Testing becomes an important aspect of testing this new feature and its impact in real-world scenarios.
This test will be carried out by QA testers where they would be using this integrated feature as per the need in the real world.
However, field testing becomes a little difficult to carry out as it requires a large number of dedicated testers to execute field testing effectively and smoothly.
Also, field testing would require a number of devices and their maintenance which increases the cost of testing.
Although, this test may cost more it will provide an excellent overview of your new feature and its acceptance in the real world.

  • Leverage Your Community

 Another option for you to test your new feature in real-world cases is to leverage your community.
You can easily source alpha and beta testers for testing your new integrated feature in the mobile application.
With the help of alpha and beta testers, you will be able to get appropriate feedback from actual users who will be using your new app feature in a real-world scenario.
While sourcing alpha and beta testers may come with risk, it provides an excellent method for exposing bugs to them.
It becomes a reliable method that can be gathered in a form of valuable feedback from actual users and let you do further improvement in your mobile app.
gametesting

  • Incorporating Your Application

For a more efficient field testing of your new feature, you can also incorporate your integrated mobile application into the daily activities and workflow of your team members.
This will help you to encounter bugs and issues in your new feature naturally by your team.
Not only, it will save some cost for sourcing alpha and beta testers for your test but also it will increase the efficiency to detect any issue in a timely manner and improves it as soon as possible.
You can also use this approach to uncover details such as battery usage, device compatibility, and other environmental factors.

  • Crowd Sourced Testing

 This test will expose the benefits, effectiveness, and efficiency of your application.
To perform Scaling UX and exploratory tests, testers would require enough time to devote to these valuable testing approaches.
Your team would need to use automation tools and services to free up the team’s time which can be utilized for other testing approaches.
Automation tools will enable them to eliminate the effort of testing applications in a repetitive cycle.

  • A/B Testing

A/B testing for your new feature in the mobile application would enable you to observe which versions perform better.
This test will compare your version A app with version B app and checks which one is performing better.
While conducting A/B testing you need to focus on key aspects such as user onboarding, user engagement rate, or user retention.
Making an Announcement of Your New Feature In-App
After completing mobile app testing for your new feature with improvements,
you can now make an announcement to all the users about the addition of the new feature in the application.
Introducing your new feature to the application will be useless if the right users are not aware of it.
To ensure that the right people know about this addition, you need to decide on how you are going to tell users about the new feature.
You can either use real-time context to tell them about the new feature or just make a proper announcement of your new feature before global release.
After achieving all these steps you can successfully release your new feature to your mobile app without any hesitation.
selenium
Once, your new feature is live and released globally, you need to get feedback from different users who had just used your new feature.
This will help you to understand the true nature of your new feature. What if people did not use your new feature?
Or did they have any issues?
You can easily get feedback from your users regarding your new feature and make sure to improve them.
After releasing your new feature you can also record the impact and compare it with your testing results to ensure more improvement in testing areas.
Benefits of Feature Testing

  • The environment of the product can be figured out easily
  • Helps in gathering metrics of features and validate it
  • Basic elements of software can be tested
  • Helps in keeping a check on various integration
  • You can check the different configuration of the software product
  • bugs and issues can be found out
  • You can perfect the software and prepare it for success

How to use Selenium for the automation of feature testing?
How It Can Help in Feature Testing?
It depends on the kind of developer you are. If you are a developer who believes in testing all key features after deployment then Selenium Webdriver would be a panacea for you.
But there are many developers who just believe in developing new stuff and not first testing the existing features and then go ahead with building new ones. This would lead to a lot of bugs and the cost incurred with finding a defect would increase in the defect life cycle.

Also Read : 15 Top Selenium WebDriver Commands For Test Automation

So, the strategy should be testing the existing features and then building new stuff. If you are thinking that testing existing new features would consume a lot of time then in that case you can use Selenium Webdriver to cut the time taken to test these features.
In this way your code would be bug-free and costs associated with defects will decrease.
Let’s now prepare the first test with Selenium WebDriver. If you are thinking that you are not a Java Expert; then how would you start writing code and explore. Selenium Webdriver needs minimal use of Java if you want to start with it so don’t worry and go ahead!
Set-Up Needs To Be Done

  • The first thing is to download the Chrome Browser as you will test your code on chrome.
  • Next is to download ChromeDriver from Seleniumhq official site and hence; you can download the chromedriver.exe file in your system.
  • You should have Java installed in your machine and this you can check by opening cmd and fire command “java –version”.
  • You should have Eclipse installed in your machine as it is a perfect IDE to develop the test to check the features.
  • You can now open eclipse and then click on New -> Java Project -> Next -> Give Project Name and Finish
  • Now add Selenium library to your project by first downloading the Jars from Seleniumhq site. Then click on Properties of your project and click on Build Path and then click on “Add External Jars”.
  • After this, you are ready to start with your code. All initial setup is ready.

First Test With Selenium Webdriver To Test Login Feature
For writing code you need to make a class file in your project. For doing that; click on New -> Class -> Next -> Name your Class -> Finish. Now, you can start writing your code in this section. As of now just copy the code below and run it on your local machine.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Test1 {
static WebDriver webDriver;
public static void main(final String[] args) throws InterruptedException {
// Telling the system where to find the chrome driver
System.setProperty(
“webdriver.chrome.driver”,
“C:/PATH/TO/chromedriver.exe”);
// Open the Chrome browser
webDriver = new ChromeDriver();
// Maximize the browser window
webDriver.manage().window().maximize();
if (testlogin()) {
System.out.println(“Test WordPress Login: Passed”);
} else {
System.out.println(“Test WordPress Login: Failed”);
}
// Close the browser and WebDriver
webDriver.close();
webDriver.quit();
}
private static boolean testlogin() {
try {
// Open google.com
webDriver.navigate().to(“https://www.YOUR-SITE.org/wp-admin/”);
// Type in the username
webDriver.findElement(By.id(“user_login”)).sendKeys(“YOUR_USERNAME”);
// Type in the password
webDriver.findElement(By.id(“user_pass”)).sendKeys(“YOUR_PASSWORD”);
// Click the Submit button
webDriver.findElement(By.id(“wp-submit”)).click();
// Wait a little bit (7000 milliseconds)
Thread.sleep(7000);
// Check whether the h1 equals “Dashboard”
if (webDriver.findElement(By.tagName(“h1”)).getText()
.equals(“Dashboard”)) {
return true;
} else {
return false;
}
// If anything goes wrong, return false.
} catch (final Exception e) {
System.out.println(e.getClass().toString());
return false;
}
}
}
Run this you will find Chrome Browser opening up and then testing the login functionality. Let me explain the steps one by one for better understanding.

  • setProperty(“webdriver.chrome.driver”,”C:/PATH/TO/chromedriver.exe”);

This statement is to tell your program where it can find chromedriver.exe file in your local.

  • webDriver = new ChromeDriver();
  • manage().window().maximize();

These commands will open Chromedriver instance and then would maximize the size of the browser.

  • if (testlogin())

This would test if the login feature is properly working or not. If it is not working then “Test failed” would be printed else “Test passed”.

Also Read : 52 Software Tester Interview Questions That can Land You the Job

  • The test login module has tried and catches statements inside it. If everything goes as expected as per you then code in try block would be executed else code in catch would be executed. Suppose when you try to locate an element and it is not present in DOM then it would throw an exception “NOSUCHELEMENTEXCEPTION” and this code in catch block should be executed.
  • In this testlogin function steps are mentioned.

webDriver.navigate().to(“https://www.YOUR-SITE.org/wp-admin/”);
webDriver.findElement(By.id(“user_login”)).sendKeys(“YOUR_USERNAME”);
webDriver.findElement(By.id(“user_pass”)).sendKeys(“YOUR_PASSWORD”);
automation testing
These would be hit the URL in the browser and then find username and password fields. With the help of sendKeys you will be able to write to these text boxes.

  • findElement(By.id(“wp-submit”)).click();

With the help of this command you are clicking on submit form.

  • sleep(7000);

This sleep is included in order to follow the test visually. 7000 means 7000 ms that means 7s.

  • Now if the login is successful then the headline of the page should change to “Dashboard” and h1 headline is used only once in every page so you can get it by using tagname h1. You can get the text out of the webelement and then compare it with “Dashboard” to test whether you have successfully login or not. The below code is for that.

if (webDriver.findElement(By.tagName(“h1”)).getText().equals(“Dashboard”))
{
return true
} else {
return false;
}

  • You can find the elements using various locators like ID, Name, Xpath, CSS Selector, and Link Text. Mostly you should prefer ID and name when they are not dynamic. Otherwise it is good to go with Xpath and CSS.

Conclusion
Feature testing increases the chances of success and mitigates risk to a great extent.  Do think of it as a setback or baggage, development alone is not the key to software success. You gave to make sure it has what it takes to survive the market.