产品经理如何把控产品测试环节

作者: 点滴产品 | 来源:发表于2019-07-12 07:18 被阅读17次

    产品测试是很重要的一个环节,目前所有的互联网公司都有测试工程师,他们是产品上线的最后一环,对公司和用户负责,他们的定位是产品把关者,往往躲在项目幕后,默默地奉献着自己,确保产品能够正常运行,颇有点像一座城市内的保卫人员,守护着一座城市的宁静和安全。

    那么测试人员和产品有什么交集?测试人员常说的单元测试、黑盒测试、白盒测试、功能测试、兼容性测试是什么意思?这一章我们就来分析下与测试相关的产品知识。

    测试是指使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

    测试的方法有:黑盒测试、白盒测试、

    1、黑盒测试

    黑盒测试,也称功能测试,是对产品的功能和流程进行测试判断产品的功能和流程是否按照原先设定进行。盒子指的是被测试的软件,这时的软件对于测试人员来说是不透明的,在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。功能流程包括正常流程和异常流程,通过测试来检测每个功能是否都能正常使用。

    黑盒测试主要有三种方法:边界值分析、等价类划分、错误推测法;

    边界值分析,主要对功能使用边界的限制,如密码最少6位,最多18位,那就需要测试超过或低于这个位数的情况;

    等价类划分,将相同或类似的内容进行等价类划分测试,如年龄的设置、出生日期的设置、商品数量的设置,不可能一个数字一个数字输入,可以设置几个位数点进行测试;

    错误推测法,也就是异常情况,如微信的视频一对一通话时,再来一个人发起视频会如何?

    测试一个功能是否完善可以从三个维度考虑,包括数据、流程、操作,下面我们以今日头条的APP为例来看看这个三个维度都会怎么考虑:

    从数据上看,主要有一下五点需要测试:

    数据来源和流向,用例:不同类型的新闻是否归类正确,比如奇闻异事会不会出现在社会新闻里;

    数据的完整性,用例:新闻列表加载的时候,是否包含了标题、简介、图片;

    数据的状态,用例:异常的新闻信息是否还展示在了页面上;

    数据的排序,用例:新闻的排列顺序是否按照时间先后顺序进行排列;

    没有数据时,用例:当没有新闻数据的时候,是否有空白页提醒;

    从流程上看,需要注意正常流程与异常流程的测试

    正常流程用例:点击列表(标题、简介、图片),是否正常进入新闻详情页

    异常流程用例:当用户获取验证码后,输入错误是如何提示的

    正常流程用例:点赞/收藏功能是否正常使用;

    异常流程用例:评论时,如果出现敏感词如何提示;

    移动端从操作上看,需要注意上下滑动与左右滑动

    用例:向下拉动是否能够刷新数据

    用例:向上滑动是否能够刷出更多的新闻

    在做黑盒测试时的优缺点

    优点 :

    从用户的角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题

    基于需求功能做测试,能快速了解哪些功能已实现,哪些实现的有问题;

    测试比较简单,不需要了解程序的内部的代码及实现,与软件的内部实现无关;

    缺点 :

    不可能覆盖所有的代码, 覆盖率较低,大概只能达到总代码量的30%

    自动化测试的复用性较低。

    目前测试做的大部分工作属于黑盒测试。掌握黑盒测试是做测试工作的基本功。

    2、白盒测试

    白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。

    白盒测试是全面了解程序内部逻辑结构、对所有逻辑路径进行测试。测试人员清楚软件内部的结构和逻辑,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

    白盒测试一般需要技术基础支持,同时需要相关工具配合,比如日志抓取工具。抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

    优点 :

    帮助软件测试人员增大检测代码的覆盖率;

    提供代码的质量评估报告;

    发现代码中隐藏的问题;

    缺点 :

    测试范围有限:程序运行会有很多不同的路径,不可能测试所有的运行路径

    不利于功能的检测:测试基于代码,只能测试开发人员做的对不对,而不能知道设计是否正确,可能会漏掉一些功能需求

    耗时耗力:系统庞大时,测试开销会非常大。

    白盒测试相对专业,一般是有一定技术基础的人员进行的测试,测试过程中需要相对专业的测试工具并配合逻辑测试方案。

    3、单元测试

    单元测试又称模块测试,是针对软件设计的最小单位程序模块,进行正确性检验的测试工作。也就是我们所说的技术自测,因为一个产品的开发工作通常都是有多个技术配合完成的,而每个技术负责几个单元或者模块,每个单元或者模块开发完成后,先进行自测通过,再提交联调,通过这样的方案再将整个产品串联起来;

    4、集成测试

    集成测试也称联合测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作,其主要目的是检查软件单位之间的接口是否正确。

    集成测试的对象是已经经过单元测试的模块。也就是我们所说的技术之间的联调,技术开发好的各个模块需要接口连通,而集成测试就是进行连通测试,只有在技术之间先将功能测试通过后才能提交给专门的测试团队进行最终的测试把关;

    5、界面测试

    界面测试,就是对产品的每一个页面的UI进行排查,将程序员开发出来的内测版本与设计师设计出来的设计图进行比对,如元素对齐(包括元素本身、元素之间)、字体图片大小、组件的间距等。

    界面测试需要保证程序的开发完成的界面和产品当初设计的页面是一样的,并且可以加载出对应的数据。

    6、兼容性测试

    兼容性测试主要测试软件是否能在不同的操作系统平台上兼容,是否能在不同的设备上兼容,软件本身能否向前或向后兼容,软件能否与其他相关的软件兼容,数据是否兼容,主要是指数据能否共享等。如网易云笔记,是否能在MAC&WINDOWS&安卓&ios,是否支持笔记内容再不同版本间的兼容,是否可以收录其他软件的内容等。比如Axure8.0设计的原型,7.0是打不开的。

    7、性能测试

    性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试包含了负载测试和压力测试,通常是两种测试结合进行。

    负载测试是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况,如直播带宽为10M,理论上同时开10个房间,那房间逐渐增加时,系统会反应如何?如系统缓慢,响应时长加长。还有房间的最大同时在线人数,预计的1万人,那人数逐渐增加时,房间的负载性能如何;

    压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。如双11活动0点的下单支付,QPS是多少,超过后系统就奔溃了,这样的画面想必大家在双十一购物时有所体验。

    系统的上线一般都会经历性能测试,该测试需要技术人员配合执行;

    7、系统测试

    系统测试是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。它将测试的软件作为整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。

    系统测试的目的在于通过与系统的需求定义作比较, 发现软件与系统之间的不符合或与之矛盾的地方。

    8、回归测试

    回归测试是技术在根据测试人员反馈的问题修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,一般也就是最后一波测试,测试完成后就可以输出测试报告了。

    回归测试有时候也会表达功能再正式上线后在线上的的测试,已保证功能上线后是可用的,并且没有其他问题。

    9、内测和公测

    内测是指只有内部小范围的人员参与的测试。比如在公司内部员工参与的测试,游戏产品的内测申请

    网络游戏或软件内测通常是在游戏或软件开发完成的初期,由游戏公司或软件公司发送限定数量的激活码或账号给玩家,由玩家测试并向游戏公司反馈使用情况和存在的问题,以促进游戏的进一步完善。

    内测的形式可以分为封闭性内测和开放性内测。封闭性内测即只邀请少数用户参与,如公司内部人员或极少数忠实用户。开放性内测即只要玩家注册登入就可以使用,是没有限制的,类似于全民性参与,但在功能使用上会存在不确定因素,当然也是为了让全民帮助找到产品所存在问题,以便快速修复;

    公测是邀请一些全国各地的用户参加测试,主要是侧重于客户端可能出现的问题,测试服务器的性能和查找正式线上的程序是否存在Bug。参与测试的人选比内测要广泛,与开放行内测类似,可以通过如地区、会员级别、抽取部分用户、设备等进行公测;

    内测和公测只是开放测试的范围不同,没有严格的界限;

    互联网企业一般会经历的测试过程:

    功能开发完成->技术自测->联调测试->功能/界面测试->性能/兼容性测试->回归测试->正式上线

    产品测试工作内容

    测试工作内容描述:

    编写测试计划、规划详细的测试方案、编写测试用例,测试评审会;

    根据测试计划搭建和维护测试环境;

    执行测试工作,提交测试报告。包括编写用于测试的自动测试脚本,完整地记录测试结果,编写完整的测试报告等相关的技术文档,;

    对测试中发现的问题进行详细分析和准确定位,与开发人员讨论缺陷及解决方案。

    对测试结果进行总结与统计分析,对测试进行跟踪,并提出反馈意见。

    如何与测试人员沟通:

    产品宣讲务必详细介绍每个功能及功能之间的关系,辅助测试人员编写测试用例。产品宣讲的内容包含

    1、产品定位、目标用户、主要的使用场景、解决用户的什么痛点;

    2、核心操作流程、业务逻辑、用户的使用场景、目标之类的;

    3、要告知产品主要是在什么系统、平台运行,有没有调用外部接口等等;

    4、我们本期产品的产品涉及到的功能点是xxx,重点测试的页面和功能如下xxx,前端后端分别是xxx,还有什么疑问吗?

    参加测试用例评审会,逐项评审测试用例,及时补充遗漏的测试环节;

    最后产品经理作为团队的支柱,要在最后进行测试验收,一般是在测试完成后,对产品的主要环节和功能进行一个验收把控,以确定产品达到了上线要求。

    相关文章

      网友评论

        本文标题:产品经理如何把控产品测试环节

        本文链接:https://www.haomeiwen.com/subject/ywpjkctx.html