目录标题
什么是软件
软件是一种逻辑产品,不是客观的实体,具有无形性,它是脑力劳动的结晶,它以程序和文档的形式保存在作为计算机存储器的磁盘和光盘介质上,通过操作计算机才能体现出它的功能和作用。
软件产品的中间过程文档有哪些?
客户需求,产品需求,需求规格,项目计划,版本计划 ,技术选型报告,竞争对手调研报告,概要设计,详细设计,测试计划,测试方案,测试用例,测试报告,缺陷跟踪单
软件由哪些角色完成的?
产品经理(PM):负责市场调查并根据用户的需求,确定开发何种产品,选择何种技术、商业模式等。
项目经理(PM):驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队,进行重大决策。
架构师 / 系统工程师(FD架构师,SE系统架构师):技术专家,经验丰富,负责整个系统的体系架构的设计以及关键模块的设计。
程序员 / 开发人员(PG):设计、编写软件,并修复软件中的缺陷。
测试工程师(TE):负责找出软件产品存在的问题并报告。
软件开发过程是什么?
软件产品从最初构思到公开发行的过程,称为软件开发过程。
最常见的几种模型:
瀑布模式
敏捷开发模型
V W X H
螺旋模式
快速原型
软件开发过程模型的目的
1.保证最终产品满足用户需求
2.提高产品质量,降低产品开发成本
3.保证项目可管理,进度可控制
4.作为测试人员的职责,是在所处项目的开发模式中,尽量运用自身的知识和技能,创造出尽量完善的软件。
软件的生命周期
需求——设计——编码——测试——维护——升级——废弃
质量的定义
人们使用产品,总对产品质量提出一定的要求,而这些要求往往受到使用时间、使用地点、使用对象、社会环境和市场竞争等因素的影响,这些因素变化,会使人们对同一产品提出不同的质量要求。因此,质量不是一个固定不变的概念,它是动态的、变化的、发展的;它随着时间、地点、使用对象的不同而不同,随着社会的发展、技术的进步而不断更新和丰富。
用户对产品的使用要求的满足程度,反映在对产品的性能、经济特性、服务特性、环境特性和心理特性等方面。因此,质量是一个综合的概念。它并不要求技术特性越高越好,而是追求诸如:性能、成本、数量、交货期、服务等因素的最佳组合,即所谓的最适当。
质量:反映实体满足明确或隐含需要能力的特性总和。
内部和外部质量
功能性 可靠性 易用性 效率 维护性 可移植性
功能性(Functionality):
1、适合性(Suitability):解释有没有-提供了相应的功能
2、准确性(accuracy):正确(用户需要的)解释对不对
3、互操作性(Interoperability):产品与产品之间交互数据的能力
4、保密安全性(Security):软件产品保护信息和数据的能力。 如数据库加密,IP,登陆次数限制防Dos 攻击
5、功能性的依从性(Functionality Compliance):国际/国家/行业/企业 标准规范一致性
可靠性(Reliability):
产品在规定的条件下,在规定的时间内完成规定功能的能力
三要素:规定的环境,规定的时间,规定的性能
1、成熟性(Maturity):内部接口防范-防止内部错误导致软件失效的能力
2、容错性(fault tolerance):外部接口防范-软件出现故障,自我处理能力
3、易恢复性(recoverability):失效情况下的恢复能力
4、可靠性的依从性(Reliability Compliance)国际/国家/行业/企业 标准规范一致性
易用性(Usability):
在指定使用条件下,产品被理解、学习、使用和吸引用户的能力。
1、易理解性(Understandability)
2、易学性(Learnability)
3、易操作性(operability)
4、吸引性(attractiveness)
5、易用性的依从性(Usability compliance):国际/国家/行业/企业 标准规范一致性
效率性(efficiency):
在规定条件下,相对于所用资源的数量,软件产品可提供适当性能的能力
1、时间特性(time behavior):平均事务响应时间,吞吐率,
2、资源利用性(resource utilization):CPU 内存 磁盘 IO 网络带宽 队列 共享内存
3、效率依从性(efficiency compliance):
可维护性(maintainability):
“四规”, 在规定条件下,规定的时间内,使用规定的工具或方法修复规定功能的能力
1、易分析性(analyzability): 定位成本-分析定位问题的难易程度
2、易改变性(changeability):降低修改缺陷的成本-软件产品使指定的修改可以被实现的能力
3、稳定性(stability):防止意外修改导致程序失效
4、易测试性(testability):降低发现缺陷的成本–使已修改软件能被确认的能力
5、维护性的依从性(maintainability compliance)
可移植性(Portability):
从一种环境迁移到另一种环境的能力
1、适应性(adaptability):适应不同平台
2、易安装性(installability):被安装的能力
3、共存性(co-existence):兼容性
4、易替换性(replaceability)
5、可移植性的依从性:(portability compliance)
使用质量
使用质量的质量模型
使用质量的属性分为四个特性:有效性、生产率、安全性、满意度
1、有效性:软件产品在指定的使用周境下,使用户能达到与准确性和完备性相关的规定目标的能力
2、生产率:在指定的使用环境下,使用户为达到有效性而消耗适当数量的资源的能力
3、安全性:在指定使用周境下,达到对人类、业务、软件、财产或环境造成损害的可接受的风险级别的能力
4、满意度:使用户满意的能力。
什么是QA 和QC?
打个不恰当的比方, QC是警察,QA是法官,QC只要把违反法律的抓过来就可以了,并不能防止别人犯罪和给别人最终定罪,而法官就是制订法律来预防犯罪,依据法律宣判处置结 果。总结说明一下
QC:主要是事后的质量检验类活动为主,默认错误是允许的。期望发现并选出错误。
QA:主要是事先的质量保证类活动,以预防为主。期望降低错误的发生几率
QA和QC的区别
QA偏重于质量管理体系的建立和维护,客户和认证机构质量体系审核工作,质量培训工作等;QC主要集中在质量检验和控制方面。
QA的工作涉及公司的全局,各个相关职能,覆盖面比较宽广,而QC主要集中在产品质量检查方面,只是质量工作的其中一个方面。
什么是CMMI?
Capability Maturity Model Integration (能力成熟度模型综合)
它综合了以下几方面:
System engineering 系统工程
Software engineering 软件工程
Integrated Product and Process Development集成产品和过程开发
Supplier Sourcing 服务资源
该模型提供一套可供公众使用的准则;这些准则描述那些成功地实施了过程改进的组织的特性。
该模型用“软件能力成熟度”来衡量这种软件综合能力
CMMI等级
在模型中,所有软件组织的软件能力成熟度划分为5个等级—第1到第5级。数字越大,成熟度越高。高成熟度等级代表比较强的综合软件能力。
5个成熟度等级分别为:
第1级:初始级
第2级:受管理级
第3级:已定义级
第4级:定量管理级
第5级:持续优化级