SupremeTest

What is Supreme Test?

SupremeTest is a platform developed to be a solution to the complex test automation needs of large-scale systems. It provides the opportunity to easily create test scenarios with drag and drop method and minimizes human-induced errors and improves the quality of tests with its rich test protocol support. 

For details please visit our website.

What is Software Test Automation?

Software test automation is the use of software to enable automatic processing of the tests written to compare the expected results with the actual results in the software (on the back end or front end) and to compare these results. Test automation can automate tests of repetitive operations that are difficult to run manually and can facilitate tests that will be difficult to perform manually. For example, running a test case in 50-60 different browsers and browser versions can be a time-consuming task. However, the time spent on this process can be shortened significantly with automation.  

Software test automation is the use of software to enable automatic processing of the tests written to compare the expected results with the actual results in the software (on the back end or front end) and to compare these results. Test automation can automate tests of repetitive operations that are difficult to run manually and can facilitate tests that will be difficult to perform manually. For example, running a test case in 50-60 different browsers and browser versions can be a time-consuming task. However, the time spent on this process can be shortened significantly with automation.

Why Is It Necessary?

The biggest benefit of using automation in software testing is saving time and increasing the scope and quality of testing with the capabilities of automation tools. Thanks to test automation, companies can release their software products faster. Bringing fewer defective products to the market is also important for the company's reputation. Developing a software can take years, but releasing the software without adequate testing can cause massive damage to customers and companies. Test automation tools enable test scenarios to be run quickly, sequentially, and repeatedly. It minimizes human-induced errors, ensures early diagnosis of errors. Test automation tools generate reports that will enable the test team to analyze. Huawei Turkey R&D Center Test Automation Platform, thanks to the time-adjusted testing feature, ensures the running of software testing when the user is not using the computer. Huawei Turkey R&D Center Test Automation Platform focuses on functional regression and integration testing (Figure 1).

In the software world, which has come to the fore with its intense pace recently, testing automation tools are of great importance to create a reliable product and to provide quality quickly. The focus of the automation testing tools is to shorten the testing times in addition to better coverage and effective use of test cases. Testing automation tools should be chosen according to the need and the tested product. Selenium can be preferred for web-based products, which are very popular today, and Appium for mobile-based products.

 

Selenium

Selenium is a tool that provides testing automation on web browsers and it consists of 3 components. These components are Selenium IDE, Selenium Web Driver, and Selenium Grid.

Appium

It is an open-source testing tool for running test automations on IOS mobile, Android mobile, and Windows desktop platforms. The main languages supported by Appium are Java, Objective-C, JavaScript, Node.js, PHP, Python, Ruby, C#, Clojure, Perl.

In addition, Supreme Test is a test automation platform developed by Turkish engineers at Huawei Turkey R&D Center for Huawei's own operational needs.

Each platform has its own method of writing software test scenarios.

On Huawei Turkey R&D Center Test Automation Platform, test scenarios are written based on Lego logic.

  1. Test steps are created by the test engineer as template, with coding support.
  2. The steps saved as templates can be used repeatedly.
  3. Templates are moved to the "canvas" area by the drag and drop method. (Figure 3 Huawei Turkey R&D Center Test Automation Platform Interface)
  4. Afterwards, in order to ensure the verification parameters between test steps and the flow, the connection is provided via the previous/next arrows.

We can easily add software testing steps to the test case and get started to test the experience of a user who is shopping on an e-commerce site.

For example, to carry out a test for adding a product to the basket from the website: 

  1.  The log in step is saved as a template. By entering a user name and password, the step to log in to the system is defined in the template.
  2. The template is dragged and dropped into the canvas area.
  3. A product is selected on the screen. This process is saved as a template.
  4. The template is dragged and dropped into the canvas area.
  5. The Add to Cart button is clicked. This process is saved as a template.
  6. The template is dragged and dropped into the canvas area.
  7. Validation criteria and parameters are defined in the system.
  8. The test scenario is saved.

 

Functional software testing scenario is defined as a set of actions for validating a specific feature or functionality of the software application.

A test case has components that define the input, action, and expected response for determining if a feature of an application is working correctly.

A test case is a set of instructions on "how" to validate a particular testing target.

Tips for Writing a Software Test Case

  • The title of each test case should be unique
  • Prerequisites should be clear
  • Testing steps must be sequential and accurate
  • Expected results should be correct
  • Once test cases have been documented, testers should double-check the scenarios.

 

In software test scenarios, the quality of the software, the accuracy of the automation scenarios, the accuracy of the codes and integrations running on the back-end, the accuracy in the interface, the compatibility with the browser and mobile devices, the errors that prevent the system from working, and the software performance data are measured. Reports on the findings are presented.

In a basic test report:

The test result is checked

  • The time spent in running the test scenario is controlled.
  • The number of test scenarios run is displayed.
  • The results of each step are checked in the running tests.
  • Reports on successful and unsuccessful steps and scenarios are presented.
  • Information on test type and purpose is provided

Test Summary: Provides a summary of test cases that passed, failed, and prevented the system from operating.

Errors:  Described by priority and status

Individualized performance reports specific to test engineers can also be requested by test team leaders. Test team leaders may need which tests individuals in their teams complete and how quickly they complete the tests, the success rates of the tests, and important person-based error findings. Visual and video recording of the errors found may be needed, especially in interface and mobile tests.

The link below can be visited for details.

https://www.perfecto.io/blog/test-reporting

 

The purpose of the test scenario is to test all the functionality of the product to be tested.

Test methods are basically divided into two: Black box and white box tests.

Black-box tests are tests like the end-user without knowing the content of the code. As an example:

  • If the user enters the correct e-mail and password while logging into the system, he or she can log into the system.
  • If the user enters the incorrect e-mail and password while logging into the system, he or she can’t log into the system.

As it is seen here, in black box tests, when an input is made to the system, regardless of the content of the code, the output is checked.

 

White box tests are tests performed by running the code.

  • For example, in unit test, every function in the code is tested.

There are two rounds of tests associated with the white box and black box tests. There are two types of tests, functional tests, and non-functional tests.

What the functional test is testing is whether the application's functions are working or not. Non-functional tests are the test types that check the non-functional features of the application. The aim here is to test the performance, speed, usability, security, and sustainability of the system.

Functional Tests:

Unit Testing: It is the testing of the components that make up the smallest unit of the software.

Smoke Testing: It is to test whether the most basic and most important functions in the software are working or not. It is the simplest form of integration tests.

Integration Testing: An integration test is to test how different products in software work together.

Interface Testing: It is to test the functionality and compatibility of the interface with which the user interacts with the software.

Regression Testing: These are the tests performed for control purposes to ensure that the errors detected in the application, changes, updated new features and the existing error have been eliminated.

UAT: User Acceptance Testing: The focus on this type of testing is the acceptability of the customer, progressing in line with the needs of the user, which changes according to the difference of the project tour

 

Non-Functional Test Methods:

Performance Testing: Whether the software applications work within the expected performance values is tested.

Load Testing: These are the tests performed by making extraordinary loads to the system. In the face of this extraordinary load placed on the application, it is to check whether the user experience encounters deterioration and delays or not.

Stress Testing: The system is loaded at the highest level. Maximum load controls the behavior of your computer, program, device, network, or application. Besides, whether the system can recover when returning to normal operating conditions or not is also checked.

Security Testing: These are the tests to measure how ready your system is for malicious attacks. It reveals errors and deficiencies in security mechanisms in your system.

Usability Testing: These are the tests performed to verify how easily the software can be used and learned by the user.

Compatibility Testing: The software is checked whether the operating systems of all devices in browsers are running successfully

Huawei Turkey R&D Center Test Automation Platform is not a program that measures the ability of the programmer. Test automation programs are used by test engineers and test team leaders rather than software development teams. Test engineers do not develop software, they test software that was developed or is being developed.

Huawei Turkey R&D Center Test Automation Platform features:

  • API and integration testings
  • Mobile testings
  • Interface testings
  • Database testings
  • Test scenario generation and versioning
  • Wide range of user authorization options. (User authorization is performed through options such as which scenarios users will have access to, which scenarios they can see.)
  • Web access (Public Cloud Deployment)
  • On-site installation (Private Cloud Deployment)
  • Batch test scenario run (The same test scenario can be run with up to 100,000 different data)
  • Javascript support for test validation processes
  • Adding an optional protocol
  • Test steps are created with template logic. As reusability is the main focus in the design of Huawei Turkey R&D Center Test Automation Platform, test engineers create templates in steps.
  • With the drag-and-drop method, pre-created templates allow easy test scenarios with Lego logic. It increases test engineers' speed of creating test cases.
  • Scheduled test case run
  • Jenkins integration

In software processes, creating the architecture and then the development phase are very important. But besides this, the testing phase is as important as creation and development. It is very important that the software is prepared and developed flawlessly or completely, but it must also be tested whether it meets the specifications expected of it or not. Issues such as the efficiency of the product, whether there are errors, whether a problem occurs in any step determine the future of the product. Software health testings are an important part of the software development and application lifecycle. With software testings, iwhether the requirements are met and whether it gives the correct output or not is tested. These testings strive to control the output of the software in line with specific goals by preparing a large number of test cases and test strategies.

  1. XL TestView: It is a platform used for the management and analysis of software test results. It analyzes and presents data to its users from different testing tools and combines the results from different tools.
  2. Selenium: Selenium is an open-source and free testing tool that provides test automation on web browsers.
  3. Cucumber: It is a testing tool that eliminates the need for coding information for scenarios written in a plain form in software and automatically converts them into testing.
  4. Appium: It is an open-source testing tool for running test automations on IOS mobile, Android mobile, and Windows desktop platforms.
  5. meter: JIts application is open-source and 100% java software. It performs load testings that measure functional behavior and performance in software. It is mainly used for testing web applications.
  6. Junit: It is a testing concept (framework) designed for the Java programming language. It is used in JUnit regression tests and is open-source. It is used to write automated testings and run them over and over again.
  7. FitNesse: It is an open-source testing tool. It can also be used for the automation of tests. It can be used for acceptance tests.
  8. Gatling: It is an open-source load and performance testing tool.

Functional testing ensures that your software works as designed from the user's point of view by checking the application from start to finish, without prior understanding of how the code works internally. This is where the hard work for developing something turns into asking difficult questions such as "does this actually work", "can the user do what we expect" or "are there ways in which this should work". It is equivalent to checking that every function of the application is working properly before the product is made available to the public. It is preferred to reveal errors during testing before the product is spread over a large area.

Functional Testing Example:

  1. In this test scenario, the first step is to go to a web address.
  2. In the second step, a product is searched for.
  3. In the third step, the product is added to the cart.
  4. In the fourth step, you go to the product categories.
  5. In the fifth step, a new product is added to the cart.

This testing was written by using Selenium plug-in on Huawei Turkey R&D Center Test Automation Platform. Selenium is an open-source software that enables interface testings. It can work as integrated to Huawei Turkey R&D Center Test Automation Platform. Since this is a functional test, whether the website works as desired when the expected actions take place or not is checked. It is written on the Windows operating system to be able to use Google Chrome. Various test automation tools support different operating systems and browsers. Mobile device support for mobile and web testing is among the new features to be developed for Huawei Turkey R&D Center Test Automation Platform.