Talk about functional testing and non-functional testing (most detailed)

Foreword:

Hello everyone, I am Yifei, today we will talk in detail about the difference between functional testing and non-functional testing.

Perform functional testing to ensure that the functionality of the application meets the requirements specification. This is a black box test and does not involve detailed information about the source code of the application. When performing functional tests, the focus should be on the user-friendliness of the main functions of the application.

To perform a functional test first, we need to identify the test input and use the selected test input value to calculate the expected result. Then execute test cases and compare actual data with expected results.

Functional test type

Let's take a look at the different types of functional tests for mobile applications.

unit test

In unit testing, the various components of the software application are tested during the development phase. Unit testing is usually done by developers rather than testers. Test the function of a piece of code to verify accuracy. Drivers, unit testing frameworks, mock objects and stubs are used to perform unit testing.

Unit testing is usually automated, but sometimes it can be done manually. The manual method can be done with the help of the instruction document. Unit testing can be performed on all types of mobile applications.

In automated unit testing, developers write code in the application to test functions or procedures. After the application is deployed, the code can be deleted. This function can be isolated to strictly test the application, and it reveals the dependencies between the code under test and other units. Then the dependencies can be eliminated. Most developers use unit test automation frameworks to record failed test cases.

Integration test

Perform integration tests to check whether the various components of the application behave as expected when integrated. Usually, after testing and combining all the builds, integration testing is performed after unit testing.

Sanity test

After receiving the software version, minor changes will be made to the functionality to perform a completeness test to ensure that errors are corrected and that there will be no problems due to these changes in the future. The purpose is to test the functionality on the surface, not to thoroughly check whether the developer has built the functionality reasonably.

Generally, the following steps are considered when performing sanity testing. Mark the changes introduced in the code with the newly added features. Evaluate the function of these markers to ensure that they can perform their role. Then test related functions, related parameters and elements to ensure that they work properly. After all, the build can accept other advanced testing methods. It is better to use cloud-based test platforms rather than online Android emulators, as they provide hundreds of device browser combinations.

Smoke test

This is done to check whether the build is stable enough for further testing. The smoke test is done end-to-end, not for specific components like we do crazy tests.

Regression Testing

Perform regression testing to check whether the newly added code does not have any adverse effects on the functionality of the application. This can be done when new features are added to the application or only some changes have been made in the code. Changes in the code may affect the existing process of the product or have errors. It can be evaluated by performing regression testing. In regression testing, the motivation is to initiate optimization, enhance functions, and solve problems that are needed in existing functions.

System test

System testing is the testing of fully integrated software products. The software is connected to the hardware and other software, and a series of tests are performed on the fully integrated applications on the system. It can be either a white box or a black box.

Beta/User Acceptance Test

This test will be done in the final stage of the testing process before the application is ready to be released. Performed by the client/user to verify the end-to-end business process and user-friendliness.

What is non-functional testing?

Non-functional testing aims to evaluate the readiness of the application through various standards (such as load testing, scalability testing, stress testing, etc.). It evaluates the performance of the application under challenging conditions.

Non-functional test type

Let's take a look at the 5 main non-functional tests for mobile applications.

Performance Testing

Performance testing has been completed to ensure that the application can run normally under the expected workload. The purpose is to find performance issues, such as reliability, resource usage, etc., not to find errors. When performing performance testing, the three things we should keep in mind are fast response, maximum user load, and stability in a changing environment. Even if you focus on mobile testing and use an online Android emulator, performance testing cannot be avoided.

Endurance test

This is done to check whether the application can withstand the load that is expected to have to withstand for a long time.

Scalability test

You can check the performance of the application under the maximum load and the minimum load at the software, hardware, and database levels.

Load test

In this case, the system simulates the actual user load on any application to check the threshold of the maximum load that the application can withstand.

pressure test

This is done to check the reliability, stability and error handling of the application under extreme load conditions.

Peak test

In this case, the user load will suddenly increase and decrease when testing the application. By performing a peak test, we can also understand the application's stable recovery time.

Capacity test

This is done to analyze the behavior and response time of the application when it is flooded with large amounts of data.

Compatibility test

Perform compatibility testing to ensure that the application can run normally on different hardware, operating systems, network environments and screen sizes.

Safety test

Security testing is the most important part of the mobile application testing process. It ensures that your application is safe and will not be attacked by any external threats such as malware and viruses. By doing this, we can find vulnerabilities in the application that can lead to data loss, increased revenue, or trust in the organization.

Let's look at the main security threats that should be eliminated during security testing.

Privilege escalation

In this case, the hacker may use the application, but he/she can increase the privileges provided by having an account in your application and using the services provided by default. For example, if the application has certain points clauses that refer the application to a friend, the hacker can extend the limit and get more benefits from it.

Unauthorized data access

The most common type of attack is to gain unauthorized access to obtain valuable information. This can be done simply by cracking the login credentials or by hacking into the server to access the data.

URL operation

If an application or website uses the HTTPGET method to transfer data between the client and the server, the hacker will manipulate the URL query string. The QA team can pass the modified parameter value to see if the server accepts it.

Denial of service

This type of attack is carried out to prevent the end user from accessing the application's services. In this way, hackers can also improve the stability of the working mechanism of the application and the server computer.

Usability testing

Usability testing is performed by a small group of users to find usability flaws in the application. When the design is proposed, it is done in the initial stage of software development. The focus is on how easy it is for users to use the application and whether the system achieves its intended goals. This type of mobile testing can also be performed on the online android emulator.

We can conduct usability testing in several ways. One is in the design stage, where you can evaluate the design by just drawing on a piece of paper. Once the application is built to check usability, random testing can also be done. This can be done by actual users on the site, and then the results can be provided. In addition, statistical information can be very useful based on design and wireframe input tools.

The first step in structurally performing usability testing is to identify the users who will execute the usability application. Users must be selected based on different application behaviors such as geographic location, age, gender, etc. The next step is to design the tasks that users should perform, and then spend time analyzing the results to complete the test.

Usability can be done in an isolated test area in front of an observer who will check the test and create a report on the assigned tasks. The next option is remote usability testing. In this case, the observer and the tester are located in different locations, and the assigned tasks can be completed remotely. The tester's detailed information (such as response) will be recorded by the automation software.

Localization test

This is done to ensure that the application is customized and runs in accordance with the culture of the country in which it is available. The key focus is on the content and user interface of the application. The application goes through a testing process to check whether the default language, date and time format, currency, etc. are designed according to the target area.

In the technology industry, you must improve your technical skills and enrich your practical experience in automation projects. This will be very helpful for your career planning in the next few years and the depth of your test technology mastery.

In the interview season of the Golden 9th and the Silver 10th, the season of job-hopping, organizing interview questions has become my habit for many years! The following is my collection and sorting in recent years, the whole is organized around [software testing], the main content includes: python automation test exclusive video, Python automation details, a full set of interview questions and other knowledge content.

For software testing friends, it should be the most comprehensive and complete interview preparation warehouse. In order to better organize each module, I also refer to many high-quality blog posts and projects on the Internet, and strive not to miss every knowledge point. Friends relied on these contents to review and got offers from big factories such as BATJ. This warehouse has also helped many learners of software testing, and I hope it can help you too!

Test engineer career development roadmap

Functional Testing — Interface Testing — Automation Testing — Test Development — Test Architect

Concluding remarks

No winter will not pass, no spring will not come. The past 2020 was an extraordinary year for people all over the world. Everyone is fighting the epidemic bravely and bravely. Here we encourage ourselves together. Palm it, 2021 has come as promised, set a good goal and continue to grow up.

Here I recommend a software testing exchange group I created by myself, qq:642830685. The group will share software testing resources, test interview questions and industry information from time to time. You can actively exchange technology in the group.

May you and I meet and you will find something! Welcome to follow the WeChat public account: Yuan Yifei, the following hard-core resources are yours.

Insert picture description here

Guess you like

Origin blog.csdn.net/weixin_54696666/article/details/114142960