1.软件缺陷定义及产生原因
定义:
从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;
从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
软件缺陷的属性包括缺陷标识、缺陷类型、缺陷级别
缺陷标识是标记某个缺陷的唯一标识,可以用数字序号表示
缺陷类型有功能、用户界面、文档、软件包、性能、接口、兼容性
缺陷级别有致命、严重、一般、轻微
原因:
1.需求:需求表述理解,导致编写引起的错误
2.架构:系统设计架构引起的错误
3.开发:开发过程缺乏沟通和监督
4.工具:软件开发工具本身的问题
5.复杂度:软件需求复杂度越来越高
6.与用户需求不符合:即使本身不存在某种意义上的缺陷
2.常见软件缺陷管理工具
禅道、Jira
3.软件测试概念和目的
目的:找到程序bug,提高用户体验
概念:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估
4.V模型 跟W模型
V模型:V模型的左边下降的是开发过程各阶段 右边上升部分是测试过程的各个阶段
V模型图:
用户需求 验收测试
需求分析 系统测试
概要设计 集成测试
详细设计 单元测试
编码和实现
V模型的优点在于它非常明确的标明了测试过程中存在的不同级别 并且清楚地描述了这些测试阶段和 开发各阶段的对应关系
W模型图:
需求分析 需求测试 系统安装 验收测试
概要设计 概要设计测试 系统构建 系统测试
详细设计 详细设计测试 模块集成 集成测试
编码实现 单元测试
W模型:相对于V模型 W更科学 是V的发展 强调的是测试伴随着整个软件开发周期 而且测试的对象不仅仅是程序需求功能和设计同样要测试
测试与开发是同步进行的 有利于尽早发现问题
5.软件测试的流程
参与需求讨论 制定测试计划 确保测试能顺利执行并完成
负责项目的功能性测试 用户体验测试 兼容性测试以及性能测试
负责测试用例的编写 编写测试报告和对测试结果分析
与开发人员 产品经理沟通和协作 推动整个项目的顺利执行
负责软件开发团队项目进度管理工作
熟悉Linux常用命令 熟悉常用数据库 熟练使用基本的SQL语句
熟练使用Loadrunner Jmeter等至少一种性能测试工具
6.软件测试的基本原则
测试显示软件存在缺陷
穷尽测试是不可能的
缺陷集群性(2/8原则)
测试尽早介入
杀虫剂悖论
测试活动依赖于测试内容
没有错误是好 是谬论
程序员不能自测之后就上线
严格执行测试计划 排除测试的随意性
应当对每一个测试结果做全面的检查
妥善保存测试计划 测试用例 出错统计和最终分析报告 为维护提供方便
设计测试用例时 应当包括合理的输入数据和不合理的输入数据
测试用例应由测试数据和与之对应的预期输出结果两部分组成
7.软件测试的分类
按阶段分为(单元测试 集成测试 系统测试 验收测试)
1.单元测试(对一个模块 一个函数 或者一个类来进行正确性检验的测试方法)