目录
一、软件
1、软件的概念
软件是指计算机系统中与硬件相互依存的另一部分,包括程序、文档、数据、服务的完整结合。
2、软件的特点
1)软件是一种逻辑实体
- 具有抽象性
- 保存在存储器中
- 无法看到软件的本身形态
2)软件的生产与硬件的生产不同
- 通过人们的智力活动,把知识与技术转化成信息的一种产品
- 软件研制成功后,可以大量复制同一内容的副本
- 对软件的质量控制,着重在软件研发方面下工夫
3)软件的分类
按照功能划分
- 系统软件:linux、Dos、Windows7、ios、Anddroid等
- 支持软件:Visual Studio 2005、MyEclispe等
- 应用软件:火车票售票管理系统、微信等
按照软件特点划分
- 业务管理软件(CRM、MIS、ERP等)
- 科学计算软件(Ansys、Matlab等)
- 嵌入式软件(CRM、MIS等)
- 桌面软件(时间日历。桌面闹钟等)
- 个人计算机软件(office 2003 、Photoshop等)
- 人工智能软件(讯飞语音输入法、指纹识别等)
按软件布署结构划分
- 单机版软件 (记事本、写字板、Word等)
- 分布式软件 (MSN、QQ即时通讯工具、飞信等)
二、软件测试
1)软件测试的概念
- Glenford J.Myers ,1979年
软件测试是为了发现错误而运行程序的过程 - IEEE , 1983
使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别
2)软件测试的目的
- 测试是程序的执行过程,目的在于发现先错误
- 一个好的测试用例在于能发现至今未发现的错误
- 一个成功的测试是发现了至今未发现的错误的测试
三、软件开发模型(常见 必了解)
1)瀑布模型
瀑布模型的缺点
- 由于开发模型是线性的,增加了开发的风险
- 早期的错误可能要等到开发后期的阶段才能发现
2)原型模型
- 实现客户与系统的交互
- 进一步细化待开发软件需求
- 开发人员可以确定客户的真正需求是什么
3)螺旋模型
- 螺旋模型缺点:很难让用户确信这种演化方法的结果是可以控制的.建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求.
4)敏捷开发模型
敏捷开发模型特征
- 短周期开发
- 增量开发
- 使用由程序员和测试人员编写的自动化测试来监控开发速度
- 通过口头沟通、测试和源代码来交流系统的结构和意图
- 编写代码之前先写测试代码,也叫做测试先行
敏捷开发模型的特点
- 拥抱变化
- 持续不断地|及早交付|有价值的软件
- 敏捷开发的核心是 迭代
敏捷宣言 - 个体与交互胜过过程和工具
- 可用的软件胜过完备的文档
- 客户协作胜过合作谈判
- 响应变化胜过遵循计划
Scrum模型流程
用户故事
看板
燃尽图
5)W模型(双V模型)
- W模型由两个V字模型组成,分别代表测试与开发阶段,图中明确表示出了测试与开发的并行关系
- W模型特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的
- W模型优点:有利于尽早地全面的发现问题
- W模型缺点:测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作
- 无法支持敏捷开发模式