Chọn một khung công tác tự động hóa thử nghiệm

Một khung công tác tự động hóa thử nghiệm là một tập hợp các giả định, các khái niệm và các thực hành cung cấp sự hỗ trợ để thử nghiệm phần mềm tự động. Bài viết này mô tả và biểu thị năm khung công tác cơ bản.

Michael Kelly, Nhà tư vấn, Liberty Mutual

Michael Kelly hiện là một cố vấn độc lập và cung cấp đào tạo theo đặt hàng về các công cụ kiểm thử IBM Rational. Ông tư vấn, viết, và thuyết trình về các chủ đề về kiểm thử phần mềm. Ông hiện đang làm Giám đốc Chương trình cho Hiệp hội Bảo đảm Chất lượng Indianapolis và là một Giám đốc của Hiệp hội Kiểm thử Phần mềm



11 12 2009

Việc dựa vào nỗ lực thử nghiệm tự động chỉ sử dụng một công cụ bắt giữ như IBM Rational® Robot (Người máy Rational của IBM) để ghi và phát lại các trường hợp thử nghiệm còn có nhược điểm. Chạy các bài thử nghiệm phức tạp và mạnh mẽ rất tốn thời gian và tốn kém khi chỉ sử dụng một công cụ bắt giữ. Vì các bài thử nghiệm này được tạo ra với chức năng đặc biệt nên chức năng của chúng có thể khó theo dõi và tái sản xuất, và chúng có thể tốn kém khi bảo trì.

Một sự lựa chọn tốt hơn cho một nhóm thử nghiệm tự động mới bắt đầu có thể là sử dụng một khung công tác tự động thử nghiệm, được định nghĩa là một tập hợp các giả định, các khái niệm và các thực hành để tạo nên một nền tảng công việc hoặc hỗ trợ cho việc thử nghiệm tự động. Trong bài viết này tôi sẽ cố gắng đưa ra một gợi mở trên một số ít trong các khung công tác tự động hóa thử nghiệm mà tôi đã quen thuộc -- cụ thể, tính mô đun của kịch bản lệnh thử nghiệm, kiến trúc thư viện thử nghiệm, thử nghiệm dựa trên từ khóa/ dựa trên bảng (keyword-driven/table-driven), thử nghiệm dựa trên dữ liệu và tự động hóa thử nghiệm lai. Tôi sẽ không đánh giá khung công tác nào là tốt hơn hoặc xấu hơn, mà sẽ chỉ đưa ra một sự mô tả và một thể hiện của từng khung công tác và, khi thích hợp, đưa ra một số lời khuyên về cách triển khai thực hiện nó trong bộ công cụ Rational của IBM.

Khung công tác mô đun hóa kịch bản lệnh thử nghiệm (Test Script Modularity)

Khung công tác mô đun kịch bản lệnh thử nghiệm đòi hỏi sự sáng tạo về các kịch bản lệnh nhỏ, độc lập biểu diễn các mô đun, các phần và các chức năng của ứng dụng đang thử nghiệm (application-under-test). Sau đó, các kịch bản lệnh nhỏ được sử dụng theo một kiểu có phân cấp để xây dựng các bài thử nghiệm lớn hơn, thực hiện một trường hợp thử nghiệm cụ thể.

Với tất cả các khung công tác mà tôi sẽ xem xét lại, đây sẽ là một điều đơn giản nhất để nắm bắt và làm chủ. Đó là một chiến lược lập trình nổi tiếng để xây dựng một tầng trừu tượng ở phía trước của một thành phần để giấu thành phần đó khỏi phần còn lại của ứng dụng. Việc này bảo vệ ứng dụng khỏi các sửa đổi trong thành phần đó và cung cấp mô đun trong việc thiết kế ứng dụng. Các khung công tác mô đun kịch bản lệnh thử nghiệm này áp dụng nguyên lý trừu tượng hay cô đọng này nhằm nâng cao khả năng bảo trì và khả năng mở rộng của các bộ thử nghiệm tự động.

Để biểu thị việc sử dụng khung công tác này, tôi sẽ tự động hoá một trường hợp thử nghiệm đơn giản cho chương trình Calculator (Máy tính) của Windows (xem Hình 1) để kiểm tra các chức năng cơ bản (cộng, trừ, chia và nhân).

Hình 1. Máy tính Windows
Máy tính

Các kịch bản lệnh riêng biệt ở mức dưới cùng của hệ thống phân cấp kịch bản lệnh kiểm tra các phép cộng, trừ, nhân và chia. Theo ví dụ, kịch bản lệnh đầu tiên tiếp theo kiểm tra phép cộng và kịch bản lệnh thứ hai kiểm tra phép trừ.

Sub Main

      Window Set Context, "Caption=Calculator", ""
      
      '5
      PushButton Click, "ObjectIndex=10"
      
      '+
      PushButton Click, "ObjectIndex=20"
      
      '6
      PushButton Click, "ObjectIndex=14"
      
      '=
      PushButton Click, "ObjectIndex=21"
      
      '11
      Result = LabelUP (CompareProperties, "Text=11.", "UP=Object Properties")
      
End Sub
Sub Main

      Window Set Context, "Caption=Calculator", ""
      
      '20
      PushButton Click, "ObjectIndex=11"
      PushButton Click, "ObjectIndex=8"
      
      '-
      PushButton Click, "ObjectIndex=19"
      
      '10
      PushButton Click, "ObjectIndex=7"
      PushButton Click, "ObjectIndex=8"
      
      '=
      PushButton Click, "ObjectIndex=21"
      
      '10
      Result = LabelUP (CompareProperties, "Text=10.", "UP=Object Properties")
      
End Sub

Hai kịch bản lệnh ở mức kế tiếp của hệ thống phân cấp này sẽ được sử dụng để biểu diễn khung nhìn Standard (chuẩn) và khung nhìn Scientific (Khoa học) có sẵn từ trình đơn View (Khung nhìn). Khi kịch bản tiếp sau với khung nhìn Standard minh họa, các kịch bản lệnh này sẽ chứa các cuộc gọi tới các kịch bản lệnh mà chúng tôi đã xây dựng trước đó.

'Test Script Modularity Framework
'Script for Standard View

Sub Main

      'Test Add Functionality
      CallScript "Test Script Mod Framework - Add"
      
      'Test Subtract Functionality
      CallScript "Test Script Mod Framework - Substract"
      
      'Test Divide Functionality
      CallScript "Test Script Mod Framework - Divide"
      
      'Test Multiply Functionality
      CallScript "Test Script Mod Framework - Multiply"
      
End Sub

Và cuối cùng, kịch bản trên cùng trong hệ thống phân cấp sẽ là trường hợp thử nghiệm để kiểm tra các khung nhìn khác nhau của ứng dụng.

'Test Script Modularity Framework
'Top level script - represents test case

Sub Main

      'Test the Standard View
      CallScript "Test Script Mod Framework - Standard"
      
      'Test the Scientific View
      CallScript "Test Script Mod Framework - Scientific"
      
End Sub

Từ ví dụ rất đơn giản này, bạn có thể thấy cách khung công tác này cung cấp mức độ cao về mô đun hóa và bổ sung khả năng bảo trì tổng thể của bộ thử nghiệm. Nếu một phím điều khiển cần hoạt động trên Máy tính, tất cả những thứ mà bạn cần thay đổi là kịch bản lệnh phía dưới cùng để gọi phím đó, không phải tất cả các trường hợp thử nghiệm đều kiểm tra phím đó.


Khung công tác Kiến trúc thư viện thử nghiệm

Khung công tác Kiến trúc thư viện thử nghiệm (test library architecture framework) rất giống với khung công tác mô đun kịch bản lệnh thử nghiệm và cung cấp các lợi thế như nhau, nhưng nó chia ứng dụng đang thử nghiệm thành các thủ tục và các chức năng thay vì các kịch bản lệnh. Khung công tác này đòi hỏi sự sáng tạo của các tệp thư viện (các thư viện SQABasic, các API, các DLL v.v) để biểu diễn các mô đun, các phần và các chức năng của ứng dụng đang thử nghiệm. Sau đó kịch bản lệnh của trường hợp thử nghiệm gọi trực tiếp các tệp thư viện này.

Để biểu thị việc sử dụng khung công tác này, tôi sẽ tự động hóa trường hợp thử nghiệm giống như trên nhưng sử dụng một thư viện SQABasic. Thư viện này có chứa một chức năng để thực hiện các phép toán. Sau đây là các tệp tiêu đề (.sbh) và tệp nguồn thư viện (.sbl).

'Header File
'Test Library Architecture Framework
"Functions Library

Declare Sub StandardViewFunction BasicLib "Functions Library" 
(OperandOne As Integer, _
	OperandTwo As Interger, _
	Operation As String)
'Library Source File
'Test Library Architecture Framework
'Functions Library

Sub StandardViewFunction (OperandOne As Integer, _
		  OperandTwo As Interger, _
		  Operation As String)

	  'Click on first operand
	  Select Case OperandOne
		    Case 0
				  PushButton Click, "ObjectIndex=8"
			Case 1
				  PushButton Click, "ObjectIndex=7"
			Case 2
				  PushButton Click, "ObjectIndex=11"
			Case 3
				  PushButton Click, "ObjectIndex=15"
			Case 4
				  PushButton Click, "ObjectIndex=6"
			Case 5
				  PushButton Click, "ObjectIndex=10"
			Case 6
				  PushButton Click, "ObjectIndex=14"
			Case 7
				  PushButton Click, "ObjectIndex=5"
			Case 8
				  PushButton Click, "ObjectIndex=9"
			Case 9
				  PushButton Click, "ObjectIndex=13"
		End Select
		
	  'Click on first operand
	  Select Case OperandOne
		    Case "+"
				  PushButton Click, "ObjectIndex=8"
			Case "-"
				  PushButton Click, "ObjectIndex=7"
			Case "*"
				  PushButton Click, "ObjectIndex=11"
			Case "/"
				  PushButton Click, "ObjectIndex=15"
		End Select
		
	  'Click on first operand
	  Select Case OperandOne
		    Case 0
				  PushButton Click, "ObjectIndex=8"
			Case 0
				  PushButton Click, "ObjectIndex=7"
			Case 0
				  PushButton Click, "ObjectIndex=11"
			Case 0
				  PushButton Click, "ObjectIndex=15"
			Case 0
				  PushButton Click, "ObjectIndex=6"
			Case 0
				  PushButton Click, "ObjectIndex=10"
			Case 0
				  PushButton Click, "ObjectIndex=14"
			Case 0
				  PushButton Click, "ObjectIndex=5"
			Case 0
				  PushButton Click, "ObjectIndex=9"
			Case 0
				  PushButton Click, "ObjectIndex=13"
		End Select
		
		'=
		PushButton Click, "ObjectIndex=21"
		
End Sub

Khi sử dụng thư viện, kịch bản lệnh của trường hợp thử nghiệm sau đây có thể được thực hiện.

'Test Library Architecture Framework
'Test Case script

'$Include "Functions Library.sbh"

Sub Main

      'Test the Standard View
      Window Set Context, "Caption=Calculator", ""
      
      'Test Add Functionalty
      StandardViewFunction 3,4,"+"
      Result = LabelVP (CompareProperties, "Text=7.", "VP=Add")
      
      'Test Subtract Functionalty
      StandardViewFunction 3,2,"-"
      Result = LabelVP (CompareProperties, "Text=1.", "VP=Sub")
      
      'Test Multiply Functionalty
      StandardViewFunction 4,2,"*"
      Result = LabelVP (CompareProperties, "Text=8.", "VP=Mult")
      
      'Test Divide Functionalty
      StandardViewFunction 10,5,"/"
      Result = LabelVP (CompareProperties, "Text=2.", "VP=Div")
      
End Sub

Từ ví dụ này, bạn có thể thấy khung công tác này cũng cung cấp mức độ cao về mô đun hóa và thêm vào khả năng bảo trì tổng thể của bộ thử nghiệm. Cũng như trong mô đun kịch bản lệnh thử nghiệm, nếu một phím điều khiển cần hoạt động trên Máy tính, tất cả mọi thứ mà bạn cần thay đổi là tệp thư viện và cập nhật tất cả các trường hợp thử nghiệm để gọi phím đó.


Khung công tác thử nghiệm dựa vào từ khoá hay dựa vào bảng

Thử nghiệm dựa vào từ khoáthử nghiệm dựa vào bảng là các thuật ngữ có thể hoán đổi nhau để nói đến một khung công tác tự động hóa độc lập với ứng dụng. Khung công tác này yêu cầu phát triển các bảng dữ liệu và các từ khoá, tính độc lập của công cụ tự động thử nghiệm được sử dụng để thực hiện chúng và mã kịch bản lệnh thử nghiệm để "điều khiển" ứng dụng đang thử nghiệm và dữ liệu. Các bài thử nghiệm dựa trên từ khóa trông rất giống với trường hợp thử nghiệm thủ công. Trong một bài thử nghiệm dựa trên từ khóa, chức năng của ứng dụng đang thử nghiệm được viết vào một bảng cũng như theo các hướng dẫn từng bước cho mỗi bài thử nghiệm.

Nếu chúng ta đã vạch ra các hành động mà chúng ta thực hiện bằng chuột khi chúng ta thử nghiệm các chức năng của Máy tính Windows của chúng ta bằng tay, chúng ta có thể tạo ra bảng sau. Cột " Window" (Cửa sổ) chứa tên của cửa sổ ứng dụng mà ở đó chúng ta đang thực hiện hành động chuột (trong trường hợp này, tất cả chúng xảy ra ở trong cửa sổ Calculator). Cột "Control" cột gọi tên kiểu phím điều khiển mà chuột đang nhấn. Các cột "Action" (Hành động) liệt kê hành động được chọn bằng chuột (hoặc bởi những người thử nghiệm). Và cột "Arguments" (Các đối số) gọi tên một phím điều khiển cụ thể (1, 2, 3, 5, +, -, v.v).

Cửa sổĐiều khiểnHành độngCác đối số
CalculatorTrình đơnView (Khung nhìn), Standard (Chuẩn)
CalculatorNút ấnNhấn chuột1
CalculatorNút ấnNhấn chuột+
CalculatorNút ấnNhấn chuột3
CalculatorNút ấnNhấn chuột=
CalculatorKiểm tra kết quả4
CalculatorXóa
CalculatorNút ấnNhấn chuột6
CalculatorNút ấnNhấn chuột-
CalculatorNút ấnNhấn chuột3
CalculatorNút ấnNhấn chuột=
CalculatorKiểm tra kết quả3

Bảng này biểu diễn một bài thử nghiệm đầy đủ; có thể thực hiện nhiều thứ hơn nữa khi cần thiết để biểu diễn một loạt bài thử nghiệm. Khi bạn đã tạo ra (các) bảng dữ liệu của mình, bạn chỉ cần viết một chương trình hay một tập các kịch bản lệnh để đọc theo mỗi bước, thực hiện một bước dựa vào từ khóa có chứa trường Action, thực hiện việc kiểm tra lỗi và ghi lại thông tin có liên quan bất kỳ. Chương trình hoặc tập các kịch bản lệnh này sẽ trông giống như mã giả dưới đây:

Main Script / Program 
Connect to data tables. 
Read in row and parse out values. 
Pass values to appropriate functions. 
Close connection to data tables. 
Menu Module 
Set focus to window. 
Select the menu pad option. 
Return. 
Pushbutton Module 
Set focus to window. 
Push the button based on argument. 
Return. 
Verify Result Module 
Set focus to window. 
Get contents from label. 
Compare contents with argument value. 
Log results. 
Return.

Từ ví dụ này, bạn có thể thấy rằng khung công tác này yêu cầu rất ít mã để tạo ra nhiều trường hợp thử nghiệm. Các bảng dữ liệu được sử dụng để tạo ra các trường hợp thử nghiệm riêng trong khi mã giống như vậy được tái sử dụng. Bộ công cụ Rational của IBM có thể được mở rộng khi sử dụng cách đọc tệp tương tác, các truy vấn hoặc các nhóm dữ liệu (datapools), hoặc bạn có thể sử dụng các công cụ khác (phần mềm miễn phí, các công cụ phát triển khác và tương đương) cùng với các công cụ Rational của IBM để xây dựng kiểu khung công tác này.


Khung công tác thử nghiệm dựa vào dữ liệu

Thử nghiệm dựa vào dữ liệu là một khung công tác ở đó các giá trị đầu vào và đầu ra thử nghiệm được đọc từ các tệp dữ liệu (các nhóm dữ liệu, các nguồn ODBC, các tệp cvs, các tệp Excel, các đối tượng DAO, các đối tượng ADO và tương tự) và được nạp vào các biến trong các kịch bản lệnh thu được hay được mã hóa thủ công. Trong khung công tác này, các biến được sử dụng cho cả các giá trị xác nhận hợp lệ đầu vào lẫn các giá trị xác nhận hợp lệ đầu ra. Việc chuyển hướng qua chương trình, việc đọc các tệp dữ liệu và ghi nhật ký trạng thái thử nghiệm và thông tin tất cả được mã hoá trong kịch bản lệnh thử nghiệm.

Điều này tương tự với việc thử nghiệm dựa vào bảng, trong đó trường hợp thử nghiệm được chứa trong các tệp dữ liệu chứ không được chứa trong kịch bản lệnh; kịch bản lệnh chỉ là một "trình điều khiển" hoặc cơ chế phân phối, cho dữ liệu. Tuy nhiên, không giống như trong việc thử nghiệm dựa vào bảng, dữ liệu chuyển hướng không được chứa trong các cấu trúc bảng. Trong thử nghiệm dựa vào dữ liệu, chỉ có dữ liệu liệu thử nghiệm mới được chứa trong các tệp dữ liệu.

Bộ dụng cụ Rational của IBM có chức năng dựa vào dữ liệu tự nhiên khi sử dụng ngôn ngữ SQABasic và các cấu trúc nhóm dữ liệu Rational của IBM. Để thể hiện việc sử dụng khung công tác này, chúng ta sẽ thử nghiệm biểu mẫu đơn đặt hàng từ ứng dụng mẫu thử nghiệm Classics A (xem Hình 2).

Hình 2. Biểu mẫu đơn đặt hàng từ ứng dụng mẫu thử nghiệm Classics A
Biểu mẫu đơn đặt hàng

Nếu chúng ta ghi lại dữ liệu nhập vào cửa sổ này, chúng ta nhận được như sau:

'Data Driven Framework
'Test Case Script

Sub Main

      'Make An Order
      Window Set Context, "Name=frmOrder", ""
      
      'Card Number
      EditBox Click, "Name=txtCreditCard", "Coords=16,9"
      InputKeys "3333444455556666"
      
      'Expiration Date
      EditBox Click, "Name=txtExpirationDate", "Coords=6,7"
      InputKeys "3333444455556666"
      
      'Place Order
      PushButton Click, "Name=cmdOrder"
      
      'Confirmation Screen
      Window SetContext, "Name=frmConfirm", ""
      PushButton Click, "Name=cmdOK"
      
End Sub

Chúng ta có thể sử dụng các nhóm dữ liệu (datapools) để thiết lập các trường hợp thử nghiệm để kiểm tra các số thẻ tín dụng hợp lệ và không hợp lệ và ngày tháng hết hạn. Nhóm dữ liệu được hiển thị trong Hình 3, ví dụ, sẽ dùng cho một trường hợp thử nghiệm muốn kiểm tra trường ngày tháng.

Hình 3. Nhóm dữ liệu mẫu cho một trường hợp thử nghiệm muốn kiểm tra trường ngày tháng
Nhóm dữ liệu

Nếu chúng ta sửa lại kịch bản để chấp nhận dữ liệu này, chúng ta nhận được như sau:

'Data Driven Framework
'Test Case Script

'$Include "SQAUTIL.SBH"

Sub Main
	  Dim Result As Integer
	  Dim DatapoolHandle As Long
	  Dim DatapoolReturnValue As Variant
	  
	  'Open the datapool
	  DatapoolHandle = SQADatapoolOpen("OrderFormDP")
	  '...Add error checking....
	  
	  'Loop through the datapool
	  While SQADatapoolFetch(DatapoolHandle) = dqaDpSuccess
		'Open Order Form
		Window SetContext, "Name=frmMain", ""
		PushButton Click, "Name=cmdOrder"
		Window SetContext, "Name=frmOrder", ""
	  
          'Card Number
		Result = SQADatapoolValue(DatapoolHanle, "Credit Card Number", 
                                   DatapoolReturnValue)
		"...Add error checking....
		EditBox Click, "Name=txtCreditCard", "Coords=16,9"
		'...Clear Value....
		InputKeys DatapoolReturnValue
	  
		'Expiration Date
		Result = SQADatapoolValue(DatapoolHandle, "Expiration Date", 
                                  DatapoolReturnValue)
		'...Add error checking....
		'...Clear Value...
		EditBox Click, "Name=txtExpirationDate", "Coords=6,7"
		InputKeys DatapoolReturnValue
	  
		'Place Order
		Result = SQADatapoolValue(DatapoolHandle, "Order", DatapoolReturnValue)
		If UCASE(DatapoolReturnValue) = "YES" Then
		 PushButton Click, "Name=cmdOrder"
		  
		 'Confirmation Screen
		 Window SetContext, "Name=frmConfirm", ""
		 Pushbutton Click, "Name=cmdOK"
		Else
		 PushButton Click, "Name=cmdCancel"
		 End If	  
		Wend 'Go fetch next row
		  
		'Close datapool
		Result = SQADatapoolClose(DatapoolHandle)
		'...Add error checking....
End Sub

Tôi đã phải thêm các lệnh SQABasic để thao tác các nhóm dữ liệu. Tôi cũng đã thêm một vòng lặp While để giúp cho việc xử lý mỗi hàng trong nhóm dữ liệu này. Tôi cũng đề cập đến việc sử dụng lệnh SQABasic UCase trong câu lệnh If Then. UCase được sử dụng để tạo ra các đối số (trong trường hợp này, giá trị trả về nhóm dữ liệu) tất cả chữ hoa. Đây là cách mà các phép so sánh không phân biệt được kiểu chữ hoa hay chữ thường, làm cho mã mạnh mẽ hơn.

Khung công tác này có xu hướng giảm số lượng tổng thể các kịch bản lệnh mà bạn cần để triển khai thực hiện tất cả các trường hợp thử nghiệm của bạn và nó cung cấp tính linh hoạt cao nhất khi phát triển các cách giải quyết các lỗi khác và thực hiện bảo trì. Giống như việc thử nghiệm dựa vào bảng, việc thử nghiệm dựa vào dữ liệu yêu cầu mã ít hơn để tạo ra nhiều trường hợp thử nghiệm. Khung công tác này rất dễ triển khai thực hiện bằng cách sử dụng bộ công cụ Rational của IBM và có rất nhiều tài liệu chi tiết có sẵn với các hướng dẫn và các ví dụ.


Khung công tác tự động hóa thử nghiệm lai

Khung công tác được triển khai thực hiện phổ biến nhất là một sự kết hợp của tất cả các kỹ thuật nói trên, lấy ra các điểm mạnh của chúng và cố gắng để giảm thiểu các điểm yếu của chúng. Khung công tác tự động hóa thử nghiệm lai này là những gì mà hầu hết các khung công tác phát triển trong suốt thời gian qua và trong nhiều dự án. Hình 4 cho bạn một ý tưởng về cách bạn có thể kết hợp các cách tiếp cận của các khung công tác khác nhau trong bộ công cụ Rational của IBM.

Hình 4. Một khung công tác tự động hóa thử nghiệm lai
Luồng khung công tác lai

Nhấn vào đây để xem chi tiết hơn cho Hình 4.


Tóm tắt

Tôi đã mô tả năm khung công tác tự động hóa thử nghiệm mà một nhóm thử nghiệm tự động hóa có thể xem xét khi sử dụng thay vì chỉ dựa vào một công cụ bắt giữ. Bạn có thể sử dụng chỉ một hoặc một sự kết hợp của các khung công tác đó. Bạn có thể triển khai thực hiện tính mô đun bằng cách lồng các kịch bản thử nghiệm với nhau và sử dụng các tệp thư viện SQABasic để triển khai thực hiện các chức năng và các thủ tục. Bạn có thể sử dụng các nhóm dữ liệu để triển khai thực hiện bất cứ kỹ thuật dựa vào dữ liệu nào mà bạn chọn hoặc bạn có thể mở rộng Robot để làm việc với các kiểu lưu trữ dữ liệu khác. Bí quyết là sử dụng (các) khung công tác tốt nhất cho công việc và cách duy nhất để hiểu điều đó là lao vào và bắt đầu sử dụng chúng.

Tài nguyên

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Rational
ArticleID=455480
ArticleTitle=Chọn một khung công tác tự động hóa thử nghiệm
publish-date=12112009