`

功能、模块质量和非功能性测试

阅读更多

但凡面向终端用户的产品,产品做大了以后,几乎都要涉及到基线能力和定制能力的划分。任何一个优秀的产品,都要经历从相对无序到有序的逐步成熟的过程。产品的发展总是要经历不断的阵痛,可是时间长了,我还是总免不了思考:好吧,就算产品最初匆忙和艰辛的时期已经过去,就算现在基线能力的建设已经迈入正轨,可是为什么我们的直接客户,定制团队还是那么辛苦?

 

有多少功能是真正值得去完成、真正被用户所需要的?

据一位定制的兄弟说,其实这个比例只有8%,我相信数据也许是不准确的,但不管数据的有效性有多少,至少,大家都在问,产品的定位是一个厚实的门户,有太多的功能需要完成,可是真正给客户使用到了多少呢?也许没有一位普通的开发人员可以估摸出个一二。这是一个产品做大以后的问题,我们离最客户的核心价值越来越远,我们不知道客户真正需要什么,我们只知道SE的规格,SE了解到一线的需求,一线才去倾听客户的声音。既然如此,其中会有多少信息走样?客户需要一个小小的草莓蛋糕,一线传达下来也许是一个大大的苹果派,到了SE那里,苹果派变成了一大盒各种口味的奶油蛋挞,最后,我们开发则做出了整整一冰箱的牛奶冰激凌。

 

功能不该有优先级吗?

我们的功能在开发和测试的眼中,大多是一视同仁的,开发要保证每一个功能的准确性,和一定程度上的可用性;测试要保证覆盖到所有的功能点。可是客户很单纯,他们不这么认为,他们要使用网站,这意味着网站中有他们所关心的核心价值,这也是用户量保证的最简单的原动力。比如说,在迅雷上可以看到免费的电影,在优酷上可以看到最新的视频新闻,在人人网上可以建设自己的主页,和朋友交流……那么这些功能,就是相应这些产品最有存在价值的地方,这些功能,无论从质量还是进度上,应当被优先保证。回过头说,我们的产品,核心竞争力是什么?如果这个思路不和辛苦工作的开发、测试们理清楚,不和努力赶工期、拼进度的基线、定制兄弟姐妹们达成一致,我们怎么能保证产品做下去的方向,走在最大限度地满足客户所需的道路上?

 

模块质量应该怎么保证?

我一直很担心,对于质量的认识,有许多兄弟姐妹似乎陷入了这样的思考中:我是开发,为了提高模块质量,那么我首要提高代码质量,我要仔细地过转测试的CheckList,我要对每个问题单仔细地修改、认真地审核;我是测试,为了提高模块质量,那么我要仔细过测试用例,我要认真检查接口调用、业务逻辑是否正确,给每个提出的问题单写全面、写规范。

呵呵,大家都是好同志,可悲剧的事情就这样发生了。首先,这样的质量是客户需要的吗?客户最看重的质量,兴许和我们最看重的质量相距甚远。比如,如果我是视频用户的客户,那么这个网站对我的核心价值,就是可以在上面看视频,那么我最迫切要求的质量,大概是视频的种类、播放视频的流畅度和清晰度。也许我们应该做一做这样的分析和思考。

其次,好的软件是设计出来的,好的质量首先也是被设计出来的,而不是靠大面积问题单改出来的!迭代回溯会议上,需要见到更多对问题数量的回溯。在SE疲于奔命梳理繁多的需求的时候,开发和测试理应站出来和SE、UCD,甚至一线的人扯一扯,毕竟从局部层面上看,只有我们才是最了解这一小块产品实现的人,也是最该被赋予设计上的话语权的人。

 

非功能性测试有多重要?

所有的测试用例,都是面对功能性测试而言的,对于自动化测试更是如此,对于非功能性测试,覆盖率只有零。可是,对于用户来说,能引起他兴趣的功能往往就只有那么一个或几个,能留住他的,却要靠大量用户体验的改善和满足。早些时候看到一则讲腾讯产品的胶片,QQ影音在诞生阶段,功能做得很简单,那么它凭借什么去和那么多的播放器产品竞争?我所知道的是,它的用户体验一直站在一个核心的地位,比如胶片中所述的一个例子:在全屏播放的情况下,用户点击左键会暂停播放,可是当用户先点击右键,把右键菜单调出来的情况下,屏幕上点击左键,却是取消右键菜单,同时并不暂停播放。正是这样细致入微的考虑,把产品做实做细,产品才有了可靠的用户群。

我们以前是做彩铃的,正如一位主管所说,彩铃产品最直接是面向运营商的,彩铃有什么问题,也许运营商会抱怨,乃至会投诉,但兴许还是会用我们的产品,因为由于种种原因,他并不一定有很多替代品可供选择。但是做门户,做直接和终端用户交互的产品就不一样了,用户是没有耐心的,遇到糟糕的用户体验,会丢掉信任,没有怜悯也没有太多机会,也许用户就这样流失掉了。

 

产品质量的定位。

产品质量当然是越优秀越好。可惜的是,各方面都想得越完美的东西,越难以实现。尤其当项目进度压力袭来的时候,在功能没法砍掉的情况下,必然导致质量的牺牲,那么我们都现实一点,如果质量不可避免地被牺牲,哪一些模块的质量该被优先保证?质量应该被保证到哪个不同的级别上?

呵呵,其中能够说水分最大的、最容易被进度压垮的,不就是非功能性的软件质量吗?比如,用户体验和性能。

 

让合适的人,做合适的事。

这个扯得有点远了,也许它是优秀的管理者在思考的东西。俗话说,人尽其能,物尽其用。产品中少数模块已经渐渐培养起相应的长期耕耘的田主、少数技能的专家,希望后续这样的人员和角色能够不断丰富,真正在自己的领地上具备权威和话语权,一起把产品做好。

 

文章系本人原创,转载请注明作者和出处

分享到:
评论

相关推荐

    测试计划<IT软件>

    列出组装测试和确认测试中的每一项测试内容的名称标识符、这些测试的进度安排以及这些测试的内容和目的,例如模块功能测试、接口正确性测试、数据文卷存取的测试、运行时间的测试、设计约束和极限的测试等。...

    测试用例 测试阶段3 模板汇总1500条(功能、性能、兼容性).zip

    测试用例实例(含:功能测试用例、性能测试用例、兼容性测试用例)目 录用例编号项目名称模块名称WorkEvaluate模块项目承担部门研发中心-质量管理部用例作者

    软件测试技术ppt版

    所谓受控制的条件应该包括正常条件和非正常条件。应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是“探测”。    软件质量  高质量的软件是...

    基于Java的两个通用安全模块的设计与实现的毕业设计,分为两个模块:加密模块和身份验证模块

    此外,将使用JUnit测试框架和SonarQube代码质量工具来测试和评估模块的功能和性能。 这个毕设旨在为Java开发人员提供通用的安全模块,以帮助他们保护数据和应用程序免受恶意攻击和未经授权的访问。身份验证模块是...

    集成测试计划模板

    如,需要集成的各功能模块的描述。】 参考文档 【描述本次集成测试所需要参考的文档。】 测试约束 【描述本次集成测试所要遵循的准则及条件约束等。】 测试进出条件 进入条件 【描述集成测试的测试依据和满足该...

    測試工作流程、测试角色、报告过程

    测试的目标: 1. 确定产品符合客户的需求,确保产品不存在需求错误; 2. 验证产品质量,确保产品不存在质量bug;...7. 可靠性测试:测试系统的的运行的稳定性、故障的处理和恢复能力; 测试的工作流程:

    【中级软件设计师】上午题12-软件工程(2):单元测试、黑盒测试、白盒测试、软件运行与维护

    单元测试、黑盒测试、白盒测试和软件运行与维护是软件开发过程中重要的阶段,它们相互交织,起到不同的作用。单元测试是针对代码中的独立单元(如函数、模块)进行测试,验证其功能正确性;黑盒测试是基于需求和功能...

    软件测试规范

    1.模块测试 .............................................................................................................................................. 6 2.子系统测试 ..................................

    网站测试流程

    规范基于网站的系统测试,区别于传统的软件测试,本文对网站测试的流程与规范进行全面概述,以利于网站开发工作的质量和开发时间,帮助测试人员快速了解测试流程。...还有用户的安全性和可用性测试。

    软件测试教学文档 java test

    黑盒测试:不基于内部设计和代码的任何知识,而是基于需求和功能性。  白盒测试:基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。  单元测试:最微小规模的测试;以测试某个功能或...

    测试工程师面试题以及答案(一)

    主要有:功能测试、性能测试、安全测试、兼容性测试、回归测试、压力测试、负载测试、稳定性测试等。 3. 什么是黑盒测试和白盒测试? 黑盒测试(Black-box testing)是不考虑软件内部结构和实现细节的测试方法,...

    软件测试是软件开发过程中的关键一环.docx

    按照测试目的划分,软件测试可以分为功能测试、性能测试、安全测试和兼容性测试等。功能测试验证软件是否按照需求规格说明书执行各项功能;性能测试评估软件在不同负载下的响应时间和资源消耗;安全测试检查软件是否...

    单元测试报告模板

    单元测试报告 版本:V1.3 ...【结合上述数据和信息,对本次测试的项目、产品的本身质量进行分析、评价和总结】 测试结论  【描述测试是否达到测试计划的目的,是否满足单元测试的结束条件。】

    单元测试计划模板

    【此处描述根据项目的具体特征所确定的代码走查及单元测试的策略(如:代码走查在本项目重点关注的地方、测试可行性分析,测试方法确定,测试类型选择)】 类型 【此处描述单元测试选择的测试类型,一般建议有...

    软件测试教程.docx

    学习软件测试是提高软件质量和可靠性的关键一环。以下是一些学习软件测试的常见技术和教程资源: ### 1. 学习基础概念: - **软件测试概述**:了解软件测试的基本概念、目的和方法。 - **测试类型**:包括单元测试...

    软件测试经典面试题 (超实用)

    1、什么是兼容性测试?兼容性测试侧重哪些方面? 5 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题? 5 3、测试的策略有哪些? 5 4、正交表测试用例设计方法的特点是...

    基于SpringBoot的公司厨电产品质量管理系统的设计与实现

    然后对系统建设进行了经济效益、技术开发与社会操作等方面的可行性分析,描述了用户角色构成,通过功能用例图描述了系统多层次功能构成,描述了业务流程实施步骤,阐述了系统在性能、安全等方面的非功能性需求。...

    论文研究-轨道车辆多功能车辆总线通信控制器及其配套产品化测试、实时监控装置的设计实现.pdf

    采用可编程硬件与ARM嵌入式处理器进行软硬件协同处理,并在整个设计过程中引入了面向可靠性设计方法,使用国内外最新软硬件测试和验证技术保证软硬件设计质量,保障设备能够长期有效运行。同时,由于采用了模块化...

    软件测试技术与实践培训班

    熟练使用 robot, loadruuner, jmeter等测试测试工具模,熟悉 RUP,CMM软件工程管理规范和 ISO9000质量管理体系。 王斌 IBM自动化测试专家、多年的软件开发和测试经验,高级软件开发工程师和高级测试工程师;精通 ...

    《有效软件测试》-软件测试50条建议

    5. 可以发现有意义的bug, 提高测试质量 二, 在需求阶段测试的工作。 1. 和需求人员一起参与分析需求,使得测试能深层次的理解需求。 2. 如果需求已形成,测试需要用审阅的方式进行,主要看是否有功能遗漏,是否有...

Global site tag (gtag.js) - Google Analytics