.NET软件测试自动化之道

所需:0 积分 2020-01-30 上传 大小:1KB
资源说明


 

PART 1

■ ■ ■

Windows Application Testing

CHAPTER 1 API Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1 Storing Test Case Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Reading Test Case Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.3 Parsing a Test Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4 Converting Data to an Appropriate Data Type . . . . . . . . . . . . . . . . . . . . . 9

1.5 Determining a Test Case Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.6 Logging Test Case Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.7 Time-Stamping Test Case Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.8 Calculating Summary Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.9 Determining a Test Run Total Elapsed Time . . . . . . . . . . . . . . . . . . . . . 19

1.10 Dealing with null Input/null Expected Results . . . . . . . . . . . . . . . . . . 20

1.11 Dealing with Methods that Throw Exceptions . . . . . . . . . . . . . . . . . . 22

1.12 Dealing with Empty String Input Arguments . . . . . . . . . . . . . . . . . . . . 24

1.13 Programmatically Sending E-mail Alerts on Test Case Failures . . . 26

1.14 Launching a Test Harness Automatically . . . . . . . . . . . . . . . . . . . . . . . 28

1.15 Example Program: ApiTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

CHAPTER 2 Reflection-Based UI Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.1 Launching an Application Under Test . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.2 Manipulating Form Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2.3 Accessing Form Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.4 Manipulating Control Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2.5 Accessing Control Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

2.6 Invoking Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2.7 Example Program: ReflectionUITest . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

CHAPTER 3 Windows-Based UI Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

3.1 Launching the AUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.2 Obtaining a Handle to the Main Window of the AUT . . . . . . . . . . . . . . 68

3.3 Obtaining a Handle to a Named Control . . . . . . . . . . . . . . . . . . . . . . . . 73

3.4 Obtaining a Handle to a Non-Named Control . . . . . . . . . . . . . . . . . . . . 75

3.5 Sending Characters to a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.6 Clicking on a Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.7 Dealing with Message Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3.8 Dealing with Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.9 Checking Application State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

3.10 Example Program: WindowsUITest . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

CHAPTER 4 Test Harness Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

4.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

4.1 Creating a Text File Data, Streaming Model Test Harness . . . . . . . . 100

4.2 Creating a Text File Data, Buffered Model Test Harness . . . . . . . . . . 104

4.3 Creating an XML File Data, Streaming Model Test Harness . . . . . . . 108

4.4 Creating an XML File Data, Buffered Model Test Harness . . . . . . . . 113

4.5 Creating a SQL Database for Lightweight Test

Automation Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.6 Creating a SQL Data, Streaming Model Test Harness . . . . . . . . . . . . 119

4.7 Creating a SQL Data, Buffered Model Test Harness . . . . . . . . . . . . . 123

4.8 Discovering Information About the SUT . . . . . . . . . . . . . . . . . . . . . . . . 126

4.9 Example Program: PokerLibTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

PART 2

■ ■ ■

Web Application Testing

CHAPTER 5 Request-Response Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

5.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

5.1 Sending a Simple HTTP GET Request and Retrieving

the Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

5.2 Sending an HTTP Request with Authentication and Retrieving

the Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

5.3 Sending a Complex HTTP GET Request and Retrieving

the Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

5.4 Retrieving an HTTP Response Line-by-Line . . . . . . . . . . . . . . . . . . . . 141

5.5 Sending a Simple HTTP POST Request to a Classic ASP

Web Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

5.6 Sending an HTTP POST Request to an ASP.NET Web Application . . . 145

5.7 Dealing with Special Input Characters . . . . . . . . . . . . . . . . . . . . . . . . . 150

5.8 Programmatically Determining a ViewState Value and an

EventValidation Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

5.9 Dealing with CheckBox and RadioButtonList Controls . . . . . . . . . . . 156

5.10 Dealing with DropDownList Controls . . . . . . . . . . . . . . . . . . . . . . . . . 157

5.11 Determining a Request-Response Test Result . . . . . . . . . . . . . . . . . 159

5.12 Example Program: RequestResponseTest . . . . . . . . . . . . . . . . . . . . 162

CHAPTER 6 Script-Based Web UI Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

6.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

6.1 Creating a Script-Based UI Test Harness Structure . . . . . . . . . . . . . . 170

6.2 Determining Web Application State . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

6.3 Logging Comments to the Test Harness UI . . . . . . . . . . . . . . . . . . . . . 173

6.4 Verifying the Value of an HTML Element on the Web AUT . . . . . . . . . 174

6.5 Manipulating the Value of an HTML Element on the Web AUT . . . . . 176

6.6 Saving Test Scenario Results to a Text File on the Client . . . . . . . . . 177

6.7 Saving Test Scenario Results to a Database Table on the Server . . 179

6.8 Example Program: ScriptBasedUITest . . . . . . . . . . . . . . . . . . . . . . . . . 181

CHAPTER 7 Low-Level Web UI Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

7.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

7.1 Launching and Attaching to IE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

7.2 Determining When the Web AUT Is Fully Loaded into the Browser . 190

7.3 Manipulating and Examining the IE Shell . . . . . . . . . . . . . . . . . . . . . . 192

7.4 Manipulating the Value of an HTML Element on the Web AUT . . . . . 194

7.5 Verifying the Value of an HTML Element on the Web AUT . . . . . . . . . 195

7.6 Creating an Excel Workbook to Save Test Scenario Results . . . . . . 198

7.7 Saving Test Scenario Results to an Excel Workbook . . . . . . . . . . . . . 200

7.8 Reading Test Results Stored in an Excel Workbook . . . . . . . . . . . . . . 201

7.9 Example Program: LowLevelUITest . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

CHAPTER 8 Web Services Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

8.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

8.1 Testing a Web Method Using the Proxy Mechanism . . . . . . . . . . . . . 212

8.2 Testing a Web Method Using Sockets . . . . . . . . . . . . . . . . . . . . . . . . . 214

8.3 Testing a Web Method Using HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

8.4 Testing a Web Method Using TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

8.5 Using an In-Memory Test Case Data Store . . . . . . . . . . . . . . . . . . . . . 226

8.6 Working with an In-Memory Test Results Data Store . . . . . . . . . . . . 229

8.7 Example Program: WebServiceTest . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

PART 3

■ ■ ■

Data Testing

CHAPTER 9 SQL Stored Procedure Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

9.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

9.1 Creating Test Case and Test Result Storage . . . . . . . . . . . . . . . . . . . . 239

9.2 Executing a T-SQL Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

9.3 Importing Test Case Data Using the BCP Utility Program . . . . . . . . . 243

9.4 Creating a T-SQL Test Harness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

9.5 Writing Test Results Directly to a Text File from a T-SQL

Test Harness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

9.6 Determining a Pass/Fail Result When the Stored Procedure

Under Test Returns a Rowset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

9.7 Determining a Pass/Fail Result When the Stored Procedure

Under Test Returns an out Parameter . . . . . . . . . . . . . . . . . . . . . . . . . 254

9.8 Determining a Pass/Fail Result When the Stored Procedure

Under Test Does Not Return a Value . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

9.9 Example Program: SQLspTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

x CONTENTS

6633FM.qxd 4/3/06 1:54 PM Page x

7e4af1220c26e223bcee6d3ae13e0471CHAPTER 10 Combinations and Permutations . . . . . . . . . . . . . . . . . . . . . . . . . 265

10.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

10.1 Creating a Mathematical Combination Object . . . . . . . . . . . . . . . . . 267

10.2 Calculating the Number of Ways to Select k Items from n Items . . . 269

10.3 Calculating the Successor to a Mathematical Combination

Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

10.4 Generating All Mathematical Combination Elements for a

Given n and k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

10.5 Determining the mth Lexicographical Element of a

Mathematical Combination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

10.6 Applying a Mathematical Combination to a String Array . . . . . . . . 278

10.7 Creating a Mathematical Permutation Object . . . . . . . . . . . . . . . . . 280

10.8 Calculating the Number of Permutations of Order n . . . . . . . . . . . . 282

10.9 Calculating the Successor to a Mathematical Permutation

Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

10.10 Generating All Mathematical Permutation Elements for a

Given n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

10.11 Determining the kth Lexicographical Element of a

Mathematical Permutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

10.12 Applying a Mathematical Permutation to a String Array . . . . . . . . 291

10.13 Example Program: ComboPerm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

CHAPTER 11 ADO.NET Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

11.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

11.1 Determining a Pass/Fail Result When the Expected Value

Is a DataSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

11.2 Testing a Stored Procedure That Returns

a Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

11.3 Testing a Stored Procedure That Returns a Rowset . . . . . . . . . . . . 309

11.4 Testing a Stored Procedure That Returns a Value into an out

Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

11.5 Testing a Stored Procedure That Does Not Return a Value . . . . . . 314

11.6 Testing Systems That Access Data Without Using a Stored

Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

11.7 Comparing Two DataSet Objects for Equality . . . . . . . . . . . . . . . . . . 321

11.8 Reading Test Case Data from a Text File into a SQL Table . . . . . . . 324

11.9 Reading Test Case Data from a SQL Table into a Text File . . . . . . . 327

11.10 Example Program: ADOdotNETtest . . . . . . . . . . . . . . . . . . . . . . . . . 329

CHAPTER 12 XML Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

12.0 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

12.1 Parsing XML Using XmlTextReader . . . . . . . . . . . . . . . . . . . . . . . . . . 337

12.2 Parsing XML Using XmlDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

12.3 Parsing XML with XPathDocument . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

12.4 Parsing XML with XmlSerializer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

12.5 Parsing XML with a DataSet Object . . . . . . . . . . . . . . . . . . . . . . . . . . 347

12.6 Validating XML with XSD Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

12.7 Modifying XML with XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

12.8 Writing XML Using XmlTextWriter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355

12.9 Comparing Two XML Files for Exact Equality . . . . . . . . . . . . . . . . . . 356

12.10 Comparing Two XML Files for Exact Equality, Except for

Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358

12.11 Comparing Two XML Files for Canonical Equivalence . . . . . . . . . 359

12.12 Example Program: XmlTest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365

 


上传须知
  • 1.如涉及侵权内容,您的资源将被移除
  • 2.请勿上传小说、mp3、图片等与技术无关的内容.一旦发现将被删除
  • 3.请勿在未经授权的情况下上传任何涉及著作权侵权的资源,除非该资源完全由您个人创作
  • 4.点击上传资源即表示您确认该资源不违反资源分享的使用条款,并且您拥有该资源的所有版权或者上传资源的授权
  • 5.您上传的资源如果因版权、使用、内容完整度 等原因被举报并通过官方审核,将扣除通过该资源获得的全部积分
标签