Chapter 1 exercise and Discussion of modern software engineering

Source: Internet
Author: User
15.3.1 some successful people or companies do not think they need independent test roles. What do you think?

I guess I want to play football for the following reasons:

Tieniu: a rare genius. For example, when Gartner wrote a book and found that typographical software was not easy to use, he wrote one by himself. I have never heard of an independent Tester for this software project. By the way, he does not read emails and has a secretary to help him deal with these things-this is also a division of labor!

Some software engineers study and develop difficult algorithms in the background, or do some background processing work. This work is difficult, and testing is mainly done by themselves through tools. If you have to find a tester, the level of the tester should be quite high. If the level is so high, it is better to participate in the development together.

The problem is too small: "I have written a small class library and all of them are tested by myself." Of course this is good.

However, it is obviously inappropriate to draw the conclusion that "programmers should test on their own and full-time test is not needed" from the above arguments.

Not enough people: it would be nice to do more on your own. As mentioned above, a person can assume multiple roles.

Ignorance: It's hard to say anything.

15.3.2 why some successful companies do not need testers

Here are two articles that have aroused discussion on the Internet:

Bytes /.


The highest score was from Evan Priestley, a former employee. He summed up why Facebook does not seem to have full-time testers:

A) company staff often use their own software products! (If the software you developed is a control module of aerospace flight, how can you use it frequently ?)

B) Use log to analyze the possible causes. (Some of our programmers write programs without logs. What do you think ?)

C) use user feedback and real-time status analysis (compare data from the past one hour with the same time last week to determine whether a bug exists .)

D) The app developer reports a bug to Facebook. (The developer is not really happy, but sometimes FB is modifying the API without warning. What else can you do in addition to reporting bugs ?)

E) Many people voluntarily report bugs to Facebook. The post owner claimed to report 13,000 questions to his former employer every month. (That's right, it's thirteen thousand every month !)

F) Finally, the former employee added: there is another reason that Facebook generally does not need to develop too high-level software.

When your company can also have a) to e) such culture, processes, developers and powerful former employees, and your software "should not be too high quality in general ", you really don't need any full-time testers!

15.3.3 how does Microsoft do it?

As described in the MSF principle, there is a division of labor and cooperation. There are three main roles in Microsoft development and testing [I]:

  • SDE: Software Design Engineer (Dev.
  • SDE/T: Software Design Engineer in test, also write code, but focus on testing.
  • Ste: Software Test Engineer.

Many Microsoft teams have made many explorations on how to develop Internet applications more effectively. At the beginning of Microsoft's business, there were not many dedicated testers. In 1984, the ratio of developers to tests was. later, with the change in the product line, the proportion of testers in some projects was almost the same as that of developers. Recently, some teams are related to Internet businesses and try to integrate SDE and SDE/t into one. Everyone is responsible for developing, testing, and releasing this entire process. According to my observations, this approach has advantages and additional costs.

15.3.4 How should the team arrange QA and Testing

What Should teams and individuals do in terms of testing, quality assurance, and software engineering quality? I think,

  • In the initial stage (new projects, teams entering a new field, and personnel entering a new project), every team member should try to get through all the links, take more responsibilities, and understand everything, train Talent.
  • When the project/industry develops to a certain stage (when it enters the battle), we must vigorously promote the division of labor and cooperation to cultivate professionals. At the same time, good tools and processes should be integrated, from daily building to automation of basic functions.
  • Make the architecture and process of your project well, so that everyone can perform QA work easily, so that the "software engineering quality" of the team can be improved.
  • Cultivate the culture of "everyone wants to do QA, assign a dedicated person to quantify the test, and perform more test automation if necessary.
  • You must understand the characteristics of your project and avoid copying others' practices. Don't hear about the development/testing ratio of a great project, so you need the same proportion when you cry.
  • If a team is serious about software, they must consider how to ensure the quality of the Program/software engineering, and how much it costs to achieve the quality.
15.3.5 career development of testers

After division of labor, how can each person take charge of a small piece of things reflect the unique and huge value of the individual? For example, if you have just arrived at a publishing house and the lead asks you to do the "second Review" job, or if you have just arrived at a software company, the lead asks you to do the "test" job, how can you present your unique value?

Please find several software testing Engineers (for example, Senior Brother and sister who graduated from the Software Institute a few years ago, active users on the testing forum, and software company testers ), learn about and explore the testing profession with them.

[I] This book tells a lot of stories about Microsoft's roles: how to move Mount Fuji, Author: William Poundstone, ISBN 0316778494


Related Article

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: 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.