Test Architecture supports commercial success (Part I) @y! I8zpz '
Author: architect Jack Jf#e R6^y0
Contact information: TestArchitectJie@gmail.com h:j ji$q2k0
51Testing Software Test Network #l6u6qqa! Vm
What is a test architecture. The key to business success is what. Is the test just looking for a bug? After years of experience and practice in testing in a business environment, I will share in this article the test architecture that supports business success. #h4y ' Hp5l&o (M) yb6x0
First of all, please look at figure I, the following content will be a comprehensive exposition of Tuyi, to tell you the test architecture, testing the implementation of the activity of the value and significance of business success. 51Testing software Test network g) F/bx6zq ' C
zo{l6f? ' {0
51Testing Software Test Network 4@ $w #oj (G2X:B/L9MW
51Testing Software test Network S,CV+W&J$N#DH p
51Testing software Testing network s; HHB z roi/p u
Figure 51Testing Software Test Network vi:zr| E$n2j
what is business success. 51Testing Software Test network jqs:p) _! M*xmx
With my experiences and experience in the industry over the years, I have concluded that there are two phases to success of an organization's business objectives: the first is to attract customers, and the second is to retain customers. If we can't attract customers to buy your value, then there is no commercial value. However, after attracting customers, in order to keep the business objectives sustainable, you need to continue to retain customers, because to retain customers, to attract the true majority of customers, your business value can be more rolling, to the foundation of Evergreen. We can look at 2 cases: Baidu relies on its own unique features, and high-quality Chinese search results, attracted the first batch of customers, the first batch of customers because of the search results of satisfaction, and word of mouth for Baidu created the second batch, the third batch of customers. Alibaba relies on its own unique functions and positioning, as well as with the support of marketing, attracted the first batch of Alibaba customers, in the first batch of customers to be satisfied with the service, to support the follow-up continues to expand the new customers. If Alibaba's backend system is of poor quality, for example, it often leads to disruption of the customer's online business, or the loss of data to the customer, or the customer's webpage has been modified by hackers. So be sure that Alibaba's existing customers will give up Alibaba's services, at the same time, poor quality of word of mouth will spread, resulting in the inability to attract new customers. So far, whether Baidu or Alibaba are constantly expanding their customer base, it proves that the testing quality of their two companies is still satisfactory, not because of the quality of the business goals. : B m LF F0
51Testing Software Test Network _zg_+t.|}
So how do we testers work in these two stages and reflect their value? 51Testing Software Test network &w8b1m. Y (E4k_
in the "Attract customers" stage: the key to attracting customers is product planning and design, planning products can solve some of the problems of customers, so naturally there will be customers willing to try the product, and become the first batch of customers. At this stage, if you are not a newcomer to the industry, but an industrial "veteran" tester, then you can take advantage of the understanding of the customer needs that you have accumulated in other projects, with a role as a "user" and a boss, Discuss with the development manager what features the product should have and how it can meet the needs of the user. For the ability of a strong, experienced testers can also participate in the product architecture review, design the quality of the project. Ensure that the design of the product meets the initial requirements planning and that the product design flaws are not left to the user. I define this phase of the test activity as "test driven design". 51Testing Software Test Network c$f&x{*e.ax3[
in the "Retain customer" phase: in fact, to retain the customer's contribution, testers from a project began to support. From representing the "user" to beat the need and the correctness of demand, to the product of various types of testing, the purpose is to ensure that the quality of the product as far as possible, do not let the product defects hurt customers. I defined this phase of the test activity as "test driven development". 51Testing Software Test Network # ' *dl@+q[n6r
51Testing Software Test Network *iy+h:@z ' RS.W
Test-driven design – "attracting customers" O~p;fc/d0
The test-driven design here is not to write a test code or a tool to dynamically test the product's design. Instead of using static testing methods, we use the unique product system experience of testers to improve the design quality and quality of the product with the development staff. I put testers ' influence on developers in the product design phase, called "test-driven design." "Test-driven design" solves the need for product design quality, ensuring that the product is designed to "attract customers". In my blog There is an article , "test architect and product architect cooperation" more introduction. Sc1l|qpf5@/h+\b.o4k0
http://www.51testing.com/index.php?uid-293557-action-viewspace-itemid-17948251Testing Software Test Network tc! G]snq
This is a direction for testers to develop in the future, the embodiment of higher value. Become a product design leader, not just in the final stages of discovering the careless mistakes of some programmers. 51Testing Software Test Network 2X#A1SCM
test-driven development--"customer retention"51Testing software test network 1sM x^*l
Test-driven development is not just about TDD, it's not just the testers who write the Unit test Code and then the TDD activity, but the test-driven development also includes the late-system black-box test . Most unit tests can only identify problems with programming techniques or human carelessness, and it is difficult to identify product requirements and design solutions. Therefore, I have defined the black-box testing of the unit test and the use of some test tools as "test-driven development". "Test-driven development" addresses the need to develop quality to ensure that customers are not harmed by human error in the product implementation process and leave us. 51Testing Software Test Network "ux8b h8k-q" {
51Testing Software Test Network 4H,WBFD
How is the test-driven design implemented: Lz:i0? M6bp0
Requirements/planning/design/coding phase testing-"attracting customers" "E f| (E.p%t vJ0
Requirements stage, planning stage, design stage, coding phase of testing in the international has a professional vocabulary called "Early testing", we are interested in Google search "early testing" can have more understanding. The difference between early testing and our usual traditional tests is that testing is involved in which phase of the product cycle. Is it better for the developer to do it or the tester to do it? I still think it's more effective to be a professional tester, because testers have better divergent thinking and more rigorous thinking and are well suited for testing at an early stage. The lack of experience in writing product codes does not affect the development of early testing. It is less efficient to test activities at most in the coding phase, but the unit test code itself is not complex to write. about how to carry out early testing, you are welcome to pay attention to one of my blog articles, "How to test the quality of demand" http://www.51testing.com/? uid-293557-action-viewspace-itemid-19736751testing Software Test network n7p x MQNP
"The purpose of early testing" is to ensure that product follow-up activities are in the right direction. 51Testing Software Test network S%n-p1u-dt
51Testing Software Test Network y8\%]x ' 1FiJ qCc
How "test-driven development" is implemented. ~/h WHk0
testing in the commissioning phase-"Customer retention" (c6{qi\ (h0|0
Post-test is mainly the testing activities of most testers, this phase of testing activities are basically dynamic testing, testing technology entry threshold is not high, but it is to ensure the lowest bottom line of product quality. The post-test includes activities such as performance testing , stress testing, reliability testing, compatibility testing, test scenarios, test case design, equivalence class partitioning, etc. Any company must make these test activities solid, in order to keep the last door. Compared to the early test activities, the requirements of the testers are relatively low, there is no test activity can have enough technology to accumulate support to carry out the risk, so become the mainstream testing activities. However, the lack of post-test relative early testing is: The cost of discovering product bugs is high, the cost of finding the product bug is large and difficult, and finding some product design defects is more difficult than the early test. Therefore, if there is a condition, the test team should try to draw a good soldier forcing in the early testing phase of the input, how much ability to invest how much, do not let "the sooner the defect found, the lower the cost" to become the eternal goal. 51Testing Software Testing Network! G.?] Y3kz b1d
"The purpose of post-test" is to ensure that the product realization work is in a given direction to achieve the unbiased implementation. 51Testing Software Test network 0_YXV) H2JW X
51Testing software test network btqm-~};q;?
Static Testing--"attracting customers"51Testing Software test network-t$t4_#ex\hz O
The primary test activities for early testing are static tests, such as requirements Review, architecture review, code static inspection, and code static test tools that are static tests. Static testing is the most time to detect defects in all test activities, the most efficient, the shortest defect location time (found defects on the location of defects), modify the defect cost is the lowest (there are only some lines or text description of the modification). But static testing has a higher demand for people's ability, so at present most of the companies in China are not able to carry them out. For testers who have carried out static testing, it's good to know that what you're doing is the first step in "attracting customers", which gives you a greater sense of responsibility and makes you more motivated to do the quality of your static tests. The result of static testing is to ensure that you are doing the right product to meet the needs of new customers and attract new customers. Zc0]o X \ C0
Dynamic Testing--"customer retention"51Testing software Test network n "sja-g s$o3c
Dynamic testing, as its name implies, is a test that requires software to be moved. Our traditional black box testing is dynamic testing, some dynamic testing tools can help us greatly improve the efficiency of black box testing, such as: Dynamic memory automatic detection tools, stress testing tools. The use of dynamic testing is basically in the late stage of the product, then the focus of the test is the product has been the correct realization, to retain the old customers, and not because of the modification of a bug, the introduction of new defects destroyed the old customer original function. ' Y.ex\.y;|0
C/mtx}tp0
So far, the top half of this article has ended. At the macro level, the readers are analyzed the main types of activities to support the business objectives, and the value and significance of the testing activities at each stage. When we set up the test architecture, we can divide the test activity strategy from the above categories, and clearly understand the business problem that the subsequent test plan solves. 51Testing Software Test Network/R M$zdcs7ns
The following content will be the lower part of this article, from the micro-level decomposition to support the test structure of the specific test activities. -yt0t8o/?q0
!tr@n~a0
I. International standards and activities for test architectures : 51Testing software test network%as7m7r0y e ' b\d;l P
TMM (test Capability Maturity): a set of evaluation systems similar to CMMI that can help us understand the maturity stage of the current test organization in international standards. "Z@*g*\3b! {R0
ISO9126: is an international quality standard that defines the content of many non-functional attributes. can help us to improve the design of non-functional properties of products, as well as the content of non- functional testing should be included. Ksujs4n1p/@1g0
TPI (test Process Improvement): an international test improvement activity that does not have a single international standard, but it provides a dimension matrix that assesses the quality of test activity, a thought-provoking one. At present, some international testing consultants are using the TPI to conduct testing consulting services, identify the test team's short planks, and give suggestions for improvement. 51Testing Software Test Network a]v.hpk*e6u Q
The role and value of the above content in the test architecture is to improve the quality of the test activity itself. The effect of improving the quality of test activities is to improve the quality of products. As a result, the quality of the test activity knows where the Test team is headed, and can refer to these international methods to help us. 51Testing Software Test network q$g#l A&LF ' e#h
-B ' \ "^,? x!} X@pt0
ii. Common available test engineering methods 51Testing software test network QG1GT "KS
Requirements Testing Methodology-(method of testing in the product requirements phase)-pe ' HDB z0
First of all, to determine whether the requirements are testable, which is the minimum requirements for testing; Q#t (}ej$}k0
Secondly, it evaluates the completeness, ambiguity, consistency, modification and feasibility of the requirement description. +l;o ' U a/e8ad! M.m0
Finally, the necessity of judging demand; yh.xrjj2mu[2x[9r0
The above test methods for people are less demanding is the testability of the needs of judgment, but also need experienced testers to implement. Other content, depending on the tester's project experience and ability to implement. There may be a lot of testing methods for the requirements, but I am only using the above methods to implement, it is enough for me to exert and play, but also in continuous improvement, learning . 51Testing Software Test Network o! Kxa2di
Architecture test Method--(method of testing during product design phase) 51Testing Software test Network +ai| Fvl
The classic way to borrow SEI: "Quality attributes determine schema design". When testers test the product architecture, if they can start from the quality attribute and push back the product architecture design to support the quality attribute of the product, we can find the defect that the quality attribute is insufficient to support the product design. JE S k _$gz0
At the same time, you can make use of the experience of abnormal scenes accumulated by testers and the experience of negative scenes, the abnormal assumptions and negative assumptions of each State or algorithm in the architecture will be discovered, and there are many omissions in the design of the developers. 51Testing Software Test Network ' H,frcod
If the above two methods can be used well, then the tester's contribution to the quality of product architecture has been very large.!@/f nsy0j2c!ga0
risk-based testing-(test methods before developing test plans and testing strategies) 51Testing Software test network K#n3yu o{4g8d
The core is that the tester and the project manager of the company, together with the developer, conduct a risk analysis of the project before submitting the test, scoring the risk from the probability of the risk occurring and the impact of the risk two dimensions. The high risk factor is used as a post-test focus, and the targeted test resources and testing methods are configured. Risk-based testing will help our testing strategy to really focus on the core requirements of product quality, and can greatly improve the overall test plan, testing the accuracy and effectiveness of resources. P/]&z}+x ow:x0
model-based testing--(test methods to improve test design and execution efficiency) nq3z ' Cz0
The problem with this test method is that if the requirements change, then the test case updates, the automated test Script Update will be a lot of work, and the use of model-based testing, you can almost instantaneously complete the use case and test script updates, use case Maintenance will no longer be a nightmare. Only the model-based test method is very high in the quality of requirement description writing, and it must conform to certain descriptive rules to automatically transform the requirement into a model, and the model is automatically converted into a test case. H "R_dw ^8}0
This test method, which greatly improves the efficiency of test design and execution, is currently used only by a few foreign organizations, and I have only seen demonstrations. If your organization can implement model-based testing, your organization has risen to a very systematic stage in the normative and qualitative requirements. 51Testing Software Test network 5zz&kn*s5z J H
Exploratory Testing--(test method for improving test quality during test execution phase) 6PK x.ms ' q,b&xyrf0
Exploratory testing is the embodiment of the art of testing, the most uncertain and interesting activity in test technology, and the most creative test activity. The most primitive exploratory test is the simple "Monkey test", but no matter how advanced exploratory testing is evolved from "Monkey test". A test organization only "Monkey test" is very dangerous, because your test quality is completely helpless, but a test organization does not have "Monkey test" is also dangerous, because many of the surface below the problem has not been found. Therefore, exploratory testing should be an essential complementary test technique for improving quality after the completion of test case execution. It not only ensures that many of the problems under the surface of the system are found, but also allows the testers to cultivate "divergent thinking" and "creativity". Testers have an advantage over developers in "Divergent thinking" and "creativity." +{p y D m3j\0
Experience-based test design- (test method to improve Test experience reusability) Ied6y:nd (k+h C0
There is a saying in the industry that test design based on experience is "checklist". Yes, the checklist used in various tests is the main embodiment of the experience-based test design. For the organization, colleagues with a corresponding Test experience solidify the experience of the scenario that needs testing into "checklist" so that colleagues without these "test scenarios and methods" can apply these test experiences immediately. Not only for the company to retain valuable knowledge of wealth, but also to make testing coverage more comprehensive, more systematic, improve the overall test quality. 51Testing Software Test network B2yw ~w#b H_
fuzzing Test--(test method to improve the quality of abnormal test coverage) 51Testing Software test Network J*osty4nw~a
The fuzzing test is similar to "Monkey test", but the biggest difference between it and "Monkey test" is the system and integrity of fuzzing testing. The fuzzing test usually relies on the test tool to cover all normal scenes and abnormal scenes of the test object, and because of the exception scene coverage by the tool, the full traversal of the abnormal combination can be achieved, which improves the quality of the product anomaly test coverage. 51Testing software test network U,CDU; X
equivalence class Partitioning--(test methods to reduce test repetition rate and improve test design and execution efficiency)/|) T*l0m:w6c1dwq0
for all scenarios and inputs of the object under test, there is always some data that can be represented by a typical data, without requiring us to traverse all the data. Equivalence class partitioning technique is not only used for the range of boundary values with numbers, but also for the division of Test cases, the selection of test scenarios, and the equivalent selection of test steps. @xX/y%f*o0
Orthogonal analysis-- (test method to improve test design coverage) L ~9fu. J[l ' 0
The simple understanding is to widely apply the functional interaction, multi-Quadrant boundary value interleaving test design. Because there is often a module in a single state without problems, but in multiple states at the same time at one point, the module design is exposed to the problem of insufficient consideration. The common combination of equivalence class and orthogonal analysis is used to guarantee the test coverage of product application scenarios, and equivalence class partitioning can optimize the results of orthogonal analysis, reduce repetitive test scenarios and improve test efficiency. 51Testing Software Test Network xb+d9v "N-m
Scenario-based analysis testing--(testing methods to ensure that test cases are not omitted, test case validity) (x o2w9bko&e0
How to build a test case or test environment. "Imagined. "Certainly the test results are not systematic, untrue, and even sometimes the test is superfluous." The best way to do this is to analyze user scenarios using requirements, and analyze the user's possible normal operation and expectation, abnormal operation and expectation in a certain range. Then, based on the scene analysis output test scenario, export the test scenario or test case. The test cases written in this way are real, not redundant or meaningless. It can ensure that each test case really represents the user requirements, proves the validity of each test case, and can reduce the generation of meaningless test cases, or the omission of the test requirements in the user's real scene. 51Testing Software Test Network g-x4f0g#@ '
To be continued, the next phase continues to test the architecture to support commercial success (PART II)...!q; w~) a.~a1a051testing Software test network}bw2{Xim
This article is included in the "51 Test World" E-magazine, the 16th issue. $E 0J) A [k7m B ' b u:m051testing software test network}-w*dtdr!\e
16 Issue Download:51Testing software Test network G8vti) @]i V
/q&_u9p4u ' Z. X0http://www.51testing.com/html/28/n-205128.html
WBG w1kg:h;v [0