Как Тестируют в Google

  • Upload
    214124

  • View
    62

  • Download
    0

Embed Size (px)

Citation preview

  • 32.973.2-018-07 004.415 13

    . , . , . 13 Google. .: , 2014. 320 .: .

    ISBN 978-5-496-00893-8 Google: -

    , , , -. , Google, - . Google, , - . - : , , .

    12+ ( 12 . 29 2010 . 436-.)

    32.973.2-018-07 004.415

    Authorized translation from the English language edition, entitled How Google Tests Software; ISBN 9780321803023; by James A. Whittaker, Jason Arbon, Jeff Carollo; published by Pearson Education, Inc Copyright 2012 Pearson Education, Inc

    All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.

    Pearson Education, Inc. . .

    , , , . , , , .

    ISBN 978-0321803023 . Pearson Education, Inc., 2012ISBN 978-5-496-00893-8 , 2014

    , 2014 , , 2014

  • 5

    ..........................................................................10

    ................................................................................12

    .........................................................................16

    .............................................................................................................22 .................................................................................................24 ......................................................................................................25

    ................................................................................................................27

    1. Google..................28 .....................................................................................33 ......................................................................................................................34 ...............................................................................37, , ............................................................................................38 ..........................................................................................................40

    2. .....................................................................44 ..................................................................46 .................................47 ? ..................................51 ........................................................................................52 ..............................................................................................54 ....................................................................................55

  • 6 ....................................................................................57 ............................................................................58 ......................................................................................................59 ...................................................63 ..............................................................................................74 .............................................................................75 ..........................77 .............................................................79 .......................................................................81- ..............................................................................................87

    - .........................89 .......................96

    ............................... 103 WebDriver ........................... 105

    3. ..................................................... 109, ..................................................... 109 ................................................................................ 110 .............................................................................114

    A Attribute ......................................................................................117C Component .................................................................................. 121C Capability ....................................................................................122

    .....................................................................................................................132 ............................................................................................... 133

    ...............................................................................................138 .......................................................................................... 141 - ............................................................................................. 145 ................................................................... 150 Buganizer ........................................................................ 151 .............................................. 164 .............................................. 168 Google ................................................................ 173 ........................................................... 178 Quality Bots ................................................................................ 182BITE .............................................................................................. 195

    BITE ............................................................................. 197 BITE .................................................................................. 199 BITE .............................................. 201 BITE .................................................. 205 BITE ..................................................................................................205

    Google Test Analytics ...........................................................................................206

  • 7 ..................................................................................212 .....................................................................................216 Google Docs ......... 218 YouTube .......................... 224

    4. - ..........................................................................................231 - ................................................................................... 231 ................................... 233 ..............................................................................................................235 , - Gmail ................................... 237 , - Android ...................................... 244 , - Chrome .............................. 249 ............................................................................... 254 ,

    Search Geo .....................................................................................................255

    ...........................................................................................259 ,

    Google ........................................................................................ 263 - ................................................. 268 .................................................................. 272

    5. Google .............................................. 279 Google ........................................... 279 ............................................................ 282 .............................................. 283 - - ........................................... 285 .......................................................... 285 .....................................................................................................286

    . - Chrome OS ............................................................ 287 ...........................................................................................................287 .................................................................................................... 288 ..................................................... 289 ........................................................ 289 .......................................................................... 290 ................................................... 290 ............................................................................291 ................................................................................................. 291 ...................................................................................................291 - ................................................................................... 292 .............................................................................. 292 ...................................................................................................292

  • 8 ..........................................................................................293 ,

    ........................................................................ 293 Autotest .......................................................... 293 ....................................................................................... 293 .............................................................. 294 ...................................................................... 294 AppManager ............................................................... 294 ..................................................................................... 295 .....................................................................................................296 ................................................................................................................ 296 .................................................................... 298 ................................................................. 299

    . Chrome ......................................................... 300 ................................................................................................... 300 .......................................................................................................301

    ................................................. 302 ............................................................................302

    ................................................. 302 ..................................................................................................303

    Chrome ..................................................... 303 ..................................................................................... 303

    ................................................. 304 ........................................................................................ 304

    Chrome ................................................................................ 305 .......................................................................... 305

    Chrome OS ....................................................... 305 ..........................................................................................306

    Chrome .........................................................................306

    . ................................... 307 BITE ...................................... 307QualityBots ..................................................................................... 310RPF: Record Playback Framework ........................................................................312Google Test Analytics ........................................... 315

    .........................................................................................................315 ........................................................................................................ 315...............................................................................................316 ............................................................................................................316

  • Google, Microsoft , .

    .

    , , , , Starbucks.

    , , .

  • 10

    2006 . , . , . .

    , , , . , . , - .

    , , - . , , , . . - , .

    . , . , , . .

    , , . , , , .

    Google , , . - , - . Google , .

  • Google , Google , , , . , Google . , , Google . .

    2009 , 2010- - Swiss Testing Day. . -. . 2011- - Google EuroSTAR. , Google .

    . - , . . , , - - : , , . , .

    , . - . Google, , . - , .

    , . Google : , , . : , - , . , , .

    , Google, Google. ! , : , -

    , , , , , , , . , . , .

    P.S. : ?

  • 12

    , , . , . -. , , - . , , . , , . Si, senor , . , , , .

    , . , , .

    . ?

    , , 1 ? , ? , , , , . . .

    , - . ,

    1 , ? !

  • 13

    , , -, . . , , - . , .

    , , . , Google , - - XXI . , Google . , .

    2001 Google . ! - , TDD (Test-Driven Development, 1) ( JUnit) . , - . . , .

    , . AdWords: , , -. - . , , -. Google , - -. JUnit . . . Thanks God, It's Friday! , . , , , , -

    1 , , , . , . . .

  • 14

    . , ?

    , . . , - - . , . , - . , , . , . !

    ? , - . , , , , -. Google . , . , , -. , . , -. , , Google. , , . , , , , . , Google XXI, -, . , , , . , Google.

    : , . Google, , - , , Chrome, Chrome OS . - Google. , - , - Google. , , !

    Google 200 20000 , , -

  • . . . , , Google. Google . - . , Google , , . -, , !

    Google. 2001 Google AdWords, , -- . The Way of Testivus Beautiful Tests OReilly Beautiful Code.

    : ! -, , . , . , !

  • 16

    Google 2005 . - , , . Google , . : - .

    , , , , - Thanks God, Its Friday. , . , , , . Google. , - . , - !

    Google, . 50 , . . - . , Google.

    . Google . Google , -

  • 17

    , . . , , . - . , .

    Google . , , , . Google . - . - -. , Google.

    , - . , , , . , ( ), - . - : , , . , , -, . - , , .

    : Google -. , . .

    - Google, . , , : , . , , . , . , , . .

    , , , , , . , . , , . -

  • 18

    . , , Google, , .

    , . , -, , ! , , , : ? . - .

    , , Google , , - . Google , , . . , - ( ) . , . , - .

    , , . - , - , . , , .

    , , , . , , . , .

    , , . , , .

    , : Google. , - , .

    . , , . - . ,

  • 19

    . , , . , , .

    . . , - - , , . , , . , () . , . , !.

    , , , . , . . - . , . . , , , .

    , . - . - . , , . , .

    . Google - (YouTube, Google Docs ), - . , , , . , . , . .

    - . - . 2007

  • 20

    . . , - . , - . , , . , , .

    - ( ). - . , . - , , . - . , - . - , , .

    , - , , . , . , , - . , , , -. , , .

    . . , -. , , . , , . , .

    , Google - . . , , , -. . .

  • , . - , . - : Google .

    ? , , , . , Google . . , 1200 , 2005 , Google. , Google . , , . , , . , .

    -, Google. , , , , - Google. Google - Microsoft . - Google , .

  • 22

    . . - , Google. , - , .

    Google , . . , . -. - . 2011 Google+ .

    Google . , Google , . , , . , , .

    , . , Google , -, , , . Google , : - .

    , . - , , , ,

  • 23

    . , - , - , . Google , . , ( , -) , , Google. . .

    , - , , . , , .

    , . , Google. .

    . (Software Engineer in Test, SET), Google. - , . , . (Test Engineer, TE). , . Google . -. , , .

    - , Google. , - Google.

    , , . - , Google, Google . , , , - .

  • 24

    - -- . . , www.informit.com/title/9780321803023.

    , . . , , Google , . . , . How to Break, Exploratory Testing1 , , . . , , , Google, , , .

    , IT- , , Google , . , -, , , , Google. - !

    , . , Google . , . , . .

    , . , -, - .

    1 How to Break Software: A Practical Guide to Testing ( : ) Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design ( : -, , -) . . .

  • 25

    , ( , ), , . , , .

    Google . -- . Google, . , , Google, , . , - , , , . : - , . .

    , () , !

    ,

    Google, . Google, .

    , , : . , , , , , , , , , .

    , , - .

  • , : , , , , , , , , , , , , , .

    , . Google, - . , . , -, .

  • 27

    Google1, - Chrome, Maps - Google. Microsoft, . - .

    Google, Google Desktop, Chrome Chrome OS. - . Google Microsoft.

    , - Google Voice, Toolbar, Chrome Chrome OS. Google, . 2010 , Google+ API. Google Microsoft.

    1 2012 Google Microsoft. . .

  • 28

    1

    Google

    , . , , . : Google ?.

    , . Google, . , . ( , - ) , , .

    - . -, . , Google , . -, Chrome Chrome OS (, ), - Google . Google.

  • 29

    Google , - . , ( - ) . - , - , , . , , Google . Google -, , , - . - , .

    Google , - .

    2010- Chrome OS, , . . Google 1 , . , , . Google , , Google .

    , . - Microsoft, , - How We Test Software at Microsoft, , . Microsoft . - . Microsoft . , , - . .

    , . , Microsoft ,

    . Google , . - 1200 . , , , . Google , GTAC2 .

    1 http://googletesting.blogspot.com/2011/01/how-google-tests-software.html

    2 GTAC Google (Google Test Automation Conference, www.GTAc.biz).

  • 30

    , . , Google.

    , Google . . Google . , - .

    , Google, , , , - . , , , , .

    -, . , - Google , . Microsoft, , . , . . , .

    , Google - , .

    , Google. . -, , Google , . , . , - , - Google. , .

    Google . , , . , . , , , . - , - . , .

  • 31

    - , . - , .

    Google -. , , - ( Chrome) , - . , - . , : , , , , . . : . .

    Google - . Google . Google -, , , - . , , . . . - . . , Google . , Google , -. Google , .

    , ( ) Google. : . , Google -. , Google , , . , Google , , - .

    Google : , . .

  • 32

    , . , . , , , . , , . . . , , : .

    , , : - .

    Google ? , , Google , . - - . , Google, , (. 1.1). - / Google , . . . , - .

    . 1.1. Google

  • 33

    . , . , - - . , - . . , - .

    , . , , , . , - , . , .

    . , , -

    . , , ?

    : - . . - . - . , . . : , .

    . - : , .

    : , . , . . , . . , ? . ? , . ?

  • 34

    . Google - . , , , , .

    , . - , . -, , , . , , . Google , .

    -. , ?, 1 . . , .

    . , .

    , ( ), , . , , - . , , . - , . - . -. , - .

    (Software Engineer, SWE) . , . ,

    1 http://googletesting.blogspot.com/2007/01/introducing-testing-on-toilet.html

  • 35

    , -1. - , TDD -, , , - , . , : , . , : , . 100% .

    (Software Engineer in Test, SET) , - . , . , , - . , -, , . 100% , , .

    , , - , . , .

    (Test Engineer, TE) - , . Google . , , , . , . , . , 2.

    1 - ( ) - , . . . .

    2 , , -. . .

  • 36

    . , - , .

    , . , - , , TDD, - .

    . - . , (stubs), (mocks) (fakes), . - . , , . . , , -.

    , . . - . .

    -, , . - . , . , , , - , , .. , -, - , , - - . , - , . , .

  • 37

    , , . , - . , .

    , , . , , . - , . . . -?

    , , . - , . .

    , Google. , , Focus Area (FA). - Client ( Chrome, Google Toolbar ..), Geo ( Maps, Google Earth ..), Ads, Apps, Mobile .. - .

    , . , . . , , - . , . , , -. , , , , - . - , , .

    -. -

  • 38

    , . , - -.

    - . , , . , , . , .

    . , , . -, . , .

    - . , . , Geo, , , Chrome. - , .

    , 18 , (, , ) -. , . , . Google , - , , . - Google , -, , .

    , , , Google , , . .

  • 39

    , , . Gmail, - . , . - , 99,99% . Android G1 , . , Nexus. , , , - . , , , .

    Google . , . , : , , , - .

    , . -, . Chrome , Google, , . .

    : , , , . , - ? ( , ), , . , . , . , ( ) , .

    Android . , , - .

  • 40

    : . , - ( ). , , , . - , . , .

    : , . . -, . , , .

    - : , , . , .

    , , - . - .

    , -, , . , - . , . , .. , , - . . , , .

  • 41

    , -, , , , .

    ( ) . . - , , , . , . , , . . ( ), -, . . , , . , ?

    . . , , . . - . , . , . ( -) . , ?

    ( ) . , , . - , , - . . , . , , ? , , .

  • 42

    . . - , .

    , , , 1. , Google , , . - , , , - . 2.

    , -, - . Google , . Google , , . , . , , . . -, .

    , , . , . , (, -), .

    , . - , .

    1 , . - , -, BVT (Build Verification Test), . . , . - , .

    2 , , Google - , ( ) . , .

  • , Google , -, , . -, , . - 1. , , , - , . , Google.

    1 Google - , .

  • 44

    2

    . . , . , , . , , , , -. , , , , . - , -. , . , , - , , .

    , , . , , - ( ). , . : (harness), , (mocks) (fakes). - , , . , .

    , - , . .

  • 45

    . . , , . . , , , . , , , -, .

    .

    , . , , , . , , -, - , .

    , , - , : .

    , . : , , . . , . , , - .

    , : , , - - .

    , ? !

    , . Google, - , , . , , -. Google , ,

  • 46

    1. - Google .

    , Google , , , . - . .

    Google -. - - , . .

    Google , . - , - , . .

    , . -

    . , . , , .

    , , , . , . . - , 2 - Google. - , 3.

    1 , Google , .

    2 Google.

    3 , , -.

  • 47

    , , . - , -. , Google - , , .

    , -. , . Google . . Google , , , ..

    , -. , .

    : , , , - 1. , . - , , , , . . Google , ( !) .

    1 Google , - 20% Google. , , . , Google - . - , , . , , , , . , Google , , . ( Google - . . .)

  • 48

    , -, , . Google , .

    , -, , .

    , . , .

    . , - - .

    , , . , . , .

    -. , . , .

    , . , - .

    , - . 1.

    Google -, , , . - -

    1 Google . , , -. . , ! , , .

  • 49

    Google (C++, Java, Python JavaScript).

    -, .

    - . OS, . Linux, , -, , . - - 1. , , , , .

    , , . , - Linux. , -, Google, , Linux. , , , - , . .

    Google : Linux , , - , , , . , , .

    , , . , (C++, Python Java), - .

    , . -, , .

    1 Google Android ChromeOS, .

  • 50

    .

    1. . , .

    2. (, ) .

    3. -, , - .

    4. -.

    5. . , .

    6. , .

    7. - ( - ), -.

    : , , . , Google TDD (Test-Driven Development, ), 3 1 2.

    , , . , . - Google, :

    ;

    - ( , );

    -, .

    Google . 1:1 . , , - . -, . , . , .

  • 51

    , . , , - . , , .

    , - . . - , . , , - . , , .

    . , - . - . . .

    ? , Google. . , 100% . -, , . - , - . , . , , .

    , -.

  • 52

    -, . , -. , . , .

    , . , . , , , .

    , . , Google. , . , , , . - : . Google . , , . , , , , - . . - .

    Google , - . , . : , , Google. Gmail Chrome OS. , -. ( ) , , .

    . , , Google. - .

  • 53

    , . , ?

    , , . , , - , - . .

    , . - , , . , . , . .

    Google , . , , . , , . Google. - , , . Google .

    Chrome OS . . , - , . , Google, - . , . , , , . , - .

    Google. - . , , - . Chrome OS , , - , - . , , .

  • 54

    . - , , - .

    , , . , . : , . , , , , .

    Gmail Chrome . . , - . , - , , , , .

    , , , . . , , , . , , , . , .

    , , . . , , . , - , , , . , .

    . Google - ,

  • 55

    , . . , .

    ( ). , , . , .

    Google . -, . , , - . . - . . - . , .

    , . , . , , . : . - , . , - . , .

    , .

  • 56

    . , . . , , . - .

    , . , .

    , , - , . .

    , , . .

    , , .

    , , . -, , . :

    . , - , , , . - .

    . , - . . .

    . , . , , .

    . , . ? ? . - ? ?

  • 57

    ? ? ?

    . ? , ? ? Google? protobuf- ( )?

    . , -? ? , , . ? , , , .

    , . .

    - , - , . , , - , . , .

    Google , . Google Protocol Buffer1 . Protobuf , - , . , XML, , .

    1 Protocol Buffer Google , : http://code.google.com/apis/protocolbuffers/

  • 58

    Protocol Buffer (Java, C++ Python). Protocol Buffer . , protobuf- , .

    protobuf-, , - . , . , , -. , - . , , . . , .

    , - .

    , . . . , . , , . - , . , .

    - , . , , . , -

  • 59

    , .

    - .

    Google . , , , . , .

    , - . , , - , . . : .

    , : , . , . - . , .

    . , , . .

    . , , -. , . , , Google.

  • 60

    - , Google -. , , , , .

    . , , -, - .

    Google -. , , , , .

    Google . , . .

    , , . , Google Mondrian, , . Mondrian 1.

    , , . , - , .

    , . . Google C++, Java, Python JavaScript. , , , 2.

    , - Mondrian. , Google, , , , . . , Mondrian

    1 Mondrian App Engine : http://code.google.com/p/rietveld/

    2 Google C++ : http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml

  • 61

    . . , .

    , , . -. , , . - , , .

    - main . . , , . - .

    - Google . , -- . , , .

    . , , - . , - . , - - . - , . , - , .

    -. -

  • 62

    . , . . . , , . .

    - . , - . , , - . . , .

    , Google . , . . , - , . . .

    . , , . , . - : . , . - , . - , , . . .

  • 63

    Google . , , , - .

    , - - , Google . , - . . Test Automation Program (TAP). , TAP - . Google, Chromium Android. .

    , , . - , , , , - -. PASS FAIL . , , -.

    , . , . , .

    -, URL- Google Google-. HTML ULR- HTTP GET Google :

    GET /addurl?url=http://www.foo.com&comment=Foo+comment HTTP/1.1

    - : AddUrlFrontend, HTTP, , AddUrlService.

  • 64

    AddUrlFrontend, , -, ,, , Google Bigtable1 Google File System2.

    :

    $ mkdir depot/addurl/

    AddUrlService Protocol Buffers3:

    File: depot/addurl/addurl.proto

    message AddUrlRequest { required string url = 1; // The URL address entered by user. optional string comment = 2; // Comments made by user.}

    message AddUrlReply { // Error code if an error occured. optional int32 error_code = 1; // Error mtssage if an error occured. optional string error_details = 2;}

    service AddUrlService { // Accepts a URL for submission to the index. rpc AddUrl(AddUrlRequest) returns (AddUrlReply) { option deadline = 10.0; }}

    addurl.proto : AddUrlRequest AddUrlReply (RPC, Remote Pro-cedure) AddUrlService.

    AddUrlRequest, , url , comment -.

    AddUrlReply , error_code error_details . , , URL- , , . Google: .

    1 http://labs.google.com/papers/bigtable.html

    2 http://labs.google.com/papers/gfs.html

    3 http://code.google.com/apis/protocolbuffers/docs/overview.html

  • 65

    AddUrlService , AddUrl, AddUrlRequest AddUrlReply. AddUrl - 10 , . AddUrlService , , addurl.proto.

    '= 1' . , . , - uri AddUrlRequest . :

    message AddUrlRequest { required string url = 1; // The URL entered by the user. optional string comment = 2; // Comments made by the user. optional string uri = 3; // The URI entered by the user.}

    , - url uri. , :

    message AddUrlRequest { required string uri = 1; // The URI entered by user. optional string comment = 2; // Comments made by the user.}

    addurl.proto, proto_library, C++, addurl.proto, addurl C++. Java Python.

    File: depot/addurl/Build

    proto_library(name="addurl", srcs=["addurl.proto"])

    , - addurl.proto BUILD. Protocol Buffers, addurl.pb.h addurl.pb.cc - addurl, .

    AddUrlFrontend. AddUrlFrontend addurl_frontend.h. .

  • 66

    File: depot/addurl/addurl_Frontend.h

    #ifndef ADDURL_ADDURL_FRONTEND_H_#define ADDURL_ADDURL_FRONTEND_H_

    // Forward-declaration of dependencies.class AddUrlService;class HTTPRequest;class HTTPReply;

    // Frontend for the AddUrl system.// Accepts HTTP requests from web clients,// and forwards well-formed requests to the backend.class AddUrlFrontend { public: // Constructor which enables injection of an // AddUrlService dependency. explicit AddUrlFrontend(AddUrlService* add_url_service); ~AddUrlFrontend();

    // Method invoked by our HTTP server when a request arrives // for the /addurl resource. void HandleAddUrlFrontendRequest(const HTTPRequest* http_request, HTTPReply* http_reply); private: AddUrlService* add_url_service_;

    // Declare copy constructor and operator= private to prohibit // unintentional copying of instances of this class. AddUrlFrontend(const AddUrlFrontend&); AddUrlFrontend& operator=(const AddUrlFrontend& rhs); };#endif // ADDURL_ADDURL_FRONTEND_H_

    AddUrlFrontend, addurl_frontend.cc, AddUrlFrontend. .

    File: depot/addurl/addurl_Frontend.cc

    #include "addurl/addurl_frontend.h"#include "addurl/addurl.pb.h"#include "path/to/httpqueryparams.h"

    // Functions used by HandleAddUrlFrontendRequest() below, but// whose definitions are omitted for brevity.

    void ExtractHttpQueryParams(const HTTPRequest* http_request, HTTPQueryParams* query_params);

  • 67

    void WriteHttp200Reply(HTTPReply* reply);

    void WriteHttpReplyWithErrorDetails( HTTPReply* http_reply, const AddUrlReply& add_url_reply);

    // AddUrlFrontend constructor that injects the AddUrlService// dependency.

    AddUrlFrontend::AddUrlFrontend(AddUrlService* add_url_service) : add_url_service_(add_url_service) {}

    // AddUrlFrontend destructor - there's nothing to do here.AddUrlFrontend::~AddUrlFrontend() {}// HandleAddUrlFrontendRequest:// Handles requests to /addurl by parsing the request,// dispatching a backend request to an AddUrlService backend,// and transforming the backend reply into an appropriate// HTTP reply.//// Args:// http_request - The raw HTTP request received by the server.// http_reply - The raw HTTP reply to send in response.

    void AddUrlFrontend::HandleAddUrlFrontendRequest( const HTTPRequest* http_request, HTTPReply* http_reply) {

    // Extract the query parameters from the raw HTTP request.

    HTTPQueryParams query_params; ExtractHttpQueryParams(http_request, &query_params);

    // Get the 'url' and 'comment' query components. // Default each to an empty string if they were not present // in http_request.

    string url =query_params.GetQueryComponentDefault("url", "");string comment = query_params.GetQueryComponentDefault("comment", "");

    // Prepare the request to the AddUrlService backend.

    AddUrlRequest add_url_request;AddUrlReply add_url_reply;add_url_request.set_url(url);

  • 68

    if (!comment.empty()) { add_url_request.set_comment(comment);}

    // Issue the request to the AddUrlService backend.

    RPC rpc;add_url_service_>AddUrl( &rpc, &add_url_request, &add_url_reply);

    // Block until the reply is received from the// AddUrlService backend.

    rpc.Wait();

    // Handle errors, if any:

    if (add_url_reply.has_error_code()) { WriteHttpReplyWithErrorDetails(http_reply, add_url_reply);} else {

    // No errors. Send HTTP 200 OK response to client.

    WriteHttp200Reply(http_reply);}}

    HandleAddUrlFrontendRequest -. , . - , , - .

    - addurl, addurl_frontend. C++ AddUrlFrontend.

    File: /depot/addurl/Build

    # From before: proto_library(name="addurl", srcs=["addurl.proto"])

    # New: cc_library(name="addurl_frontend", srcs=["addurl_frontend.cc"], deps=[ "path/to/httpqueryparams",

  • 69

    "other_http_server_stuff", ":addurl", # Link against the addurl library above. ])

    , addurl_frontend.h addurl_frontend.cc, . - AddUrlFrontend. addurl_frontend_test.cc. - AddUrlService AddUrlFrontend . AddUrlFrontend AddUrlFrontend.

    File: depot/addurl/addurl_Frontend_test.cc

    #include "addurl/addurl.pb.h"#include "addurl/addurl_frontend.h"

    // See http://code.google.com/p/googletest/#include "path/to/googletest.h"

    // Defines a fake AddUrlService, which will be injected by// the AddUrlFrontendTest test fixture into AddUrlFrontend// instances under test.

    class FakeAddUrlService : public AddUrlService { public: FakeAddUrlService() : has_request_expectations_(false), error_code_(0) { }

    // Allows tests to set expectations on requests. void set_expected_url(const string& url) { expected_url_ = url; has_request_expectations_ = true; }

    void set_expected_comment(const string& comment) { expected_comment_ = comment; has_request_expectations_ = true; }

    // Allows for injection of errors by tests.

    void set_error_code(int error_code) { error_code_ = error_code; }

  • 70

    void set_error_details(const string& error_details) { error_details_ = error_details; }

    // Overrides of the AddUrlService::AddUrl method generated from// service definition in addurl.proto by the Protocol Buffer// compiler.

    virtual void AddUrl(RPC* rpc, const AddUrlRequest* request, AddUrlReply* reply) {

    // Enforce expectations on request (if present).

    if (has_request_expectations_) { EXPECT_EQ(expected_url_, request>url()); EXPECT_EQ(expected_comment_, request>comment()); }

    // Inject errors specified in the set_* methods above if present.

    if (error_code_ != 0 || !error_details_.empty()) { reply>set_error_code(error_code_); reply>set_error_details(error_details_); } }

    private:

    // Expected request information. // Clients set using set_expected_* methods.

    string expected_url_; string expected_comment_; bool has_request_expectations_;

    // Injected error information. // Clients set using set_* methods above.

    int error_code_; string error_details_;};

    // The test fixture for AddUrlFrontend. It is code shared by the// TEST_F test definitions below. For every test using this// fixture, the fixture will create a FakeAddUrlService, an// AddUrlFrontend, and inject the FakeAddUrlService into that// AddUrlFrontend. Tests will have access to both of these// objects at runtime.

  • 71

    class AddurlFrontendTest : public ::testing::Test {

    // Runs before every test method is executed.

    virtual void SetUp() {

    // Create a FakeAddUrlService for injection.

    fake_add_url_service_.reset(new FakeAddUrlService);

    // Create an AddUrlFrontend and inject our FakeAddUrlService // into it.

    add_url_frontend_.reset( new AddUrlFrontend(fake_add_url_service_.get()));} scoped_ptr fake_add_url_service_; scoped_ptr add_url_frontend_;};

    // Test that AddurlFrontendTest::SetUp works.

    TEST_F(AddurlFrontendTest, FixtureTest) {

    // AddurlFrontendTest::SetUp was invoked by this point.

    }

    // Test that AddUrlFrontend parses URLs correctly from its// query parameters.

    TEST_F(AddurlFrontendTest, ParsesUrlCorrectly) { HTTPRequest http_request; HTTPReply http_reply;

    // Configure the request to go to the /addurl resource and // to contain a 'url' query parameter.

    http_request.set_text( "GET /addurl?url=http://www.foo.com HTTP/1.1\r\n\r\n");

    // Tell the FakeAddUrlService to expect to receive a URL // of 'http://www.foo.com'.

    fake_add_url_service_>set_expected_url("http://www.foo.com");

    // Send the request to AddUrlFrontend, which should dispatch // a request to the FakeAddUrlService.

  • 72

    add_url_frontend_>HandleAddUrlFrontendRequest( &http_request, &http_reply);

    // Validate the response.

    EXPECT_STREQ("200 OK", http_reply.text());}

    // Test that AddUrlFrontend parses comments correctly from its// query parameters.

    TEST_F(AddurlFrontendTest, ParsesCommentCorrectly) { HTTPRequest http_request; HTTPReply http_reply;

    // Configure the request to go to the /addurl resource and // to contain a 'url' query parameter and to also contain // a 'comment' query parameter that contains the // url-encoded query string 'Test comment'.

    http_request.set_text("GET /addurl?url=http://www.foo.com" "&comment=Test+comment HTTP/1.1\r\n\r\n");

    // Tell the FakeAddUrlService to expect to receive a URL // of 'http://www.foo.com' again.

    fake_add_url_service_>set_expected_url("http://www.foo.com");

    // Tell the FakeAddUrlService to also expect to receive a // comment of 'Test comment' this time.

    fake_add_url_service_>set_expected_comment("Test comment");

    , - , . , . - - AddUrlFrontend - FakeAddUrlService. , -.

    , FakeAddUrlService (fake) - (mock). . .

    . , - addurl_frontend_test.

  • 73

    File: depot/addurl/Build

    # From before:proto_library(name="addurl", srcs=["addurl.proto"])

    # Also from before:cc_library(name="addurl_frontend", srcs=["addurl_frontend.cc"], deps=[ "path/to/httpqueryparams", "other_http_server_stuff", ":addurl", # Depends on the proto_library above.])# New:cc_test(name="addurl_frontend_test", size="small", # See section on Test Sizes. srcs=["addurl_frontend_test.cc"], deps=[ ":addurl_frontend", # Depends on library above. "path/to/googletest_main"])

    addurl_frontend_test, . , , - , AddUrlFrontend . FixtureTest . , , , , . - ( , AddUrlService), .

    $ create_cl BUILD \ addurl.proto \ addurl_frontend.h \ addurl_frontend.cc \ addurl_frontend_test.cc$ mail_cl m [email protected]

    , , , - . Google , , , addurl_frontend_test , -

  • 74

    . , addurl_frontend.cc, addurl_frontend_test .

    , . , , , , , . -.

    - , . , . , - , - , . , . .

    , -, , , . Google . , , , .

    , - . , , , , . : , , . , Google . , .

    -. , .

  • 75

    Google - : -, , , , , . 2.1. , , .

    -. : . . Google -.

    , , , , . 2.2 . - , .

    ,

    . 2.1. Google

  • 76

    . 2.2. -

    . 2.3. -

    . 2.4. ,

    , . - , , . .

    , . , . , , , . -.

    , . 2.3. . , . Google - .

    . - . .

    . . .

  • 77

    , -. , . , , - , .

    Google -, . , . , , . 2.4. , , .

    . IT- , .

    , , - Google.

    - .

    - .

    , , .

    - .

    .

    .

    - .

  • 78

    , Google . - , . , . , , , , , .

    Google . (. 2.1). (. 2.2). , . . .

    ( )

    100

    1

    -

    -

    - 1

    5

    15

    1

    2.1.

    ( )

    localhost

    -

    -

    2.2.

  • 79

    . . . 2.5 , .

    ,

    . 2.5.

    :

    . - .

    ( ), .

    .

    .

    - - . .

    :

    , -, . .

    , .

  • 80

    , .

    .

    , .

    , .

    :

    , - . -.

    - .

    .

    , , , null-.

    .

    - .

    .

    .

    , - . . - . Google . , , , -.

    , .

  • 81

    , , . , . . 20- , 100, - . , , - . , , . . - , .

    Google , . 70/20/10: 70% , 20% 10% . - . , (, -), , .

    Google - Harvester. , : - ; ; ; . . Harvester - .

    Google .

    , - .

    . , .

  • 82

    , -. , , . , Google .

    , - . , . , , . . , . :

    - ;

    , ;

    , .

    , - , , . -.

    , . . - . , :

    , ;

    , ;

    .

    , Google, . - Google, , . - , . , , , -, . .

  • 83

    Google . , , , . , - Google. , -. , , , . - , . , .

    Google

    ,

    - . .

    1. .

    2. .

    3. .

    4. 1.

    , - , . , . , . - , .

    Google . Google 20 , 50% . , . , , .

    , -

  • 84

    . . , , , , - .

    , (. 2.6), , , . . Google, .

    , , . , . gmail_server_tests - 2. , - 2 3, . , , . , - .

    .

    . 2.6.

  • 85

    , , . , . , . 2.7, . , , . , . .

    name: //depot/gmail_client_testsname: //depot/gmail_server_tests

    Gmailname: //depot/buzz_server_testsname: //depot/buzz_client_tests

    Buzz

    . 2.7.

    , , , , - , , Gmail Buzz.

    1: ,

    common_collections_util, . 2.8.

    . 2.8. common_collections_util.h

    , . , . , , , , (. 2.9).

  • 86

    . 2.9. ,

    2: ,

    youtube_client (.2.10).

    . 2.10. youtube_client

    , , buzz_client_tests Buzz (. 2.11).

    buzz_client_tests, Buzz

    . 2.11. Buzz

    , , - , . - . .

  • 87

    - . , Google, . .

    - , - . . -, -. , , Google.

    - . , ? , , ? , , ? , (.2.12), ?

    . 2.12. - -

    - , - , . . , . , . , .

  • 88

    - 1

    .

    .

    , .

    .

    -.

    2

    , .

    - .

    50%.

    10%.

    .

    3

    50%.

    .

    4

    - .

    - 30 .

    .

    40%.

    25%.

    .

    5

    .

    .

    60%.

    40%.

  • 89

    , . . , . .

    , . :

    , - -. , , , .

    .

    , , , .

    -.

    , . -

    . , , . , ? , . , .

    - Gmail. , - . , Google. -.

    , -? - ? , ?

    : Google, - .

  • 90

    . , , . . , . , , , , .

    - . : , - -, .

    , . - . . , . , , . , .

    Google , . . - . - .

    - ?: , , ,

    . , . , Google . -, , , .

    : , . . , , . : , , - . . , .

  • 91

    ?: , .

    . . , . , 1 , - : 2, , , Thanks God Its Friday .

    : , , , , . .

    ?: . , ,

    . . , Google : . , . .

    : , Google - . -. - , , , .

    , -?

    : . . . . - - , . , ?

    : , - . ,

    1 (Testing on The Toilet) . Google Testing googletesting.blogspot.com

    2 (fixits) Google: - - . , - . . #include C . , - . , , .

  • 92

    . , , .

    - ? ?

    : , , , . .

    2007, Google 15 , . - -. - (Rubix, Bounty, Mondrian, Red Tape . .). , . - , . , , .

    , . , - . . , : -, . , . , . , , .

    - . . - -, - .

    , . , - . , , . , , , , , .

  • 93

    , 50 , -. .

    , , , . - , .

    , 100 , . , - , -. , , - . . . , .

    -. 2008 . -, , . - .

    -, , - .

    - ? ? -? ?

    : - . . , . , - , . . . 1,5, .

    - // . , : , .

  • 94

    , , - . , . . , - .

    : , - . . , , , -. . , , .

    - ? ?

    : . . . . .

    , - . , - . , , . .

    , , ?

    : . , - . , , . , - , , . , . , , , - , , - , , .

    Google , - , , -. ? ?

    : , , - . ,

  • 95

    , , , , . - , , .

    , . , - . - . - , .

    , .

    : , . , . . -. - , , , . - , .

    . , . , , . , . . . , . , , .

    , , . , Google , , .

  • 96

    , , , . - . . - API, , .

    Google . , . , .

    , -. , , , . Google , , , .

    , ? . . : -. , , , . , .

    , - . , , , - . , . , , .

    , , - , .

    . , acount(void* s), A .

  • 97

    , , : , . , , . . : ? ? ? , . , - .

    , -, . , , .

    . , . API .

    , - .

    : ASCII, UTF-8 - ?

    . CamelCase1 ? ?

    ? , , - int .

    void* . , char*, .

    A? ?

    ? ( , , - .)

    .

    . , int64, Google - .

    1 CamelCase , -, . c - , .

  • 98

    : - A? , , . , .

    : -?

    , :

    :

    MapReduce1 2 ? , . , ? .

    Google - , , , null. - . , .

    , :

    , ? , , B.

    ? : A, A -? . .

    1 MapReduce , - , . . http://en.wikipedia.org/wiki/MapReduce.

    2 (sharding) . : (- ). . http://en.wikipedia.org/wiki/Shard_(database_architecture)

  • 99

    :

    , -, , , . - .

    , , . . , null, - .

    , - , .

    try-catch? , , . , ?

    , , . - .

    . , .

    -, . - .

    , , . . , . , , , . Google , .

    - - -. . , , , Java Python. ,

  • 100

    , : , .

    int64 Acount(const char* s) { if (!s) return 0; int64 count = 0; while (*s++) { if (*s == 'a') count++; } return count;}

    , , - .

    . :

    . , - .

    .

    , , null-, , .

    , - . , , .

    , .

    . -, .

    A null.

    . :

    int64 -, -, - A .

    , . , MapReduce, , .

  • 101

    .

    . - .

    , . - .

    , . , -, . , .

    , . , , . . , . , , . , , , .

    , , - , , , - - .

    . :

    . , , .

    . , .

    :

    , , .

    . , while(true), , .

    , , .

  • 102

    (, , Google) , 64- . , - . , - , , - . - Google.

    ? , - . : , -? -, , . Google. , .

    , , , . -? ? ? , ? , ?

    , ? ? , , , , . , ?

    : , - , , . - .

    , , , -, . , , , - ,

  • 103

    . , , .

    , - . , , ? . , , ? , , - .

    -, . .

    Google, . -, , Google. - , . , , - Google .

    Google ?: Google 2004 .

    , IBM Microsoft, Google - , . , , .

    Buganizer1, Google. Buganizer BugDB?

    : BugsDB , . , . , . - : , , . Buganizer, ,

    1 Buganizer , Issue Tracker, Chromium http://code.google.com/chromium/issues/list

  • 104

    . , , .

    , Buganizer. , , , . -? , , ?

    : Buganizer, AdWords Google, , - . , -, , . , . Matrix, .

    Matrix ?: , . ,

    . , , , , . Matrix - - Google.

    : Buganizer Matrix?: Buganizer -

    , Matrix . , , . , , - , .

    , - ?

    : : , , - . . . .

    , ?

    : , , , .

  • 105

    . , , .

    , -?

    : , - . , . , - - - . , , : , , .. , , . , .

    WebDriver WebDriver Google. WebDriver - -, Google, . WebDriver Google Test Automation Conference.

    , , - WebDriver.

    , , Selenium WebDriver. ?

    : Selenium, ThoughtWorks1. - IE, 90% . , Firefox, Firefox IE. Selenium , .

    WebDriver Selenium, , .

    1 ThoughtWorks,Inc IT-, 1983 . 11- . . . .

  • 106

    -, , . Selenium JavaScript- , WebDriver API. . Selenium , Chrome, . - JS . WebDriver , , . Google, .

    . ?: Selenium ,

    , WebDriver. - Selenium WebDriver.

    Google ?: Google,

    ThoughtWorks. WebDriver. - , . - , . , , - GTAC. Google. .

    , . - , , , - . ?

    : . Google. , .

    . - . WebDriver , Google?

    : , . , WebDriver . . - , . WebDriver , . WebDriver .

  • 107

    , , WebDriver Google. ? ? ?

    : Wave , . . Wave Selenium , . Wave . , WebDriver. . .

    , 20 . - . , .

    , .: , , . -

    Google, WebDriver -. WebDriver , - .

    . - WebDriver Wave?

    : DDD (Defect-Driven Development - ). WebDriver , , . - - . . , , .

    WebDriver?: , . -

    Google --. , . , . , .

    , Wave . WebDriver Selenium? .

    : , . Selenium , WebDriver Wave . ,

  • , , WebDriver, . , , .

    WebDriver. , , WebDriver. , Wave Picasa Web Albums, WebDriver Ads. - Google . Chrome Py-Auto, Search Puppet ( Web Puppeteer), Ads WebDriver . .

    WebDriver? ?: .

    . . Internet Explorer, Firefox, Chrome, Safari, Opera , . WebKit . , IE. , 2008 . WebDriver, - . , , WebDriver API.

    , . ?

    : . , , , W3C1 , .

    ? ?

    : , . , - API , . , -, , . WebDriver - , - , .

    1 World Wide Web Consortium ( W3C) , - . . .

  • 109

    3

    Google , , . -: . , Google, . - 1.

    , , .

    Google , , -. , , ,

    1 . Google , , . --, .

  • 110

    , . -, . Google, , , , , . !

    , . Google, , - , , - , - .

    . , , -, . , . - : , . , , . , , -, . . - , .

    : , - . , . . , , , .

    Google , . , . , Google.

  • 111

    . . ( ) . (, -), , .

    , - , , . , . , , .

    , , - .

    , . ( ) , - , . , .

    , , , . - . :

    ?

    , , -, , , ?

    ? ?

    ( ) ?

    ?

  • 112

    , , - , . - , , . , . , , , , , , . . Google , . , , , . : , , , . , , .

    , . -, (, ), . , . , ( !), , , . : .

    , - . , . - - , .

    . , . Google -, . , . Google , . , . , , - Google .

  • 113

    , - , - Google .

    : Google , . , - , , , , . , . , - , -. , Google , , - ( ). , , .

    Google . , , , , . - -. , . . - . -, .

    , :

    ;

    , , ;

    ;

    ;

    -;

    -;

    -1;

    ;

    .

    1 (. crowd sourcing) . . .

  • 114

    - .

    : . , , , . .

    , : -, -, -. - . , - , -? , . , , - .

    . , , , -. - , , . , , - . .

    - - 1. - - ( - Chrome OS). , - . , . - - , , , , , , .

    - , . - , - : - , , ,

    1 , - , , , . , !

  • 115

    , .

    - , - , , .

    - , .

    . - ? , ? -? , - - , ? - - , ? , .

    - . , , - , , , . - , .

    , , Google .

    , -:

    ;

    , ;

    ;

    , .

    - :

    - ;

    , ;

    -.

  • 116

    Google , . , - -, . -, - Google Docs . . Google Sites -. , Microsoft Word, . - - , -, , , .

    , - . - , , . - , .

    Google , - . , , , - Google, .

    - (Attribute Component Capability) , Google. - . - , . Google Test Analytics.

    Attribute Component Capability:

    , . , . . , , , !

    . - , , , . , .

    . - . - , . . , .

  • 117

    - , . - .

    . , , . .

    . - . - , .

    -. , , - . , .

    , .

    : - , - , , , . , , . : , , .

    - , , :

    1. , ;

    2. , ;

    3. , , .

    , , , .

    A Attribute , ACC-, , . ? - ? ? ,

  • 118

    : , , , . . .

    ACC- (Attribute, Com-ponent, Capability), : , , . , , .

    , . -, . , . Chrome , , : , .

    , - . , , , Chrome , . .

    . -, . -, .

    . - , , -, , . , - . , -. ? , .

    .

    . .

    . , , .

    . , - . - , , .

  • 119

    . . Chrome OS , , , , .

    . 3.1. Chrome OS

    , , .

    , , . , , - .

    , , Google Sites - . - , . : , - - , . , , .

    , . , , -. ,

  • 120

    . , , , - .

    . 3.2. Google Sites

    . 3.3. Google Sites, GTA

  • 121

    , , .

    Google -: - , Google Test Analytics (GTA), . , , , - .

    C Component ? ! . , . , , - -, . , , , . , , !

    , , , , .

    , - . , . - . , . , .

    , . , . , . . ? ! ? , . - , , .

    , - . ,

  • 122

    . - , , - , . .

    , . ACC- , , . , , . , .

    . 3.4. Google Sites, GTA

    C Capability ACC- , - , , . , , . , - : - , .

  • 123

    , - . , - , .

    , , Chrome. -, Flash-, . Chrome. -: -. , - , .

    . - - , , . - Chrome : Chrome , Flash-. -, , , , - , . -, , , .

    , , , , . - . , , .

    -:

    / . , .

    . , ( ).

    HTTPS. , .

    , . , .

    . UPS, .

  • 124

    . , .

    . , - .

    , . - , . .

    , . , , , , ACC-. , .

    , . , , , . - , .

    , Google, (, Chrome OS ), . , - , . , , : ?

    , -. - . -, , -. , -.

    , -.

    Google. , - , . , -,

  • 125

    , , , , . , -. , , . , - , - .

    - - . , - - . - , , .

    Google Sites: . 3.5, - , . . , - , . Chrome . , .

    . 3.5. GTA

    , .

  • 126

    . - . : , .

    , . , . , :

    ;

    ;

    .

    , , . - , .

    . , :

    - .

    , , -. , HTTPS. , , - HTTPS. , ! , - , , , . , HTTPS, . - , - 1.

    1 : , , , .

  • 127

    . - . , - .

    , . Google , -, --. ? -, , , , , , , , , .

    -, , , , - -. , , .

    -. , , -.

    -. , - , -, , - . , How to Break Software, Exploratory Software Testing - , -, .

    . , . .

    ACC-, , - . , , . Google , .

  • 128

    : , Google+

    ACC- , ! ACC- Google+.

    Google+ ( - Google).

    : .

    : .

    : , , .

    : , .

    : Google, - .

    : .

    Google+ ( ).

    : .

    : , .

    : , , , . .

    : (, . .).

    : .

    , +1: , .

    : .

    : , , - . .

    : , -.

  • 129

    Google+.:

    : .

    : - .

    : Google+ -.

    : , .

    : - .

    : .

    : - .

    :

    : , .

    : .

    : .

    : .

    : -, .

    : .

    :

    : - .

    : , .

    : .

    :

    : .

  • 130

    : -.

    : , .

    : .

    : .

    :

    : .

    : -.

    :

    : .

    : .

    : -.

    : .

    : - .

    : - .

    : , .

    : .

    : YouTube .

    : .

    : -, .

    : .

    : -.

  • 131

    :

    : .

    : .

    :

    : .

    : .

    : .

    :

    : .

    : .

    : .

    : .

    : .

    . 3.6 ACC- .

    . 3.6. ACC Google+

  • 132

    . 3.7 .

    . 3.7. ACC Google+

    . , , . , , , . , . , -, , .

    , ? , ? , . . : , .

    , . , , , , - , 59%. , , :

  • 133

    . . . .

    , -, . :

    ?

    ?

    ?

    ?

    ?

    , ?

    ?

    ?

    ?

    , , , . Google : . . , . , . , , . GTA (. 3.8).

    GTA :

    : , -, , .

    : Google Chrome1. - ,

    1 http://www.google.com/chrome

  • 134

    . HTML , .

    : , . - .

    : Chrome. , , . , , - , .

    : , -, , , -.

    : Chrome Sync. Chrome , , , . , . , , , . , - , .

    . 3.8. GTA Google+

  • 135

    : , , .

    : -. HTML, CSS JavaScript . , , . , - . : , . , , ?

    , . , . .

    , ( Chrome ).

    :

    : , .

    : Chrome Labs. - , chrome://labs . -, Chrome, . . , , .

    : , . .

    : . , URL- , . .

    : .

    : Chrome. , Chrome , .

    : .

  • 136

    : Chrome. -, .

    . -, . ? , . Google? , . , , , .

    , , / Google Sites. - (. 3.9).

    . 3.9. / ( Google+)

    , . . GTA, .

    , -, . , . , -

  • 137

    . , , , .

    . - , . , , ! , , , .

    . , , . , .

    . , , - .

    -. - , .

    , . , . , , , . - , . , . , , . , -. .

    . -, , . , - , . . - , , . , , , . .

    , .

  • 138

    . , , ? , , , , . ? . , - . .

    : , . , , :

    - , , .

    -, , .

    , .

    .

    , . , - .

    , - . , , , , . , - . . : . , .

    - . , , - . Google Labs, , , . Gmail, -

  • 139

    . , -.

    , , . , - , -. ACC-, .

    -

    , , . , , ? , , . - Google, , -. , , : , ( ). , , - , .

    . -, , - , , ( ), , , . : , , ?

    - , , , . , . : ?

    - , - . . : -.

  • 140

    , : - . - , .

    , . : . , , . -, .

    . : , - . , , . , , , , .

    , , , - (Google Docs, App Engine, Talk Video . .), .

    , ACC-. , . , . , . - - . , , .

    , - . . , - .

    , . , . 80% . ? , , ? , - (, , ) . , , .

    . -!

  • 141

    Google Test Analytics ( , , , ). , . - , . , , - . , , - . , , , . .

    , . , , -. , .

    GTA , . - . - , . : , - .

    . , . , .

    1. /, - , , . Google . , -, .

    2. , - . , GTA? ? ? . , , .

  • 142

    3. , / , , . .

    4. - . , . , . , : !, - . , .

    5. , - . , , . , - ? ?. Google , , .

    6. , , , . ! .

    , . -, , , .

    , , - . - , , , . ,

  • 143

    , . , , .

    , , - . -, - !

    -. - - . . Google , . - -: Google Documents , .

    , , , . .

    . , - -. -. - , 1. -, . , : FedEx- - , , . , , , .

    . , , - !

    1 Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design (Addison Wesley, 2009).

  • 144

    , . . ?

    , , - . , , , , -. , Chromium, . , , . - , .

    ( -) . , , . , , ? .

    , , , . , : -1000 , : Chrome, : 1 - = 1000 20 = 50 . .

    , , , . - , , . Chrome, , , ( Chrome). . , . , , .

    - Google: , , . - , .

  • 145

    , , , - (, uTest). 1.

    , ACC- , , . , , . , , -, , -, , ,- , , .

    , , - .

    - Google -, ( ) . - , : . , , - -. , .

    - . , , -. , , . , , , . - , . , , , .

    1 Chrome : http://blog.chromium.org/2010/01/encouraging-more-chromium-security.html

  • 146

    , , - . ACC- , , , , Google Test Analytics. , - . . , .

    , , . - . Google Sites - , - . .

    Google -, . - -, . . -, . Test Scribe.

    Test Scribe - . - - . , . - , - . 2010 , , . Google Test Case Manager (GTCM).

    . 3.10. GTCM

    GTCM , , - , , . GTCM Google. GTCM (.3.103.14). . 3.11 -. - , GTCM

  • 147

    , , 1 . - GTCM. GTCM -.

    . 3.11. GTCM

    . 3.12. GTCM

    1 -. http://cukes.info

  • 148

    . 3.13. - Chrome GTCM

    . 3.14. - About Chrome

    , GTCM, , - . -

  • 149

    . 3.15 3.16. . , Google , , . , GTCM , , -. - TCM , . , , (, Android).

    . 3.15. GTCM

    , , - (. 3.16).

    . 3.16. GTCM

    , GTCM (. 3.17). , . Google -

  • 150

    . , -, . , .

    . 3.17. , GTCM,

    GTCM - API. TestScribe API, SOAP, , . , . , GTCM RESTful JSON API.

    GTCM -. - , . GTCM - . Google App Engine , . GTCM - , Google App Engine, . Google Testing Blog, .

    , -. , - , , . ,

  • 151

    , Google, - . , , . . .

    , . Google. - , - . , , , Google. : - . -, - , , . , Google Maps, . API .

    , , -. Google BugsDB: , - . BugDB 2005 , , 1 , Buganizer.

    Buganizer n- - , BugDB ( ). , - . , . , , . , - . .

    Buganizer , Google, 18 2001 15:33 . Test Bug,

    1 .

  • 152

    First Bug!. , , - .

    2009 . . , , , -. 2009 .

    Google. -, . . - , , .

    . 3.18. Buganizer

    . 3.18 , P21, P1 P0. - -, , , , . , , , -

    1 , - PX ( P priority, X ). P0 , P1 . .

  • 153

    . P3 P4 , .

    . 3.19 -. P0? : P0 , -, . : , .

    . 3.19. Buganizer

    (. 3.20) . , . , . , , . , - , , .

    . 3.21 , . , - . , . , , .

  • 154

    . 3.20.

    Google ( , Chrome Chrome OS), . - , , Bugzilla WebKit Issue Tracker chromium.org. Google Google, , . .

    Issue Tracker Chrome Chrome OS. : , . - , , - . , . . 3.22 3.23 , Chrome About.

    , Buganizer - Google. , , - -. Buganizer , Google.

  • 155

    . 3.21. .

    , !

    . 3.22. Issue Tracker

  • 156

    . 3.23. Issue Tracker

    , , . . - , .

    (Assigned to, Assignee)

    [ ] LDAP- , - . , - . -.

    (CC)

    [ ] ( ) LDAP- , . LDAP @google, . - . , .

  • 157

    (Attachments)

    [ ] , ( ). , , 100 .

    (Blocking)

    [ ] ID , . . .

    (Depends On)

    [ ] ID , . . - .

    (Changed)

    [ ] .

    (Changelists)

    [ ] , - . , .

    (Component)

    [] , -. , .

    - .

    (Created)

    [ ] .

    (Found In)

    [ ] ; - , (, 1.1).

    (Last modified)

    [ ] .

  • 158

    (Notes)

    [ ] . - , . , , -, , . , ; .

    (Priority)

    [] , P0 . , . , Google , , . . . .

    (Reported by, Reporter)

    [ ] Google, - . , - , .

    (Resolution)

    [ ] , . (Not feasible), - (Works as intended), (Not repeatable), - (Obsolete), (Duplicate) (Fixed).

    (Severity)

    [] , - . S0 . , , - . Google? , . :

    S0 =

    S1 =

  • 159

    S2 =

    S3 =

    S4 =

    (Status)

    [] . . 3.24, , . .

    (New): , .

    (Assigned): .

    (Accepted): .

    (Fix later): , - .

    (Will not fix): , - .

    (Fixed): , -.

    (Verifier assigned): -.

    (Verified): .

    (Summary)

    [] . ; - , , .

    (Targeted To)

    [ ] ; - , (, 1.2).

    (Type)

    [] :

    (Bug): - , .

    (Feature request): , .

  • 160

    (Customer