1.软件开发过程模型
瀑布模型:严格按照线性的、按阶段顺序逐步细化的开发模式
螺旋模型:基本思路时依据前一版本的结果构造新的版本,需要经历多次需求分析、设计、实现、测试这组顺序活动,不断重复迭代的过程形成了一个螺旋上升的路径(整个过程需要迭代多少次取决于具体情况)
优点:能在迭代过程中收集到各种度量的数据
缺点:需要投入更多的人力来更细致的管理其过程,主要因为每次迭代完必须保证其文档的一致性
增量模型:每次迭代只是在前一次的基础上增加少量功能,适用于项目后期
快速原型模型:首先快速确定软件系统的基本要求,尽快实现一个可运行的、功能简单的原型系统,然后对原型系统不断完善
优点:支持用的方法,是用户在系统生存周期的设计阶段起到积极作用,减少系统开发的风险,适用于大型项目的开发
敏捷模型:迭代时软件增量开发过程,就是将一个大的项目分为多个互相联系但也可以独立运行的小项目,然后分别完成,在此过程中,软件一直处于可使用状态。强调的是尽量早的将尽量小的可用的功能更交付使用
优点:适用于小块工作,能够完全适用用户环境
2.软件产生错误的原因:
软件结构复杂,对其内部原理不理解
交流不够或者交流上有误解
程序设计错误
需求变化
时间压力
代码文档缺乏
3.软件质量特征:
内部特征:可维护性、可移植性、可重用性、可读性、可测试性、可理解性
外部特征:正确性、可用性、效率、可靠性、完整性(防止非法访问能力)、适应性(在其他环境下不用修改就可使用 )、坚固性(无效输入或压力环境下仍能继续使用)
4.软件测试的工作内容:
以较少的时间、人力、用例找出软件中潜在的各种错误和缺陷,以确保软件质量。IEEE提出的软件测试定义明确提出了软件测试以检测是否满足需求为目标
5.软件测试模型
v模型、w模型、h模型、x模型总结
6.软件测试分类
1.按方式分:静态测试、动态测试
2.按方法分:白盒(已知软件的实现流程,基于代码的测试)、黑盒(基于系统应完成的功能进行测试)、灰盒测试(介于白盒和黑盒之间)
3.按过程分类:单元测试、集成测试(主要测模块之间的数据传输是否正确,模块继承后接口功能与设计需求是否一致)、系统测试(将软件、硬件、数据等各种元素结合在一起进行的一系列测试,该测试是从用户角度来看待系统)、验收测试(主要检测软件在常规条件下的使用状况,主要采用黑盒测试)
4.按测试目的分:功能测试、接口测试、性能测试、压力测试、界面测试、安全测试(测试系统防止非法入侵的能力)、兼容性测试
7.软件测试流程:
制定测试计划、设计测试(设计测试用例和测试过程)、测试准备、测试环境的建立、执行测试、评估测试、总结测试
8.软件测试人员的基本素质:
1.技能要求:
1》业务知识
2》计算机专业知识:编码能力、计算机网络、数据库、操作系统等
3》测试专业知识:测试方法、测试流程管理、缺陷管理、自动化等技术
4》用户知识:站在用户角度考虑问题,了解用户心里模型、操作习惯等
2.素质要求;
1》要有交钱的责任心,要专心、细心、耐心
2》具有较强的沟通能力
3》团队合作精神
9.白盒测试基本方法;
逻辑覆盖、基本路径法、程序插桩
10.黑盒测试基本方法:
等价类(有效等价类:根据程序规格说明,由有意义的、合理的输入数据构成,无效等价类:无意义的输入数据构成)、边界值、因果图、错误推测法、判定表、场景法等
11.测试用例应包含哪些内容:
用例编号、测试标题、测试项、测试环境要求、特殊要求、测试技术、测试输入说明、操作步骤、预期结果、测试用例之间的关联、测试用例设计人员和测试人员、测试日期、测试优先级等
12.软件缺陷描述应包括哪些:
缺陷类型、缺陷严重程度(致命、严重、一般、较小)、缺陷产生的可能性(总是、通常、有时、很少)、缺陷的优先级、缺陷状态、缺陷起源(及引起故障的阶段)