软件测试之有价值的测试用例

网友投稿 798 2022-12-02

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

软件测试之有价值的测试用例

一、什么是有价值的测试用例

我觉得对于测试用例的设计,不能离开架构层面和业务层面。

1、架构层面

Presenter层:这一层很清晰,我们为它的每个接口方法,以及每个方法里涉及的多个逻辑路径设计相应的测试用例,值得注意的是,这一层我们不做输入输出的断言,而是验证是否正确覆盖V层和M层的逻辑。

Model层:同上,我们为它的每个方法设计测试用例,与P层不同,这一层要断言输入输出数据是否准确。

View层:这一层我们放在业务层面来讲。

2、业务层面

做单元测试,测试业务逻辑是重中之重。View层承担着这一重任,设计这一层的测试用例时,不要想太多,站在我们正常使用功能的角度出发,把交互行为翻译成Espresso的代码。由于View是入口,当一种交互行为发生,Presenter开始调度View和Model层各自执行逻辑,因此从这个角度来讲,View层的测试涵盖了MVP三层的逻辑。

聊完有价值的,我们再来看看什么是没价值的测试用例。比如以下几种:

(1)对成熟的工具类进行测试

(2)对简单的方法进行测试(比如get、set方法)

(3)MVP各层重复测试,比如P层去断言输入输出的正确性

接下来笔者将完整的展示这个MVP项目中的所有单元测试用例,分为三个维度,androidTest下的、androidTestMock下的和test下的所有测试用例,如果觉得阅读起来枯燥,可以直接阅读每个测试类开篇的概述部分。

二、androidTest文件下的测试

V层:导航界面测试——AppNavigationTest

意义:告诉我们如何对DrawerLayout设计有价值的测试用例。

(1)clickOnStatisticsNavigationItem_ShowsStatisticsScreen

(2)clickOnListNavigationItem_ShowsListScreen

(3)clickOnAndroidHomeIcon_OpensNavigation

验证通过ActionBar的icon进行关闭和打开Left Drawer

V层:任务模块界面测试——TasksScreenTest

概述:该测试用例针对任务列表和任务详情页的界面功能测试,涵盖所有页面上的交互,包括增删改查任务、改变任务状态,过滤任务列表等,除此之外还验证了横竖屏的交互对界面数据状态的影响。

意义:告诉我们如何设计有价值的功能界面测试用例。

(1)clickAddTaskButton_opensAddTaskUi

(2)addTaskToTasksList

添加标题1的TO-DO任务后回到列表页->断言标题1存在

(3)editTask

(4)markTaskAsComplete

(5)markTaskAsActive

测试标记任务为Active状态,手法同上一点

(6)showAllTasks

添加2个任务->进入All视图->断言两个任务在界面上存在

(7)showActiveTasks

添加2个任务->进入Active视图->断言两个任务在界面上存在

(8)showCompletedTasks

添加2个任务->标记为已完成->进入Completed视图->断言两个任务在界面上存在

(9)clearCompletedTasks

(10)createOneTask_deleteTask

(11)createTwoTasks_deleteOneTask

创建2个任务->删除第2个->断言第1个存在且第2个不存在

(12)markTaskAsCompleteOnDetailScreen_taskIsCompleteInList

(13)markTaskAsActiveOnDetailScreen_taskIsActiveInList

创建1个任务->在列表页标记为已选中->进入详情页标记为未选中->回到列表页->断言该任务未被选中

(15)markTaskAsActiveAndCompleteOnDetailScreen_taskIsCompleteInList

(16)orientationChange_FilterActivePersists

创建1个任务->标记为已完成->进入Active视图->验证该任务不存在->切换横竖屏->断言该任务状态与之前一致

(17)orientationChange_FilterCompletedPersists

上一篇:软件测试的各个测试阶段
下一篇:在软件测试中使用虚拟化技术的好处是什么?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~