【读书笔记】软件测试技术大全:第4章 软件工程与软件测试
来源:互联网 发布:淘宝短发模特 编辑:程序博客网 时间:2024/05/18 00:03
4.1 软件工程简介
1. 软件的生命周期:计划--需求分析--设计--编码--测试--运行维护
2. 软件工程研究领域: 人员管理、项目管理、可行性分析、需求分析、系统设计、程序设计与编码、测试、质量管理和配置管理等
3. 软件工程的发展史:
(1).初始阶段;
(2).工程化阶段:瀑布模型的提出:分析-设计-编码-测试-维护;
(3).工厂化阶段:软件过程和软件复用展开研究,提出了面向对象的编程思想;
(4).过程管理阶段:以过程为中心,提出过程能力成熟度模型CMM、个体软件过程PSP、群组软件过程TSP等模型。快速原型法、螺旋模型、喷泉模型对“瀑布式”生命周期模型的补充.
(5).关注个体阶段;
4. 软件过程相关方法和工具:一些常见的SDLC(Software Development Life Cycle 软件开发生命周期)或者ALM(Application Life Management 应用生命周期管理)管理工具有:微软的VSTS(Visual Studio Team Suite)、IBM的JAZZ平台、惠普的BTO解决方案、MicroFocus(原Borland)的Open ALM 解决方案等。
5.软件工程发展新趋势:敏捷开发成为一颗软件工程耀眼的新星:强调“轻量级”的以人为中心的开发方式。
6.软件工程的目的:提高软件的质量和生产率;软件工程项目的成功3要素铁三角:成本、进度、质量;软件测试主要考虑的是质量方面。
4.2 软件开发模式
1.常见的软件开发模式:线性模型、渐进式模型、变换模型;
2.线性模型:软件需求完全确定下采用,典型代表:瀑布模型,前期阶段未发现的错误会传递并扩赛到后面的阶段,很难再回头!其最大缺陷为:可以运行的产品很迟才能被看到:“集成之日就是爆炸之日”。
3.渐进式模型:软件开发初期阶段需求不是很明确时采用,典型代表:螺旋模型,即在瀑布模型的每一个阶段引入严格的需求分析和风险管理;增量开发模型:RUP、敏捷开发都包含增量开发,迭代。
4.变换模型:省略编码和测试阶段,以自动化的程序变换过程代替,主要集中精力在前面的需求分析和建模。
5.软件开发模式的发展:线性模式-渐进模式-模型驱动模式
6.RUP:Rational Unified Process:6项最佳实践:1.迭代的开发软件;2.管理需求;3.应用基于构件的架构;4.为软件建立可视化的模型.;5.不断的验证软件质量;6.控制软件的变更。
7.RUP将测试分为单元测试、集成测试、系统测试、验收测试4大阶段,涵盖软件的可靠性、功能、性能测试,具体分为:
可靠性:完整性测试、结构性测试;
功能:配置测试、功能测试、安装测试、安全测试、容量测试;
性能:基准测试、竞争测试、负载测试、性能曲线测试、强度测试;
8.RUP重型 VS 敏捷过程的 轻量:轻量模型代表:XP(极限编程)模型,其追求的4个价值目标是:沟通、简化、反馈、勇气;遵循13个核心实践:团队合作、规划策略、结对编程、测试驱动开发、重构、简单设计、代码集体所有权、持续集成、客户测试、小型发布、每周40小时工作制、编码规范、隐喻;
4.3 不同软件开发模式下的软件测试
1.流程派:CMM和ISO为代表,强调按既定的流程工作
2.个体派:敏捷开发为代表,强调人在过程中发挥的价值
3.CMM与软件测试
CMM把软件企业的过程管理能力分为5个等级:初始级、可重复级、已定义级、已管理级、优化级。
4.ISO与软件测试:ISO基于PDCA的循环提出了测量、分析和改进的重要性,使测试作为软件测量的重要手段。ISO非常强调缺陷的控制。
5.敏捷开发与软件测试:敏捷测试认为要持续的测试,不断的回归测试,快速的测试,测试人员需要多点借鉴上下文驱动测试的方法,适当采用自动化的方式加快测试的速度。
- 【读书笔记】软件测试技术大全:第4章 软件工程与软件测试
- 软件测试技术大全
- 软件测试-软件工程-第七章
- 软件工程第六章软件测试
- 【读书笔记】软件测试的艺术第4章
- 今天开始学习软件测试技术大全第一天
- 软件工程六:软件测试
- 软件工程之软件测试
- 软件工程之软件测试
- 软件工程之软件测试
- 软件工程之软件测试
- 软件工程 之 软件测试
- 软件工程(软件测试)
- 软件工程之软件测试
- 软件工程之软件测试
- 软件工程-软件测试
- 软件工程之软件测试
- 软件工程之软件测试
- cf475A Bayan Bus
- Ubuntu Manual Install OpenKinect
- 位运算实现加减乘除
- 内联函数和成员函数区别
- 超越lua的神语言
- 【读书笔记】软件测试技术大全:第4章 软件工程与软件测试
- cf475B Strongly Connected City
- OC中并发编程的相关API和面临的挑战(1)
- iOS中常用的四种数据持久化方法简介
- Linux 平台多线程编程实例
- Java内联函数
- git学习——远程分支
- OC中并发编程的相关API和面临的挑战(2)
- Exception