一、软件工程基础
A、基本概念
1.软件的分类
根据应用目标不同分为:应用软件、系统软件和支撑软件。
2.软件的生命周期
软件定义、软件开发、软件运行维护三个阶段。
3.软件工程
就是试图用工程、科学和数学的原理与方法研制、维护计算机软件相关技术及管理方法。
4.结构化分析方法
常用工具:数据流图、数据字典、结构化语句、判定表和判定树等工具。
5.结构化设计方法
模块的独立性评判标准有内聚性和耦合性两个。其中内聚性(模块内部各个元素彼此结合的紧密程度)由弱到强排列顺序为:偶然内聚--逻辑内聚--时间内聚--过程内聚--通信内聚--顺序内聚--功能内聚;耦合性(模块间互相连接的紧密程序)的耦合度有高到低的排列顺序为:内容耦合--公共耦合--外部耦合--控制耦合--标记耦合--数据耦合--非直接耦合。
6.结构化设计原则
包括模块化、自定向下分解、逐步求精。
B.软件测试
利用测试工具按照测试方案和流程对产品进行功能测试和性能测试,甚至根据需求编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
1.软件测试的原则
(1)软件开发人员应避免测试自己的程序;
(2)应尽早、不断地进行软件测试;
(3)对测试用例要持正确态度;
(4)严格执行测试计划,排除测试的随意性,以免发生漏测和重复无效的工作;
(5)应对每一个测试结果进行全面检查;
(6)妥善保存测试用例、测试计划、测试报告、最终分析报告,以备回归测试和维护。
2.软件测试分类
(1)从软件内部结构和具体实现角度划分为:白盒测试和黑盒测试。
白盒测试这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试、输入输出是否正常等的测试。
(2)从执行程度角度划分为:静态测试和动态测试。
静态测试是指不运行被测程序本身,发挥人的逻辑思维优势,进行代码检查、静态结构等的分析。
动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。
(3)从软件开发进程角度分为:单元测试、集成测试、确认测试、验收测试、系统测试。
单元测试:测试各个小模块。
集成测试:各个小模块组装起来测试。
确认测试:验证软件性能和其他性能是否符合用户要求。
系统测试:实际运行环境下的测试。
验收测试:让用户将其用于软件既定功能和任务进行的测试。
3.测试相关方法
黑盒测试用例设计方法包括(1)等价类划分法、(2)边界值分析法、(3)错误推测法、(4)