但凡面向终端用户的产品,产品做大了以后,几乎都要涉及到基线能力和定制能力的划分。任何一个优秀的产品,都要经历从相对无序到有序的逐步成熟的过程。产品的发展总是要经历不断的阵痛,可是时间长了,我还是总免不了思考:好吧,就算产品最初匆忙和艰辛的时期已经过去,就算现在基线能力的建设已经迈入正轨,可是为什么我们的直接客户,定制团队还是那么辛苦?
有多少功能是真正值得去完成、真正被用户所需要的?
据一位定制的兄弟说,其实这个比例只有8%,我相信数据也许是不准确的,但不管数据的有效性有多少,至少,大家都在问,产品的定位是一个厚实的门户,有太多的功能需要完成,可是真正给客户使用到了多少呢?也许没有一位普通的开发人员可以估摸出个一二。这是一个产品做大以后的问题,我们离最客户的核心价值越来越远,我们不知道客户真正需要什么,我们只知道SE的规格,SE了解到一线的需求,一线才去倾听客户的声音。既然如此,其中会有多少信息走样?客户需要一个小小的草莓蛋糕,一线传达下来也许是一个大大的苹果派,到了SE那里,苹果派变成了一大盒各种口味的奶油蛋挞,最后,我们开发则做出了整整一冰箱的牛奶冰激凌。
功能不该有优先级吗?
我们的功能在开发和测试的眼中,大多是一视同仁的,开发要保证每一个功能的准确性,和一定程度上的可用性;测试要保证覆盖到所有的功能点。可是客户很单纯,他们不这么认为,他们要使用网站,这意味着网站中有他们所关心的核心价值,这也是用户量保证的最简单的原动力。比如说,在迅雷上可以看到免费的电影,在优酷上可以看到最新的视频新闻,在人人网上可以建设自己的主页,和朋友交流……那么这些功能,就是相应这些产品最有存在价值的地方,这些功能,无论从质量还是进度上,应当被优先保证。回过头说,我们的产品,核心竞争力是什么?如果这个思路不和辛苦工作的开发、测试们理清楚,不和努力赶工期、拼进度的基线、定制兄弟姐妹们达成一致,我们怎么能保证产品做下去的方向,走在最大限度地满足客户所需的道路上?
模块质量应该怎么保证?
我一直很担心,对于质量的认识,有许多兄弟姐妹似乎陷入了这样的思考中:我是开发,为了提高模块质量,那么我首要提高代码质量,我要仔细地过转测试的CheckList,我要对每个问题单仔细地修改、认真地审核;我是测试,为了提高模块质量,那么我要仔细过测试用例,我要认真检查接口调用、业务逻辑是否正确,给每个提出的问题单写全面、写规范。
呵呵,大家都是好同志,可悲剧的事情就这样发生了。首先,这样的质量是客户需要的吗?客户最看重的质量,兴许和我们最看重的质量相距甚远。比如,如果我是视频用户的客户,那么这个网站对我的核心价值,就是可以在上面看视频,那么我最迫切要求的质量,大概是视频的种类、播放视频的流畅度和清晰度。也许我们应该做一做这样的分析和思考。
其次,好的软件是设计出来的,好的质量首先也是被设计出来的,而不是靠大面积问题单改出来的!迭代回溯会议上,需要见到更多对问题数量的回溯。在SE疲于奔命梳理繁多的需求的时候,开发和测试理应站出来和SE、UCD,甚至一线的人扯一扯,毕竟从局部层面上看,只有我们才是最了解这一小块产品实现的人,也是最该被赋予设计上的话语权的人。
非功能性测试有多重要?
所有的测试用例,都是面对功能性测试而言的,对于自动化测试更是如此,对于非功能性测试,覆盖率只有零。可是,对于用户来说,能引起他兴趣的功能往往就只有那么一个或几个,能留住他的,却要靠大量用户体验的改善和满足。早些时候看到一则讲腾讯产品的胶片,QQ影音在诞生阶段,功能做得很简单,那么它凭借什么去和那么多的播放器产品竞争?我所知道的是,它的用户体验一直站在一个核心的地位,比如胶片中所述的一个例子:在全屏播放的情况下,用户点击左键会暂停播放,可是当用户先点击右键,把右键菜单调出来的情况下,屏幕上点击左键,却是取消右键菜单,同时并不暂停播放。正是这样细致入微的考虑,把产品做实做细,产品才有了可靠的用户群。
我们以前是做彩铃的,正如一位主管所说,彩铃产品最直接是面向运营商的,彩铃有什么问题,也许运营商会抱怨,乃至会投诉,但兴许还是会用我们的产品,因为由于种种原因,他并不一定有很多替代品可供选择。但是做门户,做直接和终端用户交互的产品就不一样了,用户是没有耐心的,遇到糟糕的用户体验,会丢掉信任,没有怜悯也没有太多机会,也许用户就这样流失掉了。
产品质量的定位。
产品质量当然是越优秀越好。可惜的是,各方面都想得越完美的东西,越难以实现。尤其当项目进度压力袭来的时候,在功能没法砍掉的情况下,必然导致质量的牺牲,那么我们都现实一点,如果质量不可避免地被牺牲,哪一些模块的质量该被优先保证?质量应该被保证到哪个不同的级别上?
呵呵,其中能够说水分最大的、最容易被进度压垮的,不就是非功能性的软件质量吗?比如,用户体验和性能。
让合适的人,做合适的事。
这个扯得有点远了,也许它是优秀的管理者在思考的东西。俗话说,人尽其能,物尽其用。产品中少数模块已经渐渐培养起相应的长期耕耘的田主、少数技能的专家,希望后续这样的人员和角色能够不断丰富,真正在自己的领地上具备权威和话语权,一起把产品做好。
文章系本人原创,转载请注明作者和出处
分享到:
相关推荐
尤其在黑盒测试中,主要目标是检验软件的功能性和用户体验,找出可能存在的错误和缺陷。本文将深入探讨软件测试功能列表的作用、内容及应用场景,帮助读者理解和运用这一关键工具。 首先,我们要明白什么是黑盒测试...
在软件测试领域,功能性测试用例是验证软件功能正确性的核心工具。本文将详细解析如何编写全面、有效的功能性测试用例,并提供相关注意事项。 首先,测试用例的来源至关重要。通常,测试用例的编制基于以下几个主要...
软件测试可以分为黑盒测试、白盒测试和灰盒测试等几种类型,每种测试类型都有其特点和应用场景。 二、测试文档的结构和内容 测试文档是软件测试中的一份重要文件,它记录了测试的详细信息,包括测试目的、测试范围...
单元测试和模块测试是软件开发过程中的重要环节,它们确保代码的质量和可靠性。本文将深入探讨这两种测试工具及其在软件工程中的应用。 首先,我们来理解单元测试的概念。单元测试是对软件中的最小可测试单元进行...
软件模块测试报告的目的是为了记录软件模块的测试结果和结论,以便于软件开发团队和项目管理者了解软件模块的质量和可靠性。软件模块测试报告的目的是为了确保软件模块达到预期的质量和可靠性,满足用户的需求。 ...
通信设备通常由多个功能模块组成,如信号处理模块、协议处理模块、接口模块等。这些模块协同工作以实现数据传输、信号编码解码等功能。通过模块测试,我们可以: 1. 验证模块的独立功能:在系统集成前,先确保每个...
以文档中的“LinkWorks_WorkEvaluate”为例,该测试用例针对的是LinkWorks项目的WorkEvaluate模块,关注点在于验证WorkEvaluate模块的功能性和业务规则。具体包括: - **测试类型:** 黑盒测试。 - **测试过程说明:...
- 功能性测试:验证每个功能是否按照预期工作。 - 兼容性测试:在不同的设备、操作系统版本、网络环境和屏幕尺寸下运行应用,确保其兼容性。 - 性能测试:测试应用的启动时间、响应速度、内存占用等,确保良好的用户...
这些测试用例展示了项目管理模块在数据验证和查询功能上的表现,确保了数据的准确性和查询的有效性。 **文档管理模块测试** 文档管理模块测试主要关注文件上传的功能: 1. 没有选择路径上传文件,系统应提示路径...
该文件介绍了VoLTE功能与性能的测试方法,旨在确保5G模块的通信质量和性能。 测试等级: 该文件规定了测试等级的定义和分类,包括预期结果的测试结果判断准则和测试用例的测试结果判断准则。测试等级分为三级:级别...
总的来说,系统功能模块设计是软件开发的核心环节,它直接影响到软件的质量和维护成本。因此,开发者需要深入理解设计原则,熟练掌握设计方法,并通过详尽的文档记录来确保设计的有效沟通和执行。只有这样,才能构建...
首先,我们要明确“7000模块”可能指的是特定的硬件接口、系统组件或者功能模块。在软件工程中,模块通常代表程序设计中的独立部分,具有清晰的边界和特定的功能。7000模块可能是专为某个特定设备或系统设计的,比如...
这份文档对中国电信在5G模块测试过程中的标准和方法进行了全面阐述,旨在确保5G通信设备的质量与性能达到预期水平。 1. 范围 该测试方法涵盖了5G模块在数据传输性能方面的各项测试,包括但不限于峰值数据速率、连接...
在Spring Boot应用中,多模块架构常常用于组织复杂的项目结构,将不同的功能模块进行分离,以便于管理和维护。Service层是业务逻辑的核心,对其进行单元测试是确保代码质量、提高开发效率的重要步骤。本文将深入探讨...