我有一些与建模问题有关的问题。我正在研究基于模型的测试的论文项目。还想从专家的角度来了解我是否采取了正确的方法来模拟我的场景。我正在为Android应用程序的UI建模,遍历它们,生成测试用例并为espresso框架生成测试代码。
我会简单地解释一下我在测试系统的方式,并为测试用例生成测试代码。 (我正在编写算法来生成android代码)。我正在为android espresso测试框架生成代码。浓咖啡的结构总是需要首先找到要与之互动的元素。这是通过将“OnView()”方法传入其中的参数(如withId(R.id.title)或withText(“Hello”)来完成的,以分别找到具有给定Id或Text的元素。然后,我们通过分别执行操作或执行断言来附加框架调用ViewActions或ViewMatchers以与元素交互的内容。下面是一个espresso测试用例的例子,它找到一个文本视图,点击文本“Lucky button”并检查它是否显示。
@Test
public void test () {
onView(withText(“Lucky Button”)) //ViewMatcher
.perform(click()) // ViewAction .check(matches(isDisplayed())); // ViewAssertion
简单案例 让我们带两个屏幕的android应用程序。屏幕A和屏幕B.每个屏幕包含不同的元素。例如。 TextView(Textlabel),ImageView(图像标签),e.t.c。 我使用状态图来描述屏幕可以处于的状态。对于每个状态,存在一个活动图,描述要对元素执行的测试,例如TextView的,ImageView的。我们将每个测试套件分组到泳道中,并用活动操作表示测试操作。但是需要输入信息。例如,可以将活动操作称为isVisible,以检查ToolBarDesign泳道中工具栏的可见性。要实现此操作,我们需要工具栏上的信息,以便首先找到它并检查其可见性。我这样做是通过提供有关动作或状态转换的必要信息。下面是描述场景的状态图和活动图的示例。
此状态图有2种状态。从MainActivity转换到NewNote是一个名为openNewNote的触发器,其动作的格式为freetext。 freetext动作包含我在java框架中处理和提取的必要信息,用于生成上面的代码片段。 在框架中,我首先选择具有id标题的元素,然后执行click方法。 同样在MainActivity状态中包含如前所述的子活动图。在这个子活动图中,我们为人物建模(我们认为是具有espresso框架知识的人)提供了编写活动动作以进行测试的机会。下面是MainActivity活动图的示例,它测试应用程序的工具栏和登录屏幕。
工具栏从初始节点转换为isVisible活动。在转换过程中,我们按照上面关于状态图转换的说明进行描述。在这里我们得到自由文本动作“withText:Lucky Button,matches,isDisplayed”,然后在我们的框架中处理它以获取代码。
@Test
public void test () {
onView(withText(“Lucky Button”)) //ViewMatcher
.check(matches(isDisplayed())); // ViewAssertion
问题。 到目前为止,这对团队起作用,因为程序员就是建模者。我将提供一个用于建模系统的文档。 我想问一下这是否是一种有效的建模方法,可以在我的研究中进行描述。如果您有任何意见或建议,也可以。
答案 0 :(得分:1)
如果不深入细节,我建议退一步,开始更广泛的事情:
最好的开始方式是练习示例:
如果您回答这些问题,如果您的方法有效或有任何错误,您也可以得到答案,我无法回答您提出的问题。