1、首先来回忆软件质量六个质量特性 功用性(Functionality),即软件是否满足了客户功能要求; 可靠性(Reliability),即软件是否能够直在-个稳定的状态上满足可用性; 可用性(Usability),即衡量用户能够使用软件需要多大的努力; 效率(Efficiency),即衡量软件正常运行需要耗费多少物理资源; 可维护性(Maintainability),即衡量对已经完成的软件进行调整需要多大的努力; 可移植性(Portability),即衡量软件是否能够方便地部署到不同的运行环境中; 这些都没有什么可说的,准确精辟! 2、质量管理体系 质量控制是过程控制,绝对不是终点把关!所有从开始我们就要做好质量管理 2.1 前期准备 1)技术和业务知识培训,不断提高大家的技术水平、业务水平; 2)流程化,不断提高规范化水平,把经验和教训固化在流程中。流程化的目的就是希望产品质量不要依赖于人,而是要依赖于流程、制度、规范。其实在此我不是强调流程化,规范化,我一直都在中小公司工作,对于这样公司我不建议太多的流程化的东西,但是也不是完全没有,在一些工作上我们还是需要一些流程的。譬如:Bug管理。有一些比较好的工具:bugzilla,Mantis等,就是流程化,规范的结果。 3)合理架构。无论是技术,还是业务都有一个好的架构,技术上要统一规划,简单易用。业务上模块化,不要功能重复,业务混乱。有些公司讲究自由开放,在架构上比较大胆,我个人还是比较过于开放,还是要讲个合理吧! 2.2 过程监督 在软件开发过程中能尽早发现问题,尽早解决问题。这样代价最少。主要措施有: 1)技术评审。请专家对技术方案、思路进行评审,在编码之前找出可能的问题。可见编码之前的设计方案是非常重要。设计时就埋下的缺陷隐患在后期是很难解决的。设计不好的软件就像体质不好的人,后期再多的调理也收效甚微。 2)测试。测试是查漏补缺的重要手段。这里有各种测试方法,例如静态测试、动态测试、白盒测试、黑盒测试、单元测试、模块测试、系统测试、回归测试、功能测试、性能测试、易用性测试手工测试、自动测试。但是我觉得最重要的是要使所有的测试方法形成一套有效的测试系统。 如何衡量有效?那就是任何新的改动,如果它导致以前正确的行为变成错误,这套系统应该能报告出来。建议的方法是保证每种情况都有对应的测试用例,每种错误也都有对应的测试用例。 3)过程检查。软件开发过程中有一些大家公认的过程或规范能够避免产生一些问题,那这些过程和规范就应该被检查,保证软件开发过程与规范被大家遵守。这主要是QA的工作。 4)代码评审。评审工作主要看代码是否与当初的设计方案一致。这样我们就能最大限制减少问题的产生。这个目前大部分公司都没有做。 3.3、建立备案 任何一个软件都有一些曾在大大小小的问题,任何一个软件或网站运行也许会遇到意想不到的状况。做好一些最坏的打算,避免一些问题出现。譬如:双十一备案,数据易地备份等 作者:牦牛 个人网站:yakyang.com 微信ID:yakyang
|