基础理论知识(1)
软件测试=软件(软件工程+软件产品+软件质量)+测试(测试+缺陷)
软件生命周期:
1.计划–项目计划、产品计划–项目经理–项目计划书
2.需求分析–市场调研(大众),客户需求分析(针对性、专业性)–需求分析人员 / 产品人员–软件需求规格说明书SRS(Software Requirement Specification)/ 产品需求文档PRD (Product Requirement Document)
3.设计–产品设计人员、产品架构师–概要设计说明书HLD(High Level Document)–详细设计说明书LLD(Low Level Document)
4.编码–开发人员
5.测试-测试人员
6.上线、运行维护–运维人员–软件产品上线部署的操作文档
六大测试类型:功能(标准:SRS,PRD,关注:软件是否可用)、性能(是否高效运行)、可用(是否好用,满足用户习惯,是否美观,吸引用户)、可靠(软件运行是否稳定可靠)、兼容(是否支持多平台)、安全性测试(是否存在安全性漏洞)。
软件质量模型的8大特性:1.维护性 2.操作性 3.移植性 4.安全性 5. 兼容性 6.功能适用性 7.可靠性 8.性能效率
共同特征:交互性
缺陷类型:1.遗漏 2.错误 3.额外实现 4.优化改进
研发模型:
1.大爆炸模型:无组织,无纪律,没有需求,没有测试,想怎么来怎么来,自己研发自己测试,最终上线。
2.边写边改模型:没有正规需求文档,需求经常设计变更,开发为了适应变更,不断的进行代码重构。
3.瀑布模型:依据软件的生命周期,串行执行,前一个阶段的输出作为后一个阶段的输入。缺点:研发周期太长。
4.螺旋模型:在瀑布模型的基础上,增加了制定目标,制定阶段方案。评估约束限制,评估风险,准备应对风险的方案。特点即是优点,缺点:人员架构复杂,沟通成本增加,工作复杂性高,投入成本高,研发周期长。
5.迭代模型:每一次迭代都是一个完整的软件生命周期,产品分块增量研发,砌墙模式。
6.敏捷开发模式:每天制定目标,每天总结进度,风险评估,和客户沟通紧密,保证需求的正确性,但沟通成本高,同时对开发人员经验要求高。