前些日子上线了新版的app,在上线后发现了几个重大的bug,在此总结,在以后的测试工作中需要额外的关注。

  • 需求流程bug
  • 页面刷新bug
  • 标签栏刷新bug

第一个bug出现的原因是产品需求与运营实际操作不同步而产生的bug

产品上线的需求是上线一个活动,活动有报名时间,报名通过公布名单时间。在流程图上,所有一系列的操作都是在活动时间内操作的(包括活动报名,查看名单,通过报名,上传活动体验),而在活动结束后没有任何的操作。但是实际上线后发现的问题是,运营都是在活动结束后才会公布名单,然后用户才可以查看名单,上传活动体验。而此时操作按钮都已经变成了"已结束"。这就十分尴尬了,因为在测试过程中我们根据流程图进行测试,活动时间内可以进行相关的操作,而活动结束了变为了已结束,完全符合需求,功能实现也没有问题,但是实际运营就有问题了。

这个bug的出现很难说是谁的问题,从项目流程来说,在需求定义、流程确认阶段就有问题,导致下游一系列的工作都是在错误的方向;但是从实际工作内容来讲,测试及开发人员对相应地需求没有进行很好地确认,对需求进行深层次的解读,仅仅是看着需求文档就完成了自己的工作,这也是存在问题的。

从测试人员角度出发,这个bug的出现可以让我们反思到一些问题,作为一名测试,如何测试才是有效的测试?是一条条详细的测试案例?是对需求文档的详细分析?我认为这些都不是重点,当我们完全认同这份文档,无论我们提出怎样的问题,设计怎样的案例,都无法测试出其中的问题。拿上述例子来说,就看到的流程来说是没有任何问题的,需求文档得到了开发,测试,产品多方的认同。但就是在实际操作方面出现了问题,那么如何避免这样的问题,或者说可以测到类似的问题?

我认为测试人员应当明确自身的责任,作为一名测试,不是让一个app能够完美运行,让一个系统正常运行就可以了,或者提出这样那样的bug,而是将自己放到一个产品运营,项目开发的质量保障位置,用自己的技术、思维来解决问题,能够发现在项目开发,产品运营中的痛点(这不仅仅是指bug),并能以自己的能力去解决这些痛点,可以让开发、运营更高效的工作,产品系统运营的更好,这才是一名优秀的测试人员,测试人员不应把自己放到提出问题的位置,而是能解决问题的位置,间接的解决问题。莫要先入为主,我就是个测试,我测试的东西能够跟产品需求吻合就OK了,这样可能会测试工作完成的很好,但是从测试人员角度来说已经把自己限制死了。

第二个bug出现的原因是常见的app中cell的复用问题

做过app开发的同学可能都清楚,大部分的app页面都是一个个tableview,tableview重要的一个功能是cell复用,当我们上滑页面,一个cell消失,下面cell出现,其实不是出现了一个新的cell,只是滑出屏幕的cell被复用了,这样做的目的是可以大大优化tableview的性能,但是如果cell复用的时候数据处理不好可就有bug了,没有将之前的数据清除,那么就会造成下滑出现的cell的数据跟上面是重复的,造成各种各样的问题,这个在测试过程中需要多多注意。

第三个bug是标签栏刷新bug

一个标签刷新了,再去点击另一个标签,数据刷新了,但是标签栏选中状态还是上一个标签,常见bug,该拿程序猿祭天了,不多说了。

近期测试BUG总结的更多相关文章

  1. [工作日志] 2018-12-06 重点: 解决安全测试bug

    安全测试bug 业务端提出, 在修改是否给联系人发送短信接口,如果操作人和被操作的联系人不在同一个企业的情况下, 也是可以修改的. 解决办法: 加校验.

  2. 测试BUG记录模板(供参考)

    文档说明如下: Bug严重程度: A-崩溃的:由于程序所引起的死机.非法退出.死循环:数据库发生死锁:因错误操作导致的程序中断:主要功能错误:造成数据破坏丢失或数据异常:数据库连接错误:数据通讯错误. ...

  3. 用excel记录测试bug问题总结

    前几天与开发在讨论问题的时候,开发提了一个问题,说是已经解决的问题,能否用excel表格总结一下,问了一下原因,感觉想法很好,就总结了一下. 在上家公司的时候,提交bug用的是mantis,现在是禅道 ...

  4. 一次压力测试Bug排查-epoll使用避坑指南

    Bug复现 使用Webbench对服务器进行压力测试,创建1000个客户端,并发访问服务器10s,正常情况下有接近8万个HTTP请求访问服务器. 结果显示仅有7个请求被成功处理,0个请求处理失败,服务 ...

  5. 测试bug级别定义

    致命bug:不能完全满足系统要求,系统停止运行,系统的重要部件无法运行,系统崩溃或者挂起等导致系统不能正常运行. 修改优先级为最高,该级别问题需要立即修改. 1.系统崩溃 2.导致程序重启,死机或非法 ...

  6. 手机monkey测试BUG重现及解决方法

    目录 1.1 Monkey测试简介...1 1.2 Monkey程序介绍...1 1.3 Monkey命令的简单帮助...2 1.4 Monkey命令参数介绍...2 1.5 Monkey测试步骤.. ...

  7. 开发至今,终于开始测试bug,可以省心点了

    今天遇到一个特别奇葩的问题 IOSSDK9.1 Xcode7.1.1 使用表控制器UITableViewController来刷新表时, 之前对表的frame进行的修改,都会被恢复,沾满整个屏幕. 目 ...

  8. 关于上级机构的冲突性测试bug修复

    描述: 1.上级机构可以为空. 2.机构添加时,选择了上级机构,在未提交前,另一用户将该机构删除,然后前一用户再提交表单,提示会保存成功,本操作应该保存失败. 思路:在上级机构不为空时,保存前进行查询 ...

  9. 测试bug

    模板在运行时出现了以下 1 个错误:---------------------------Controller.tt(-1,-1) : error : 获取 AppDomain 以便从主机运行转换时出 ...

随机推荐

  1. P2P技术简介(包括BT软件的分析)(转)

    这是一篇别人发表的论文,里面很全面的解释了P2P技术的实现,以及BT网络中应用P2P技术所设计的原理,并列举BT软件的一些专业名词的定义.由于论文发表的比较早,2005年时还没有DHT技术. (链接: ...

  2. javascript --- 构造器借用

    接下来我们在看一种继承的实现.这需要再次利用构造器函数入手,这回不直接使用对象了.由于在这种继承模式中,子对象构造器可以通过call()和apply()方法来调用父对象的构造器.因而可以被称作构造器盗 ...

  3. iOS开发 使用Cocoapods管理第三方类库

    每次上github看到一些优秀的代码,总能看到Podfile,也了解是个管理第三方类库的,今天抽时间学习了一下,挺简单的! 作用:      太多  还是复制一下把!!! CocoaPods是什么? ...

  4. Dance In Heap(一):浅析堆的申请释放及相应保护机制

    0×00 前面的话 在内存中,堆是一个很有趣的地方,因为它可以由用户去直接的进行分配与销毁,所以也产生了一些很有趣.奇思妙想的漏洞,像unlink漏洞.House系列漏洞等等.但是在学习的过程中,我们 ...

  5. IDG | 四则运算表达式计算

    分析 首先将中缀表达式转换为后缀表达式(逆波兰式),然后使用栈进行计算. 没有考虑括号.小数. 代码 import java.util.LinkedList; import java.util.Lis ...

  6. AngularJS的简单表单验证

    代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsCheckSimpleForm.rar 代码: <!DOCTYPE HTM ...

  7. JavaScript插件编写指南

    在编写插件之前,大家要先了解做插件的几个要点: 插件需要满足的条件 一个可复用的插件需要满足以下条件: 插件自身的作用域与用户当前的作用域相互独立,也就是插件内部的私有变量不能影响使用者的环境变量: ...

  8. cocos2d-x项目101次相遇:在HelloWorld上--建立新场景

    cocos2d-x 101次相遇 / 文件夹  1   安装和环境搭建 -xcode  2   Scenes , Director, Layers, Sprites 3   建立图片菜单  4   在 ...

  9. TIP2

    mktemp :建立暂存/临时文件 more to see 'man mktemp' 语 法 mktemp[选择参数] 功 能 mktemp 命令:用于建立暂存文件,提供给shell脚本安全的使用临时 ...

  10. Django-wsgi实例

    wsgiref实现了wsgi,他会将复杂的http请求经过处理,得到Django需要的格式,可以说他是一个接口,一端传入数据,一端处理数据 传统的socket实现 import socket def ...