当前位置:网站首页>How to carry out the function test with simple appearance and complex interior?
How to carry out the function test with simple appearance and complex interior?
2022-07-25 05:15:00 【The elegance of testing】
Question elicitation
I wonder if you have encountered such a test scenario : One Web application , The function to be tested is very simple , Just click the button to start running , After a series of internal operations , Return to the user a list of results .
From the top layer of visible delivery to users UI Function , The function to be tested is just a simple “ start-up ”—“ Observations ”.
however , I think when testers take over such a test project , I'm afraid it should be first “ Pleasantly surprised ” after “ panic ” Well ?!
“ Pleasantly surprised ”: So simple , Click to see the result, and the test is over ?
“ panic ”: So simple ? Is there any test point I missed , Why do you feel a little nervous ?!
Such a test scenario , I think almost every tester will encounter in their career . that , Is it really “ A little bit ” Just look at the results ? Obviously not .
that , For this type of project to be tested, how should we design tests or conduct tests , Or what testing skills need to be mastered ?
It should be noted that : ad locum , We won't discuss what to do with unit testing first 、 Then conduct integration test 、 Finally, the hierarchical test design concept of system testing , Nor discuss in detail what judgment table to use 、 Equivalence classes and other specific black box or white box test methods .
The core of our discussion in this article is : From the business level , Think about how to test such projects , And some test inspiration we need to draw on or grasp .
Problem thinking
problem 1
How to determine the “ A little bit ” The returned result is correct ?
such as : Click to search a “number=100” How many data are there , The returned results are 10 individual .
since , We are not sure “ A little bit ” The result returned to us is correct . that , We can simulate data , So as to determine the correctness of the result . How do you do that ?
for example : Make sure there is no number=200 The data of , simulation 、 Input 100 individual number=200 The data of . Query through the tested system , return number=200 Number of data .
If the returned quantity is 100 One indicates the correctness of the system , Pass the test ;
If the returned quantity is not 100 individual , It indicates that there is an error in the system , Test to fail .
To simulate data , To determine the correctness of the tested system .
therefore , How to test the application function with simple appearance ? The first test skill you need to master is : Learn to simulate test data .
problem 2
How to enrich the test data samples ?
such as : stay 1 in , We have proved that under certain test data test scenarios , Correctness of the tested system . however , In the case of other types of test data input , Will the tested system respond correctly ?
Maybe , See this problem , Some people would say : Continue to simulate more types of test data , such as string ah 、int ah 、list Ah, etc. .
Have to say , This is indeed a method . however , There are many types of data , We also don't know the system data boundary ( From the business level , We don't know the internal details of the code ), How can we enumerate all data types and simulate data boundary values ?!
To solve this problem , From the perspective of users , I have a good suggestion : If possible , Try to use real data for testing .
If we can get real data samples , Then it can well solve the problems that our simulated data samples are not rich enough and there are differences between simulated data and real data . and , Real data can make us closer to the user's use environment .
problem 3
For applications with complex internal logic , The final result is correct , But I'm still a little worried about whether there is something wrong with the internal operation ?
such as : An application , just web Click on the page to trigger , But the daemon involves multiple components , How to determine the correctness of each component in the operation process .
Solve the problem of joint operation of multiple components , The common method is : Phase testing , That is, only one component is tested for correctness at a time , Finally, jointly determine the correctness of the whole system .
But from the business level , A simple technique is : If possible , Please observe the background program log printing at any time .
Logs are a good testing medium , With the help of logs, you can find many problems that have not been exposed to the front end and presented to users . We should be good at catching the “error”、“warn” Information, etc. .
problem 4
How to quickly understand some of the tested system “ unknown “ The details of the ?
such as : Observe a certain in the log ” Suspicious “ Information , But it is impossible to determine whether it is a fault , Or after the system restarts , Performance is inconsistent with expectations , Unable to determine whether it is a fault .
This is the time , As a field tester , You need to maintain a good partnership with developers .
Developers know much more about the internal details of the system under test than testers , Keep good partnership with developers , You can ask developers for help at the first time when you encounter problems and get a good answer . also , Under the guidance of developers , It can help us get familiar with the tested system faster .
The problem summary
Aiming at the core problem of this paper : How to test the application function with simple appearance ? Here we give 4 Some suggestions . As shown in the following table :

We won't talk about testing technology , We are talking about how to think about testing .
Last : It can be in the official account : Sad spicy bar ! Get one by yourself 216 Page software testing engineer interview guide document information 【 Free of charge 】. And the corresponding video learning tutorial is free to share !, It includes basic knowledge 、Linux necessary 、Shell、 The principles of the Internet 、Mysql database 、 Special topic of bag capturing tools 、 Interface testing tool 、 Test advanced -Python Programming 、Web automated testing 、APP automated testing 、 Interface automation testing 、 Testing advanced continuous integration 、 Test architecture development test framework 、 Performance testing 、 Safety test, etc. .
Now I invite you to join our software testing learning exchange group :【746506216】, remarks “ The group of ”, We can discuss communication software testing together , Learn software testing together 、 Interview and other aspects of software testing , There will also be free live classes , Gain more testing skills , Let's advance together Python automated testing / Test Development , On the road to high pay .
Friends who like software testing , If my blog helps you 、 If you like my blog content , please “ give the thumbs-up ” “ Comment on ” “ Collection ” One Key triple connection !
Software Test Engineer self-study tutorial :
Interface performance test — Software testers will 618 Analysis of actual combat scenes
边栏推荐
- 自己实现is_base_of
- JS common code questions array de duplication - Custom New throttling and anti shake - deep copy - instanceof URL parameter extraction - thousand separator - array to tree structure - array flattening
- 哪种网站适合物理服务器
- 微信小程序相关操作示例
- 推荐系统-协同过滤在Spark中的实现
- Nexttick principle analysis
- Your technical leader doesn't understand this? Without it, there is no complete thinking process of design
- STM32 Development Notes 121: Kalman filter I understand
- 服务器防护的七个建议
- Introduction to base ring tree
猜你喜欢
随机推荐
Ora-01460: conversion request cannot be implemented or unreasonable
搭建私有CA服务器
When image component in wechat applet is used as background picture
自己实现is_base_of
Leetcode55. Jumping game
[wechat applet] design and interactive implementation of auction product details page (including countdown and real-time update of bids)
Learning records [email protected] R & D effectiveness measurement indicators
[untitled]
rhce第一天
Teach you three ways to optimize the performance from 20s to 500ms
Ownership in rust -- introduction of rust language Xiaobai 11
Panda3D keyboard moving scene
Bypass XSS filters in Web Applications
Dragon Dragon community released the first Anolis OS Security Guide to escort users' business systems
I have seven schemes to realize web real-time message push, seven!
JS common code questions array de duplication - Custom New throttling and anti shake - deep copy - instanceof URL parameter extraction - thousand separator - array to tree structure - array flattening
AUTOSAR from getting started to mastering 100 lectures (105) - protection mechanism of AUTOSAR timing for functional safety
Document collaboration tool recommendation
Go language function
[globally unique ID] how to handle the ID primary key after dividing the database and table?



![[no title] 1](/img/6c/df2ebb3e39d1e47b8dd74cfdddbb06.gif)





