Interview Test Summary

Source: Internet
Author: User
Tags appium

1, give you an app, how do you test?

(1) Functional testing-----The main test app's process and business requirements Compliance (manual and automated combination testing)

(2) Performance test------Focus on the app's performance parameters: CPU, FPS, memory, power consumption, traffic, and focus on app installation and start-up time

(3) interface test------focus on the transmission of data, data security encryption

(4) Security testing------The user's information in the app is encrypted, XSS attacks, SQL injection to test

(5) Compatibility test------Platform/system (iOS, Android), different models, different system versions of the same model, resolution, compatibility between versions, etc.

2. How does the Appium work?

Appium will create a Http:127.0.0.1:4723/wd/hub server (equivalent to a broker) at startup, and the script will tell the servers what I want to do, the service side to deal with the device, the service has finished the script to his task

How does the service end and device communicate?

The server and the device use port 4723 to communicate by default, the bottom call Uiautomator tool, At the time of testing, the server will throw a jar package to the device is Appiumbootstrap.jar, will start the package, will be launched on the phone after the creation of a socket service, exposing the port is 4723, compared to the socket service, the Appium server is a client;

Server 4723 can be modified, not on the device, the server received the script passed over the command, through the computer on the 4723 port, to the device on the 4723 port to send instructions, Appiumbootstrap.jar after receiving the instructions, go back to complete the click, swipe other operations, complete and then through the service to the service side of a corresponding. After receiving the server, go to the appropriate script.

---------------------This article from jffhy2017 csdn blog, full-text address please click: 69220719?utm_source=copy

  

Appium Working principle 2.1 Android

On the Android side, Appium is based on the Webdriver protocol, using Bootstrap.jar, and finally using uiautomator commands to automate the app's testing.

The Uiautomator test framework is an app UI Automation test Java library that comes with the Android SDK.

In addition, thanks to Uiautomator's limited support for H5, Appium introduced Chromedriver and safaridriver to implement H5-based automation.

Appium on Android side workflow
    1. The client side, which is our test script, is our webdriver.

    2. In the middle is the Appium service, Appium a server (4723 port) on the service side, similar to the Seleniumwebdriver test framework, Appium the standard webdriverjsonwireprotocol. Provided here it provides a set of rest interfaces, Appium server receives the Web Driverclient standard rest request, parses the request content, and responds to the action with the corresponding framework.

    3. Appium server forwards the request to the middleware Bootstrap.jar, which is written in Java and installed on the phone. Bootstrap listens to 4724 ports and receives Appium commands, which are finally implemented with Uiautomator commands.

    4. Finally, Bootstrap returns the results of the execution to Appium server.

    5. Appium server then returns the result to the Appium client.

2.2 iOS

On the iOS side, Appium also makes? Webdriver a set of protocols.

Unlike the Android-side test framework, Appium iOS encapsulates Apple's instruments framework, mostly using uiautomation in instrument (Apple's Automated test framework) and then making a note in the device. Into the bootstrap.js to monitor the line.

Appium Workflow on iOS side
    1. The client side is still test script, which is our webdriver testing scripts.

    2. In the middle is the Appium service, Appium a server (4723 port) on the service side, similar to the Seleniumwebdriver test framework, Appium the standard webdriverjsonwireprotocol. Provided here it provides a set of rest interfaces, Appium server receives the Web Driverclient standard rest request, parses the request content, and responds to the action with the corresponding framework.

    3. Appium server call Instruments.js start? A Socketserver, and a sub-process? Instruments.app, will Bootstrap.js (a uiautomation script) note? into device? To interact with the outside world

    4. Finally bootstrap.js returns the result of the execution to the Appium server

    5. Appium server then returns the result to the Appium client.

So we can see that the difference between Android and iOS is that Appium forwards the request to Bootstrap.js or Bootstrap.jar. Then the bootstrap drive UIAutomation and uiautomator to the devices to complete the specific action.

3, the interface test case design?

 1) priority - - for all interfaces

1, exposed to the interface, because usually the interface will be called to third parties;

2, for the system internal call core function interface;

3, for the system internal call non-core function interface;

2) priority - - for a single interface

1, positive use case priority test, reverse use case second (usually, not absolute);

2, whether to meet the prerequisites > whether to carry the default parameter parameters > parameter is required > whether there is an association between parameters > Parameter data type restriction > Parameter data type itself data range value limit

3, no network, interface response time and return value

4, how to simplify the use case when there are too many interface test cases?

(1) According to the use of the interface object (external, internal system), there is a choice to go and leave some use cases

(2) Depending on whether the interface is the core interface, there is a choice to go and leave some use cases

(3) According to the parameter description, and the actual situation, have the choice to go, leave part of the use case

5, how to consider the input value of the interface test design?

(1) All required parameters are covered

(2) combination of optional parameters

(3) parameter has, is not, or is null

(4) Order, number and type of parameters

(5) numeric size of the parameter type, range of values entered

(6) Length of the parameter string

(7) parameter contains special characters

6, Interface test quality evaluation criteria:

A) whether the business function coverage is complete

b) Completeness of business rule coverage

c) Parameter validation meets requirements (boundaries, business rules)

D) Interface exception scenario coverage is complete

e) Whether the interface coverage meets the requirements

f) Code coverage is up to the requirements

g) Whether the performance indicators meet the requirements

h) Whether the safety indicators meet the requirements

7. Software test Case Design

Recommend a blog, learning Links: https://www.cnblogs.com/sunshine2016/category/840159.html

8, the interface test again, function test again, is not the test repeat?

No, you can set 2 tests to focus on different, recommend a blog, learning Links: http://www.cnblogs.com/puresoul/p/5388586.html

9. What is the difference between HTTP and HTTPS?

1, the HTTPS protocol requires a certificate to the CA, generally less free certificate, and therefore a certain cost.

2, HTTP is a Hypertext Transfer Protocol, the information is plaintext transmission, HTTPS is a secure SSL encryption Transfer protocol.

3, HTTP and HTTPS use a completely different way of connection, with the same port, the former is 80, the latter is 443.

4, the HTTP connection is very simple, is stateless; The HTTPS protocol is a network protocol built by the SSL+HTTP protocol for encrypted transmission and authentication, which is more secure than the HTTP protocol.

---------------------This article from xh15 csdn blog, full-text address please click: 68569282?utm_source=copy

10. Is there any understanding of the request method? Explain separately

Get: Send a request to obtain resources on the server, the request body does not contain the request data, the request data is placed in the protocol header. In addition, get supports cache, caching, bookmark retention, and so on. Power, etc.

POST: As is common with get, submitting resources to the server for server processing, such as submitting forms, uploading files, may lead to the creation of new resources or modifications to existing resources. The submitted resource is placed in the request body. Cache is not supported. Non-idempotent

Head: The essence is the same as get, but the response does not present the data, but the HTTP header information, mainly used to check the validity of the resource or hyperlink or whether it can be reached, check whether the Web page is changed or updated, get header information, etc., especially for limited speed and bandwidth.

Put: Similar to post, HTML forms do not support, send resources and servers, and store in the server specified location, requiring the client to know the location beforehand, such as Post is on a set (/province), and put is a specific resource (/province/123). So put is safe, no matter how many times it is requested, is changed on 123, and Post may request several times to create resources. Power, etc.

Delete: The request server deletes a resource. And put are disruptive and may be blocked by firewalls. If it is an HTTPS protocol, you do not need to worry. Power, etc.

The connect:http/1.1 protocol is reserved for proxy servers that can change connections to pipelines. is to use the server as a springboard to access other Web pages and then return the data back, the connection is successful, it can be normal get, post.

OPTIONS: Gets the HTTP request method supported by the HTTP server, allowing the client to view the server's performance, such as the pre-check for Ajax cross-domain.

TRACE: Echo the request received by the server, primarily for testing or diagnostics. Generally disabled to prevent malicious attacks or theft of information.

11. What is the difference between a GET request and a POST request?

  

GET POST
Click the Back/Refresh button No impact Data is resubmitted
Cache/Add Bookmarks OK No
Historical records Yes No
Encoding type application/x-www-form-urlencoded

application/x-www-form-urlencoded

or Multipart/form-data. Used for binary data

Multiple encodings

Whether idempotent Power, etc. Non-idempotent
Length limit

There is no limit to the HTTP protocol, but the actual browser or service

The device has (maximum 2048)

Theoretically, you may receive server configuration or memory limitations
Data type Restrictions ASCII only, non-ASCII encoded transmission No restrictions, allow binary data
Security The data is all displayed in the URL, not secure More secure than get, passing data through request body
Visible effect Visible Not visible

Note: The above is only a specification, if you want to add the request body to get, or to the post URL with parameters, there is no technical problem.

12, how to determine the performance test indicators? How is the standard set? How to drive performance optimization?

(1) Based on existing business determination

(2) Existing industry standards

(3) Previous work experience, etc.

Optimization of performance:

Memory use optimization, program architecture optimization, reduce inter-module coupling, or network performance optimization

How do I develop a bug that doesn't recognize you?

  

1, you can first analyze what types of bugs will appear in this situation, and then according to each situation of the specific description, from the bug itself, environmental factors, people and other aspects of the answer, so that can reflect their analytical ability and way of doing things

2, development does not agree with the bug is generally: data problems caused by the bug, environmental problems caused (occasional), optimization of the experience class bug

3. If you are applying for steel, you can also answer the "people" of the situation, such as a possible contradiction between testers and developers.

4, the work encountered this situation, do not easily agree with the development of the general vague view, multi-latitude verification (troubleshooting), clear the condition of the bug, the real reason for locating the bug, the test is actually to provide information, such as the app has a flashback problem, we on the same phone to verify the different versions, or different phone to verify the same version, or the same phone, different operating system version, verify the same app version.

Second, the test time given is particularly short, how to arrange to write the use case and the time to execute the test?

Examine whether the flexibility of doing things, whether you will pay attention to prioritize, and problem-solving ability, (interviewers often through the analysis of the candidate performance, summed up the ability to judge their ability to solve problems), the answer can be based on the specific situation of specific analysis, and then combined with specific examples:

Scope of thinking:

Whether the change is optimized for the new requirement/old block, the scope of the module affected by the change, the priority of this task, the total development period of the change, the current number of testers, the scheduling of other tasks of the current tester, whether the project manager has an unreasonable schedule for the change, and after considering the actual situation, Communicate with Project manager and other people to arrange the time,

Plainly is the problem of quality and time, this time I can complete, but do not guarantee the quality, quality assurance in the case of a certain time is not to be ignored, fish and bear paw can not be both

1, do you need to write a lot of use cases? Or do you need to do a lot of test analysis? This is not necessarily, for example, the corresponding regression time for bug fixes is not clearly given time.

2. Can the use case be filtered from the use case library?

3, is the demand, without use cases, consider using Xmind

4, overtime can catch up with the progress, appropriate overtime to catch up (but this is not a permanent plan)

5, the management of the project quality attitude (this is basically needless to say)

6, if is the interview management post, need to consider: I like with what kind of person to carry out such a task more appropriate? Is it necessary/possible to consider whether this phenomenon is temporary or normal?

Interview Test Summary

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.