一、About Understanding the Test Object Model
关于了解测试对象模型
QuickTest tests your dynamically changing application by learning and identifying test objects and their expected properties and values. During recording QuickTest analyzes each object in your application much the same way that a person would look at a photograph and remember its details.
QuickTest 通过记住和标识测试对象及其预期的属性和属性值,对动态更改的应用程序进行测试。在录制期间,QuickTest 对应用程序中每个对象进行分析的方式与一个人看一张图片然后记住其细节的方式大致相同。
In the following narrative you will be introduced to the concepts related to the test object model and how QuickTest uses the information it gathers to test your application.
在以下叙述中,将向您介绍与测试模型相关的概念,以及 QuickTest 如何使用它所收集的信息来测试应用程序。
1、Understanding How QuickTest Learns Objects While Recording
了解 QuickTest 如何在录制时记住对象
QuickTest learns objects just as you would.
QuickTest 像您那样记住对象。
For example, suppose as part of an experiment, Jonny is told that he will be shown a photograph of a picnic scene for a few seconds during which someone will point out one item in the picture. Jonny is told that he will be expected to identify that item again in identical or similar pictures one week from today.
例如,假定作为实验的一部分,Jonny 被通知将向他展示一张野餐场景的图片,时间为几秒钟,在此期间,将会有人指出图片中的一个项目。自起一周后,Jonny 需要在相同或相似的图片中再次识别出该项目。
Before he is shown the photograph, Jonny begins preparing himself for the test by thinking about which characteristics he wants to learn about the item that the tester indicates. Obviously, he will automatically note whether it is a person, inanimate object, animal, or plant. Then, if it is a person, he will try to commit to memory the gender, skin color, and age. If it is an animal, he will try to remember the type of animal, its color, and so forth.
在看到图片之前,Jonny 自己开始为测试做准备,考虑对于测试者指出的项目,需要记住该项目的哪些特征。显然,他将自动记住该项目是人、无生命物体、动物还是植物。如果是人,他将尝试记住其性别、肤色和年龄。如果是动物,他将尝试记住其类型、颜色等。
The tester shows the scene to Jonny and points out one of three children sitting on a picnic blanket. Jonny notes that it is a caucasian girl about 8 years old. In looking at the rest of the picture, however, he realizes that one of the other children in the picture could also fit that description. In addition to learning his planned list of characteristics, he also notes that the girl he is supposed to identify has long, brown hair.
测试者向 Jonny 展示场景,并从三个坐在野餐毯上的孩子中指定一个。Jonny 注意到这是一个 8 岁左右的白种女孩。但在查看图片中的其他内容时,他意识到图片中的另一个孩子也符合这种描述。除了记住计划的特征列表以外,Jonny 还记下自己应该识别出的这个女孩留着褐色的长发。
Now that only one person in the picture fits the characteristics he learned, he is fairly sure that he will be able to identify the girl again, even if the scene the tester shows him next week is slightly different.
注意:图片中只有一个人符合他记住的特征,所以,即使测试者下周展示的场景稍有不同,他也相当肯定能够再次识别出这个女孩。
Since he still has a few moments left to look at the picture, he attempts to notice other, more subtle differences between the child he is supposed to remember and the others in the picture—just in case.
由于还剩下一点看图片的时间,因此,只是为了以防万一,Jonny 试着注意自己应该记住的这个孩子与图片中其他孩子之间更细微的差别。
If the two similar children in the picture appeared to be identical twins, Jonny might also take note of some less permanent feature of the child, such as the child's position on the picnic blanket. That would enable him to identify the child if he were shown another picture in which the children were sitting on the blanket in the same order.
如果图片中两个相似的孩子看上去像一对双胞胎,那么 Jonny 还会记下这个孩子的一些不那么的特征,如这个孩子在野餐毯上的位置。这样,如果向他展示的另一张图片中,这些孩子仍按相同的顺序坐在毯子上,他也能够识别出这个孩子。
QuickTest uses a very similar method when it learns objects during the recording process.
QuickTest 采用了极为类似的方法,以便在录制过程中记住对象。
First, it "looks" at the object on which you are recording and stores it as a test object, determining in which test object class it fits. Just as Jonny immediately checked whether the item was a person, animal, plant, or thing. QuickTest might classify the test object as a standard Windows dialog box (Dialog), a Web button (WebButton), or a Visual Basic scroll bar object (VbScrollBar), for example.
首先,它将“观看”您要录制的对象,然后将其作为测试对象进行存储,确定该对象符合的测试对象类。正如 Jonny 会立即检查项目是人、动物、植物还是东西,QuickTest 也会对测试对象进行分类,例如,标准 Windows 对话框 (Dialog)、Web 按钮 (WebButton) 或 Visual Basic 滚动条对象 (VbScrollBar)。
Then, for each test object class, QuickTest has a list of mandatory properties that it always learns; similar to the list of characteristics that Jonny planned to learn before seeing the picture. When you record on an object, QuickTest always learns these default property values, and then "looks" at the rest of the objects on the page, dialog box, or other parent object to check whether this description is enough to uniquely identify the object. If it is not, QuickTest adds assistive properties, one by one, to the description, until it has compiled a unique description; like when Jonny added the hair length and color characteristics to his list. If no assistive properties are available, or if those available are not sufficient to create a unique description, QuickTest adds a special ordinal identifier, such as the object's location on the page or in the source code, to create a unique description, just as Jonny would have remembered the child's position on the picnic blanket if two of the children in the picture had been identical twins.
然后,对于每个测试对象类,QuickTest 都有一个始终要记住的强制属性的列表,类似于 Jonny 在看到图片之前计划要记住的特征的列表。当您录制对象时,QuickTest 始终记住这些默认的属性值,然后“视图”页面上其余的对象、对话框或其他父对象,以检查该描述是否足以标识该对象。如果不足以进行标识,QuickTest将向该描述中逐项添加辅助属性,直到经过编译成为的描述为止,像 Jonny 向他的列表中添加头发的长度和颜色特征一样。如果没有可用的辅助属性,或者那些可用的辅助属性仍不足够创建一个的描述,QuickTest 将添加一个特殊的顺序标识符(例如页面上或源代码中对象的位置)以创建的描述,正如图片中的两个孩子是一对双胞胎时,Jonny 要记注孩子在野餐毯上的位置一样。