如何通过代码分析精简用例

基础:

在企点项目中,PHP用的框架有TSF和YII。通过分析两种框架发现其实不论哪种框架其核心的思想都是MVC模式。这里不展开。

基于框架的特点,我们可以知道URL与代码的映射关系

比如:公海客户筛选请求

URL:xxx/cl/opensea/getCustList

代码文件:…/cl/controller/OpenseaController.php

函数:actionGetCustList

测试需求:

在客户库(公海/已归属/客户删除)中增加性别/年龄/地区/学历筛选项

代码分析:

公海、已归属、客户删除筛选函数的实现是一致的,且调用相同基础model的getCustList方法。接下来看代码后续的调用关系链来了解代码是如何实现页面类型区分

CstmBaseModel::getCustList  à  CustomerFilterModel:: get_filter_data  à  get_filter_sql

private function get_filter_sql($params) {

 $pageType = 1;

 if (isset($params['pageType'])) {

 pageType = intval(params['pageType']);

 }

…

}

到这里就比较明确了,是通过请求参数中的pageType来区分页面类型。1表示公海,2表示已归属,3标识客户删除。

结论:

通过以上分析可以发现,只需要覆盖其中一个页面筛选的全部用例,和其他两个页面的基础用例就可以达到完全测试的效果。这样用例大约可以缩减60%,大大提升测试效率。

思考:

通过以上也可以发现其实分析代码并不困难,主要是要培养分析代码的意识,不仅能提升自己对设计的理解,还能帮助测试事半功倍哦。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大宽宽的碎碎念

如何深入理解开源项目从小代码集看起聚焦请先看文档关注资源的生命周期找一个好工具建立调试环境看代码很累,要坚持

3316
来自专栏Golang语言社区

【Go 语言社区】在 Go 语言中,如何正确的使用并发

Glyph Lefkowitz最近写了一篇启蒙文章,其中他详细的说明了一些关于开发高并发软件的挑战,如果你开发软件但是没有阅读这篇问题,那么我建议你阅读一篇。这...

3459
来自专栏小程序·云开发专栏

你不知道的Node.js性能优化

仅仅是简单的升级 Node.js 版本就可以轻松地获得性能提升,因为几乎任何新版本的 Node.js 都会比老版本性能更好,为什么?

7.9K5
来自专栏hbbliyong

设计模式学习--面向对象的5条设计原则之开放封闭原则--OCP

一、OCP简介(OCP--Open-Closed Principle): Software entities(classes,modules,functions...

2868
来自专栏程序生活

Python爬虫系列(一)初期学习爬虫的拾遗与总结(11.4更)

---- 最近,为了提取裁判文书网的有关信息,自己迈入Python的学习之路,写了快两周的代码,自己写这篇文章总结下踩过的坑,还有遇到一些好的资料和博客等总结下...

3755
来自专栏后端技术探索

php7和HHVM的性能之争

根据“TIOBE编程语言排行榜”(榜单虽然统计方式有局限,但是仍然不失为一个比较好的参考),2010年PHP最高曾经在世界编程语言中排名第三。可见,PHP语言在...

1652
来自专栏跨界架构师

如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码:

1043
来自专栏况鹰的专栏

obs源码分析第二篇:庖丁解牛

上一篇《obs源码分析第一篇--踏石留印》简单介绍了obs的由来和工程构成,这一篇我将剖析一下obs二代的代码内部,就不来文艺气息了,直接上猛料。本文将按照数据...

1.6K0
来自专栏PingCAP的专栏

让 TiDB 访问多种数据源 | TiDB Hackathon 优秀项目分享

我们队伍是由武汉大学在校学生组成。我们选择的课题是让 TiDB 接入若干外部的数据源,使得 TiDB 称为一个更加通用的查询优化和计算平台。

910
来自专栏乐沙弥的世界

Python简介

版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。

1293

扫码关注云+社区