I have been working for two years. I have always hoped to give myself a better understanding of the test every year. When I worked for a year, I wrote "talking about software testing ".---A one-year work summary discusses my understanding of various tests. Over the past year, although I have strengthened my understanding of these concepts, I feel that there is no qualitative change. I heard a test Manager from our company talking about agile testing a few days ago. He is learning to build an airplane, and I have been learning to build an engine in the airplane. I never thought about what the architecture of a complete plane should be like.
To maximize the value of a test in a company's project, instead of recruiting two testing experts or introducing several testing technologies, the test technology will penetrate into the project process, and the improvement and improvement of the test process. Although, of course, the testing industry is optimistic, many small and medium-sized enterprises are also introducing tests, but one hundred companies have one hundred types of tests. Each company has different opinions on the tests, the company's positioning for the test is not exactly the same. I have been through two companies before and after, and I will discuss my views on the test process with my workshop.
In the past few days, I reviewed the procedures and architecture of the previous two tests.
Simple test process
Let's talk about the first company I joined. I am the first full-time tester. I believe there are still a lot of companies in one or two tests. After I joined the company, all kinds of projects are in progress, the above positioning is not fully integrated into the project. By assigning a task.
Below is a simple flowchart:
Requirement Analysis and Architecture Design:
We are working on a mobile company's internal projects. The demand analysis and architecture are all completed by the project manager, and then the Project Manager assigns tasks to a specific developer, specific implementation of a function module. This requires a high level of experience and technology for the project manager. As a demand analyst, he also acts as an architect.
ProgramMember Code:
Because our development language uses JavaLanguage,IDEUseMyeclipseSelf-containedCVSVersion management tools, completed by developersCodeAnd then submit it to the version library.
Test:
My first task after I joined the company was to set up a defect management tool, manage the Zen-tao project, and track the problems found through promotion. Later, it was clear that the effect was not good, because for a development team of six to seven people, developers prefer the ability of testers to provide feedback in person, which improves efficiency. For a smallBugThe problem can be solved through face-to-face communication.
There was no test line for the current environment. The developer deploys and runs the project on the local machine. The tester accesses the developer's machine through the LAN. Or deploy and test on the tester's local machine. This is also a fatal drawback. Because there are too many unstable computers used by developers and testers, these problems may occur. Sometimes it is difficult to determine whether it is a system problem or an environmental problem.
Launch:
After passing the test, the developer is deployed online.
AProgrammer Process
You will find that in the flowchart,AThe programmer starts the release and tests again. This is our website for mass users. The tester is positioned as a tester and user experiencer, And the tester will findBugAnd experience problems are submitted to the defect management system. The manager analyzes the problems and assigns developers to solve them. Update the system periodically.
Process Analysis:
The only advantage of this process is that it can quickly discover and fix problems.
There are many disadvantages. I believe many small software companies have similar processes.
In this process, the project manager is the core, and the project manager is indeed a good guy with many years of development and project experience. He prefers to share some cutting-edge technologies from time to time. I really admire him.
For testing, the requirements are not clear, and test documents and cases are also dispensable products. There is no requirement document, or it is very simple. You cannot write use cases according to the requirement documents. I can only collect some common test cases, such as logon, file upload and download, list flip, date selection, input box verification, search, and so on, for reference during testing. There are more functional tests and a new function is available, so the test idea will come out.
Standard Test Procedure
I gave up my previous leisurely job and thanked the company that brought me into the market. I want to know how the real test was conducted in public work. So now we are in this company. I'm glad that this test has a team, a professional (for me at the time) process, and the equivalent of development.
Current Test process:
Requirement Analysis:
Requirement Analysis is developed by product personnel. What they need to do is not a simple document, but to refine the details of each function, the location of each button, and to model a slightly larger or more complex requirement.
Demand Review:
All participating project personnel will be called here, developers, testers, QAPersonnel. The tester puts forward the requirement. The developer should consider the functional implementation scheme and feasibility. Of course, the developer is also responsible for the development. Testers primarily raise questions about their needs so that they can write use cases as needed.QAPersonnel are the final persons who verify the software quality, so they also need to understand the needs
Developer preparation schedule:
Schedule the tasks based on the required functional points. The plan is then forwarded to the tester.
Test Plan Scheduling:
Based on the development plan, the tester performs several rounds of tests on the test time, that is, the time after the development function is completed. Then, send the project development and test plan to the department owner and all persons involved in the project.
Write Test Cases:
Based on detailed requirements, you can start to write use cases.
Case Review:
Before reviewing the use cases, send the use cases to relevant personnel by email, so that they can learn in advance what functions the use cases verify and the details of the verification.
Then, the tester group will review the use cases. The developers will determine the differences between the use cases and the actual functions, and the product personnel will grasp the specific implementation of the functions through the use cases.
Submit baseline:
After developers complete all the functions, they will perform a test on their own functions. After the test is completed, submit the baseline to the tester.
Test procedure:
Developers conduct tests on the features from the base-to-test line, and report the problems found through the defect management tools. The developers fix the problems and then prepare the second round of tests.
After completing the first round of testing, the tester should write the test conclusion and send it to relevant personnel. The second round after the baseline is tested, and the second round focuses on the problems found in the first round of regression.
Test passed:
After two to three rounds or four rounds of tests, no new problems are found, or they cannot be solved temporarily, or they are not urgent. It can be confirmed by the superior. Prepare the test report and acceptance plan.
The acceptance plan is submittedQAFor verification. In the current company's process, the test andQASeparately, the tester focuses on whether the function can run normally.QAFocus on the quality of the entire process and the quality of end users. Some companiesQAThere is no distinction between testing and testing, but this requires a higher level of testing. In addition to caring about functions, you also need to care about the overall process and quality.
Process Analysis:
For me, this process is standardized. The test is truly integrated into the entire process and plays a very important role, this effectively guarantees the overall quality of software products.
Is this process perfect? No, this project process is too rigorous. Let's take a look at the test content, test plans, test cases, test conclusions, test reports, acceptance plans, and issue submission tracking. In fact, we have very little time to test. In a week, we may only test one day or less. The tester only shows his value during the test. But most of the work cannot reflect his value.
Of course, I will omit things irrelevant to the main test process here. There are a lot of things in the real test work.
Agile Testing Process
Next, let's take a look at agile testing. I have never been in touch with agility, and I have never spent time learning and researching agility. The only contact was to hear our test Manager talk about the measurement process for two and a half hours. There were a lot of people, and I stood and listened. I have benefited a lot, and I will talk about it with my memory.
Either the first or second process is waterfall. Strictly speaking, the first simple process cannot be called waterfall. For a three-month project, after the product has analyzed the requirements for development, the product will be okay. After the development is complete, the developers will not be busy. After the test is completed, go online. In the product analysis stage, development and testing are useless (only for a single project ). In the development phase, products and tests are basically okay. In the test phase, there is nothing to do with products and development.
One core of agile testing is iteration. At each point in time, all project personnel have something to do.
1. The agile test flowchart in my understanding is as follows:
Stage 1:
Through the above flowchart, the demand analysis for one month can be determined in three or five days in agility. This requirement is vague, but the overall framework is fixed. When the product confirms the functions of a module, the developer starts to code the confirmed functions and test the functions during the coding process, because it is difficult to write specific use cases based on fuzzy requirements, you can only analyze the functions as much as possible and mark the content to be verified.
Stage 2:
After the development is complete, it is handed over to the tester for testing. The developer continues to develop new functions. What should the testers do if they discover problems? A single member will be drawn from the development team to solve the problems found in the test. However, the development progress is not stopped due to testing.
Process Analysis:
In this process, the document is relaxed and the communication between various personnel is emphasized. Through this iteration, a three-month project can be completed in two months and two and a half months.
However, this process is not perfect. Adding a function is wrong in the demand analysis stage because it is an iterative process. It can only go wrong all the way.
2. Handling of Test Problems
The figure above shows the handling process of the problem.
The first panel contains functions not implemented by the developer, and the second panel contains the functions completed by the developer. The tester tests the functions and places them back in the undeveloped panel if they fail, the tested items are placed in the third panel.
It should be noted that agile testing is a process in foreign countries. In terms of content, there are a lot of people and there are not many companies introducing it. Our company is very different, and the test process may be quite different. For a tester who has been working for two years, never paying attention to the test process and structure should be a tragedy. I don't want to be limited by my thoughts, so I try to break through one limitation.