一、什么是软件
1.软件的定义
软件=程序+数据+文档
程序:是能够完成预定功能和性能的可执行性的指令序列
数据:是使程序能够适当地处理信息的数据结构,输入与输出,数据库等
文档:是开发,使用和维护程序所需要的图文资料,需求分析,概要设计,详细设计,等各阶段文档,还包括用户文档
2.软件的分类
按层次:系统软件、支持软件、应用软件
按使用范围:单机版软件、分布式软件(C/S结构、B/S结构)
3.软件的特性
1.是一种逻辑实体,具有抽象性
2.软件成品的成本主要在开发和研制
3.在使用过程中没有磨损,老化的问题
4.对硬件和环境有依赖性,导致软件移植的问题
5.至今尚未摆脱手工作坊式研发,生产效率低
6.软件技术的发展落后于需求,研发成本相当昂贵
二、软件危机与软件工程
1.软件危机
定义:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题
包含两方面:
1.如何开发软件,以满足不断增长,日益复杂的需求;
2.如何维护数量不断膨胀的软件产品
2.软件工程
是一门研究怎么样系统化,规范化,数量化等工程原则和方法去进行如阿健的研发和维护的学科
包含两方面:
1.软件研发技术:软件研发方法学,软件工具和软件工程环境;
2.软件项目管理:软件度量,项目估算,进度控制,人员组织,设置管理,项目计划等
三、软件测试的产生、概念和意义
1.软件测试产生的背景
1.程序规模的爆炸式增长;
2.在程序员和用户需求间寻找平衡点
2.软件测试的定义
使用人工或自动手段,来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别
一般包含:制订测试计划;设计侧式用例;实施测试;提交缺陷报告;测试总结
3.软件测试的意义
1.从工作量上来说,解放程序员和售后服务人员
2.从软件测试过程的角度来说,它推动了软件工程的发展,使软件的质量得到了阶段性提升
四、软件测试的目的和原则
1.软件测试的目的
1.确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明
2.确保产品是健壮的和适应用户环境的
2.软件测试的原则
1.应尽早执行;
2.应贯穿与整个软件生命周期;
3.应追溯需求;
4.应由第三方来构造;
5.遵循Good-enough原则;
6.确定预期输出或结果;
7.彻底检查每个测试结果;
8.充分注意测试中的群集现象