软件测试的那些事
软件生命周期:
1、 市场需求调研 2、可行性分析3、产品项目立项、 4、需求调研开发 5、设计开发测试 6、发布运行维护
软件公司业务形式:自研公司、外包公司
研发团队人员构成:
1、 研发组长 2、美工/页面制作人员 3、系统架构师
4开发工程师
测试团队人员构成:
1测试主管 2、测试组长 3、环境保障人员 4、配置管理员
5、 测试设计人员 6、测试工程师
按技术构成可分为黑盒测试技术人员、白盒测试技术人员、自动化测试工程师和项目管理技术人员。
软件研发模型:
瀑布模型:(计划、需求分析、设计、编码、测试、运行维护)自上而下相互衔接固定 有序逐级下落
有点:节约成本、分析透彻、详细,设计简单
缺点:试介入晚、人员闲置严重,后续工作跟不上、不适应规模的变更
原型模型:在瀑布模型基础上演变而来,再确认用户需求中调整修改、在需求分析环节 评价原型设计
优点:测试介入早、关注需求正确性、及时调整、解决问题、降低开发风险 提高研发效率
缺点:告知用户重新生产该产品、用户接受度低不利于开发
螺旋模型
RUG模型
敏捷模型:将一个大项目分为多个相互联系、也可独立运行的小项目。迭代较快。
优点:灵活更新快 缺点:成本高
软件测试模型
V模型:自上而下,从左至右研发人员进行需求分析、概要设计、详细设计、编码开发 生成对应关系的测试模型。有瀑布模型演化而来。需求对验收、概要对系统、 详细对集成、编码对单元
优点:节约人力、物力 缺点:成本高、滞后性强
W模型:由V模型演变而来、每个阶段都有一个测试和一个计划。强调对文档的测试
优点:测试介入早、能够及时发现、解决问题
缺点:浪费人力物力
X模型:
H模型
敏捷测试模型
软件测试:检验被测对象与预期是否一致
源代码:开发人员开发的代码
验证活动:对软件进行测试是否满足客户需求
数据配置:支撑软件的相关数据
软件测试目的:1、发现、并解决缺陷 2、了解被测对象为决策提供依据3、预防缺陷出现 降低风险
通过测试活动,检测被测对象与预期一致
软件缺陷:检测被测对象与预期不一致
产生原因:1、需求表达理解编写有误 2、系统架构设计有误 3、开发中沟通、监督不到位
4、 编程有误 5、开发工具有问题 6、软件复杂度高 7、与用户需求不符
8、 电碱辐射
四种类型:遗漏、错误、冗余、不满意
缺陷报告内容:1、缺陷ID 2、概要描述 3、发现人 4、发现时间 5、修复时间 、
6、所属版本 7、所属模块 8、缺陷状态 9、缺陷严重度 10、修复优先级
11、 下部处理人 12、详细描述 13、附件
缺陷管理流程:有测试工程师、测试负责人、开发负责人、开发人员、项目经理等人员构成
测试人员发现缺陷定义新建(new)状态、发现人自检确认却先后交由下处 理人并将状态表示为打开(open)、开发人员确认缺陷成立修复将状态标记 为fix、测试工程师确认缺陷成功修复后将该缺陷状态表示为close。若修复 未能测地修复礽存在缺陷则将状态标为reopen、并将重新修复处理。再次 叫有测试人员测试处理。标记为reject。
软件测试原则:1、证明软件存在缺陷 2、不可能进行穷尽测试 3、测试应尽早启动、尽早 介入 4、缺陷存在群集现象 5、杀虫剂悖论 6、不同测试活动依赖于不同的 测试背景 7、不存在缺陷的谬论
软件测试对象:文档、源代码、配置数据等。
软件测试级别:需求测试、组件/单元测试、集成测试、系统测试、验收测试、alpha测试、 beta测试、UAT(用户接受度)测试、
软件测试类型:功能测试、性能测试、负载测试、压力测试、容量测试、安全测试、兼容性
测试、可靠性测试、可用性测试、移植测试、维护测试、确认测试、回归测 试
测试方法: 按是否关注逻辑代码变化、输出结果分为:黑盒测试、白盒测试、灰盒测试
按是否执行代码分为:静态测试、动态测试
按是否人工手动操作:自动化测试、手工测试
软件测试流程:计划 范围 标准 时间 人力 风险
设计 测试的策略 测试的方法和类型
实现 环境搭建 测试用例编写 测试用例评审
执行 执行测试用例 缺陷跟踪 回归测试 测试报告
软件质量特性:功能性、可靠性、易用性、效率、可维护性、可移植性
测试用例设计:等价类、边界值、判定表、因果图、正交试验、状态迁移、场景设计法
用例评审:覆盖度、用例结构、优先级、用例冗余、不满意、遗漏
什么是测试用例、
测试人员测试用的文档(测试人员为特定目的去设计的一组输入输出的例子)
为什么要写测试用例?
答:1、加深对需求的理解 2、提高覆盖度 3、帮助测试人员分析问题 4、指导测试执行
5、帮助测试人员后续质量分析