软件测试基础
第一讲:
1、软件:程序+数据+文档的集合。
2、数据:开发数据(数据数据)、测试数据(模拟用户数据)、用户数据。
3、需求:所有的测试都必须回归到需求。
4、程序:功能实现所需的设计代码。(开发所设置的代码)
5、文档:帮助文档(用户)、
(测试)输出文档(测试计划、测试方案、测试用例、缺陷报告、阶段性总结报告、总结报告。)
(开发)开发计划、概要设计、详细设计、配置文档。
6、测试:test 检测、检查。
测试思路:正向思维、逆向思维。
7、软件测试:在软件工程学的含义中,指被测软件或者系统的功能经过一系列的检查或者检测是否符合 需求的预期结果的过程。(1983年 IEEEE机构)
8、软件测试的目的:发现问题,并解决问题(定位问题的过程)
软件产品的质量只能是提高,无法保证。
9、项目:软件工程学中,根据客户的需求进行一系列的更改或研发的过程。
5W:what(做什么)、why(为什么做)、whem(什么时候做)、where(哪里做)、how(如何做)
10、产品:在软件工程中的一系列工作的过程;并且是项目成功的成果则产生产品。
项目一定是产品,但是产品不一定是项目。(×)
产品是项目得出的成果,项目是产品的过程。(√)
项目可能得出产品,但产品并不一定是由项目产生的。(×)
11、项目与产品:(1)、从用户角度:项目针对的是单一用户或者多个用户而产品针对的是市场。
(2)、从技术角度:项目的需求是可变的而产品是固定的或者是稳定的。
(3)、从价格角度:项目的费用相对于产品的费用更高,但是在利润上产品更高。
项目:项目相当于就是产品一系列的过程。例如:Windows
12、项目中的角色:技术总监、项目经理、开发部、测试部、美工部、产品部、运维部。
13、测试的基本素质:(测试技能+个人的综合素养)
主要的测试技能:1、能够简单的代码走读能力。
2、对测试流程和概念有独特的思想。
3、掌握相关的辅助技能(数据库、服务器)
4、熟练测试工具(应用、管理、性能)
个人素质:创新能力(探索性的)、强的的逻辑思维能力、沟通能力、破坏性、耐心、坚持原则。
14、测试的原则:1、测试需要尽可能的越早的参与,降低成本
2、测试只能是提高产品质量,无法保证。
3、测试无法进行穷举测试。
4、开发人员的局限性。
5、测试需要尽可能的覆盖所有的路径。
6、使用一条测试用例尽可能覆盖多条路径。
7、所有的测试都必须回归需求,并且都符合需求。
15、测试与调试的区别:1按含义分:检查被检测的系统或者软件是否符合需求。
使用工具进行检查代码中是否存在错误的步骤。
2按时间:按计划
随时的,在开发的过程中随时都有可能需要调试。
3、按角度:从用户的角度出发。
开发需要完成的任务。
16、不符合需求的称为缺陷:bug/defect
错误:error
缺陷一定是错误,错误不一定是缺陷。(×)
第二讲
1、缺陷、漏洞、失败、错误、在IT界统称为Bug。
Bug指被测系统或者软件不符合需求的。
2、错误:功能没有完全实现。(功能实现逻辑不符,设计错误的)
3、漏洞:指被测软件的安全性方面的增强。
4、产生缺陷的原因:1、沟通不足
2、逻辑理解错误。
3、软件复杂性。
4、用户需求变更
5、文档不完善。(口头表达,需求没有明确定义)
6、项目周期短。
7、软硬件环境导致。
8、需求不明确。
5、有效缺陷:被开发和测试人员共同所认可的缺陷则为有效。
6、无效缺陷:被开发人员不被认可的缺陷,测试人员认可。则为无效。
7、合法的无效缺陷:当前技术无法达到、无法进行修复的缺陷。
8、无效缺陷产生的原因:
1、版本管理混乱。
2、需求变更并且没有及时沟通。
3、Bug的偶然性。
4、环境因素导致。(服务器)
开发服务器与测试服务器必修分离。
开发环境:理想环境:指把系统或者软件所需的插件、中间件全部已安装或者配置。
测试环境:模拟用户真实环境。
用户环境:真实环境。
客户端环境只要指:系统之间的兼容性问题。
软件架构主要:B/S(brower/sever)浏览器/服务器
C/S(client/sever)客户端/服务器
9、缺陷重现的必要性:
1、便于开发与测试对bug的定位。
2、统计bug出现率问题。
3、提高开发修复效率。
10、重复性bug的原因:
1、同一模块被多个测试人员同时测试并没有及时沟通。
2、版本控制问题。
3、bug的管理不当。(工具、文档管理)
11、bug管理工具 :{testdirector(TD)、 Qc(quantity control)}(HP) 、bugfree、jire、禅道、bugzilla 、mantis
文档(word、excel)
12Bug状态:
↗ | delay(延期) | ╮ | ↓→ → | → ↓ | ||||
↑ | ↓ | |||||||
new(新建) | → | open(打开) | fixd(修复) | closed(关闭) | ||||
▕ | ↑ | |||||||
▕ | ||||||||
▕ | rejected(拒绝) | ← | reopen(重新打开)← ← | |||||
╰ | ||||||||