A beginner's guide to testing the rookie-Ali Daniel will earn 50K in the new year


The purpose of writing this article is to help new testers better understand the software testing industry and its development prospects. Let newcomers no longer know nothing about the industry and easily enter the software testing industry.

1. Responsibilities of Software Test Engineer

With the development of technology, various applications and various apps have emerged! In the early days, these applications were only used by developers, products, and some users, and the corresponding amendments were given. After they felt all OK, they went online. They can be used directly on the Internet or on some app download platforms, and they have not been standardized. Software testing! These software more or less will have some bugs, these bugs may be functional, compatibility, performance and other aspects of the problem!

In order to improve the problem of low software quality, the software testing industry has only begun to receive attention! The purpose of software testing is to improve software quality and give users a better sense of experience!

The software test engineer understands the functional requirements of the product, tests it, checks whether the software has any bugs, tests whether the software has robustness, safety, and ease of operation, and writes the corresponding test specifications And dedicated staff for test cases.

Responsibilities of software test engineer:

1. Compile test cases based on requirements documents and design documents;

2. Complete product integration test and system test;

3. Build a test environment according to the test plan;

4. Perform manual tests based on test cases, feedback and track product bugs and use case defects;

5. Research and application of test tools/systems;

Second, the characteristics of the software testing industry

There are many classmates around me who have switched careers to do software testing, and I often ask my classmates why they are software testing engineers? I often ask this question during interviews. The sorted answer can be roughly divided into two categories:

  • Like to test this job;
  • IT salary is high, I want to engage in IT, but can't program, and the test threshold is low.

I admire the colleagues who like testing very much. I also joined the testing family because I like computers and the threshold for testing is low. Later, I like to enjoy the sense of accomplishment brought by the test and the joy of locating the problem alone.

I briefly sorted out the characteristics of several software testing professions for your reference.

  • Quick entry, high salary
  • Relatively low educational qualifications
  • The market demand is large, the employment competition is small
  • Long career life and broad development space

Third, the development of software testing

In a broad sense, the development of testers is divided, that is, not only limited to testing their own jobs, there are roughly six categories of directions. There are three core skill elements that determine different development directions, namely:

Three core elements: business development, management development, and test development.

business development

Business development has brought the pursuit of quality and speed, which is the main line of the development of the entire industry.
The needs of business development have affected product development and testing. It is as greedy as capitalists and is always pursuing breakthroughs in bottlenecks. Pursuing faster and better development.
It determines the life and death of many companies and the future of many industry engineers. R&D, products, and QA are all for business services.

Technological development

Technology is an important part of productivity, and the development of technology is accelerating. Every qualitative change will bring about some major changes, and the maturity of the technology determines how much the testing industry can achieve. As a test engineer, you must be good at using the current technology stack to create a solution that meets current needs.

Management development

The main body of the company never stops in the pursuit of simple and efficient management. Every step forward in technology and tools means that the ability to organize and communicate is enhanced. The direction of management will gradually become flat, with fewer and fewer senior management, and more and more front-line management.
One of the embarrassing aspects of the testing industry is the disappearance of the large quality department model, which has caused the development of the testing industry to encounter a ceiling.
If you can’t hold on to R&D and products, people in the development of the testing industry cannot be promoted well.

According to the mastery of the three core skills and the intersection between them, they can be roughly divided into 6 categories:

  • Management direction: test supervisor, test manager, project manager, quality manager, technical support manager, pre-sales test manager
  • Testing technology direction: senior testing engineer, testing technology expert, testing consulting, outsourcing testing, vocational education and training
  • Business technology direction: developers, system analysis engineers, requirements analysis engineers, solution experts, market research and product planning, industry testing experts
  • Technical support direction: pre-sales support, technical support, customer service, customer training, external problem solving
  • Quality assurance direction: QA, quality auditors, quality improvement personnel, risk analysis personnel
  • Other directions: document development, sales personnel, pre-sales testing, marketing personnel, project maintenance personnel

It only represents the specific direction of each major direction, and the subordinates and subordinates are not marked between the various directions/posts, and the level-level relationship is not marked.

Fourth, the process of software testing

Regardless of development or testing, there is a demand side. Through communication with the demand side, information is integrated, and a demand specification is formulated! Requirements specification: refers to the user's requirements text for the functions, performance, compatibility, UI and other parties of the software! Develop and design the program according to the requirements specification! However, some companies do not provide requirements specifications. Most companies use meeting formats and design models as requirements in this part. The purpose of this is that the requirements are not clear and the communication cost is too high!

The following is a test flow chart that I think is more rigorous or standardized:

Five, software testing classification

Classified by method:

  • Black box testing: understood as invisible internal structure, usually to check its function.
  • White box testing: See the internal structure and check the internal code.
  • Gray box testing: Combines two types of testing, black box and white box testing.

Classified by direction:

  • Function test: Test the function of the software.
  • Performance testing: stress testing, load testing, concurrency testing, etc.
  • Security test: Test the security of the software.

Classified by stage:

  • Unit testing: methods, functions, classes
  • Integration test: interface
  • System testing: function, performance, security, compatibility, ease of use, stability, UI, etc.
  • Acceptance test: acceptance

Classified by object:

  • App testing
  • web test
  • IoT testing

。。。

Classified by status:

  • Static testing: Test the code according to white box testing
  • Dynamic test: according to black box or gray box test

other:

  • Smoke test: the test before the test, probably the test software is not testable (it can be understood that there are problems with random tests)
  • Regression test: After the problem that appears in the test is fed back, the problem is retested.
  • Alpha test: internal test
  • Beta Test: Open Beta

6. Getting started with software testing

1. The life cycle of software testing

Test requirement analysis -> test design -> test plan -> test execution -> quality evaluation

2. The basis of software testing

Testing basics is the most important part of software testing. As long as you are doing testing, no matter what the test is, the basics and theoretical knowledge of testing must be learned.

Definition of software testing:

Describe a process used to promote the correctness, integrity, safety, and quality of software. In other words, software testing is a review or comparison process between actual output and expected output.

The classic definition of software testing is: the process of operating a program under prescribed conditions to find program errors, measure the quality of the software, and evaluate whether it can meet the design requirements.

Method of testing:

Software testing is the process of using manual or automatic means to run or measure a certain software system. Its purpose is to verify whether it meets the specified requirements or to clarify the difference between the expected results and the actual results.

From the perspective of whether you care about the internal structure and specific implementation of the software, the testing methods mainly include white box testing and black box testing. White box testing methods mainly include code inspection, static structure analysis, static quality measurement, logical coverage, basic path testing, domain testing, symbol testing, path coverage, and program mutation. Black box testing methods mainly include equivalence class division method, boundary value analysis method, error speculation method, causality diagram method, decision table driven method, orthogonal experiment design method, function diagram method, scene method, etc.

From the perspective of whether to execute the program, the test method can be divided into static test and dynamic test. Static testing includes code inspection, static structure analysis, code quality measurement, etc. The dynamic test is composed of three parts: constructing the test instance, executing the program and analyzing the output result of the program.

Software test plan:

The test plan of a software project is a document that describes the purpose, scope, method, and focus of software testing. Writing test plan documents for verifying the acceptability of software products is a useful way.

A good test plan can play the following roles:

Integrate the testing work with the entire development work;
resources and changes are treated as a controllable risk in advance.

Test program:

The test strategy is part of the test plan.

The test plan is to analyze or decompose the requirements from the perspective of testing, and specify how to test in the direction. The result of the analysis is the test point and test method.

The test plan includes:

  1. Introduction (including a, writing purpose; b, intended readers; c, reference materials);
  2. Test Range;
  3. Test strategy (consider different test methods according to different test types)

Writing test cases

Overall writing ideas:

Black box test case (priority) + white box test case (supplementary) = complete test case

Overall writing strategy:

For the writing of test cases, the four commonly used methods are basically sufficient, equivalence class, boundary value, orthogonal experiment method, error inference method, supplemented by scenario testing method, demand/design conversion method, and exploratory testing ideas , Can cope with the test of most products. Individual products also need to be refined and expanded at a certain point, and need to be discussed on the matter.

Definition of BUG:

The software does not implement the things specified in the product manual. For example, the product manual requires the calculator to realize the functions of addition, subtraction, multiplication and division, and the calculator cannot be divided. This is a BUG.

The product specification stipulates the things not to be done, but the software implements it. For example, the product specification requires the calculator to not implement other functions except for addition, subtraction, multiplication and division. The built calculator can not only perform addition, subtraction, multiplication and division operations. , Can also perform power or trigonometric operations, which is also a BUG.

The product manual does not mention things, but the software implements it. For example, the product manual requires the calculator to implement addition, subtraction, multiplication, and division functions. The calculator can also perform exponentiation, which is also a BUG.

The product manual does not mention what must be done, but the software does not implement it. The product manual requires the calculator to implement addition, subtraction, multiplication and division functions, but it does not mention that it can be used normally even when the battery is very low. The calculator made a calculation error when the battery is very low, which is also a BUG.

The software is difficult to understand, difficult to use, and the speed is super slow. The problems that testers see from the perspective of the end user are common but not correct. The product manual requires the calculator to implement addition, subtraction, multiplication and division functions. But the text or logo used by the button is not clear, such as: "plus" button is represented by "and", or it takes 1 minute or more to calculate 1+1, which is also a BUG.

Classification of BUG:

Fatal bug: System requirements cannot be fully met, the system stops running, important parts of the system cannot run, the system crashes or hangs, etc., which cause the system to fail to operate normally.

Serious bugs: Seriously affect the realization of system requirements or basic functions, and there is no corrective method (reinstalling or restarting the software is not a corrective method). Make the system unstable, or destroy data, or produce wrong results, or some functions cannot be executed, and it is a major problem that often occurs in conventional operations or is unavoidable in unconventional operations. The system cannot meet the main business requirements, performance, function or Usability is severely reduced.

General bug: The system can meet the business requirements, the system performance or response time is slow, the intermediate result is wrong but the final result is not affected, and other issues with limited impact.

Low-level bug: It makes the operator inconvenient or troublesome, but it does not affect the execution of work functions or important functions. Interface spelling errors or user inconvenience and other minor issues or issues that need to be improved

Eight elements of BUG:

  1. Defect Number: The unique identifier of the defect
  2. Defect status: the progress of the defect tracking process
  3. Defect title: an overview of the defect, describing the nature of the problem
  4. Steps to reproduce: Describe the steps to reproduce defects step by step
  5. Severity: the degree of influence of the defect on the software system
  6. Priority: the importance or urgency of fixing the defect
  7. Defect type: according to the source of the defect and the type classified
  8. Test environment: test environment configuration, including operating system and browser

BUG life cycle

Submit bug—assign bug—handle bug—verify bug—close bug

New, confirm, resolve, re-verify, close, reopen

The relationship between testing and development processes

Waterfalls flow:

In a linear manner, the current activity accepts the work result of the previous activity. The results of the work need to be verified and are irreversible from top to bottom, so the efficiency is low, and if errors are found, they must be overturned and re-worked.

Planning-→ Requirements Analysis → Design → Coding → Testing → Operation and Maintenance

Role: The waterfall model is the basic framework of all other models and occupies an important position in software engineering.

The waterfall model is a software development model performed in a linear sequence, because each stage of the waterfall model is executed only once.

In the waterfall model, the testing phase is after the software is implemented, which means that there is enough time reserved for testing activities after the code is completed, otherwise it will lead to insufficient testing and leave defects directly to the customer.

V shape:

The V model is an improvement of the waterfall model that we are familiar with. The left is the development group, and the right is the test group. There is such a one-to-one correspondence.

W type (double V)

The W model evolved from the V model. In fact, the development is V, and the test is parallel V. Compared with the V model, the W model adds verification and confirmation activities that should be carried out simultaneously in each development stage of the software. W clearly indicates the test and Parallel relationship of development.

The w model is developed and tested together, and the test is also on the user’s needs. You don’t need to wait for the development to be completed before you do the test. Therefore, the test can not only refer to the outline design of the development, but also refer to the previous demand analysis and so on. .

Spiral

Develop a plan → risk analysis → implementation engineering (requirement confirmation, software requirements, software product design, design confirmation and certification, detailed design, development, testing) → customer evaluation

Features:

  1. The spiral model combines the waterfall model with the rapid prototyping model
  2. Emphasizes risk analysis ignored by other models
  3. Each spiral includes 4 steps: planning, risk analysis, implementation engineering, customer evaluation (equivalent to a progressive process, each spiral includes these four steps)

PDCA:

The meaning of the PDCA cycle is to divide quality management into four stages, namely Plan (plan), Do (execute), Check (check) and Act (process). In quality management activities, it is required to plan, implement, and check the effects of various tasks in accordance with the plan, and then include the successful ones into the standard, and leave the unsuccessful ones to the next cycle to solve. This working method is the basic method of quality management, and it is also the general law of enterprise management.

1. P (Plan) plan, including the determination of policies and objectives, and the formulation of activity plans.

2. D (Do) is executed. According to the known information, specific methods, schemes and plan layouts are designed; then specific operations are carried out according to the design and layout to realize the contents of the plan.

3. C (Check) check, summarize the results of the execution plan, distinguish what is right and what is wrong, clarify the effect, and find out the problem.

4. A (Act) processing, processing the results of the summary inspection, affirming the successful experience, and standardizing it; summing up the lessons of the failure and attracting attention. For unresolved issues, they should be submitted to the next PDCA cycle for resolution.

The above four processes do not end after running once, but are carried out over and over again. When one cycle is over, some problems are solved, and the unresolved problems enter the next cycle, which rises step by step.

5W2H :

Five English words starting with W and two English words starting with H are asked to find clues to solve the problem, find ideas for invention, design ideas, and come up with new invention projects. This is called the 5W2H method.

(1) WHAT——What is it? What is the purpose? What job do you do?

(2) WHY——Why do it? Can we not do it? Is there an alternative?

(3) WHO——who? Who will do it?

(4) WHEN——When? What time do you do? When is the best time?

(5) WHERE——Where? Where to do it?

(6) HOW-how to do it? How to improve efficiency? How to implement? What is the method?

(7) HOW MUCH-how much? To what extent? What is the quantity? What is the quality level? How about the cost output?

3. Tool learning

Test management tools : TestDirector (large and complete), jira (simple and easy to use), Quality Center (complex, chargeable), Zen Tao (simple and easy to use), bugzilla (simple function), svn (code and document management tool), vss Similar to svn and git, same as svn, but multi-branch management is better than svn, Note (large and complete, too expensive), CQ (ClearQuest-IBM product-large and complete);

Interface testing tools : Jmeter (open source), postman, SoapUI

Performance testing tool : loadrunner, large and comprehensive, it is still a bit difficult to learn proficient, heavyweight tool

C/S automation tool : qtp (recording playback and script editing), using vb language, winrunner IBM products similar to qtp, autoit are very good in window positioning;

White box testing tools : jtest java language unit testing framework, JUnit verification java tool, cppunit cross-platform c++ unit testing framework, gtest cross-platform c++ unit testing framework, PhpUnit Php, BoundsChecker C++, Delphi API and OLE error checking, Pointer and leak error check, memory error check, TrueTime C++, Java, Visual Basic code operation efficiency check, component performance analysis

Continuous integration tools : jenkins, Hudson

App automation tool : appium should be regarded as the most popular app-based automated testing framework at present, the automated testing framework under the instruments ios platform, written in java language, uiautomator Android automated testing framework, basically supports all event operations of Android, Monkey Android's own testing tool, Monkey Runner Monkey, an improved version, supports writing script tests by yourself, using Python language, Robotium is a foreign Android automated testing framework, the usage is relatively simple;

Web security testing tool : appscan, a tool that is used a lot

If you are just getting started, you need to learn the tools and knowledge points, just learn in order.

  • Simple network protocol: TCP/UDP, HTTP/HTTPS
  • Basic operations and common instructions of Linux.
  • Basic operations and common SQL statements of MySQL database.
  • The use of fiddle capture tool.
  • Use of postman interface testing tools.
  • Use of jmeter and loadrunner performance testing tools.

4. Code learning

Regarding the choice of programming language, I recommend Java or python . There is also a database that must be mastered!

Learn programming languages, but you don’t have to learn as deeply as development. For example, Java, you only need to learn the part of JavaSE is enough for you. The same is true for python, just learn the basics.

The above are the knowledge and skills tools that a beginner in software testing needs to master, and there is definitely no problem with the primary test.


Finally: a wave of software testing data sharing!

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.

May you and I meet and you will find something! If you want to exchange experience in software testing, interface testing, automated testing, and interviews. Follow WeChat public account:[Sad Spicy Strips]Receive a 216-page software test engineer interview book for free. And the corresponding video learning tutorials are free to share! Communication learning skirt:313782132

Recommend good articles:

Packaged as a test engineer with 1 year of work experience, my advice before the interview is as follows

What exactly should I learn in automated testing?

Why not consider Tencent for job-hopping? Talk about a little bit of the past between me and the goose factory

Which is more advanced, automated testing or manual testing?

Novice must see: How to write a qualified test case?

Python login interface test problem record and solution (dry goods)

Guess you like

Origin blog.csdn.net/weixin_50829653/article/details/113954733