目录
1. 什么是软件测试?
软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。
简单来说就是测试人员通过一系列手段对产品进行检验的过程。
2.测试与调试的区别?
调试发生在编码阶段,是开发人员做的;测试应该贯穿产品的整个阶段,是测试人员进行的
3.测试的基本流程?
测试准备,需求分析,编写测试用例,执行测试,测试评估
4.什么是测试用例?/ 测试用例应该包含什么?
测试用例就是测试人员编写的包含测试版本,测试内容(标题),测试环境,测试数据,测试步骤,预期结果,实际结果等一组数据的集合
5.设计测试用例的方法?
等价类,边界值,因果图,场景分析法,错误猜测法
6.什么是BUG?
BUG又称为软件缺陷,从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误, 毛病等各种问题; 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背,或者存在非功能方面的问题
7.BUG的生命周期?/ BUG的状态?
new:发现BUG
open:确认是BUG,提交给项目经理,由经理指派给开发人员
fixed:修复了
rejected:认为不是BUG,拒绝修改
delay:推迟修改
closed:确认修改完成,关闭BUG
reopen:经过测试发现BUG还存在,重新打开BUG
8.如何描述BUG?
BUG的状态,优先级,测试的软件版本,缺陷的严重程度,涉及的系统,测试环境,BUG出现的操作步骤(简洁明了,可复现),实际结果,预期结果,错误截图以及描述等
9.BUG的级别?
阻塞缺陷:对系统有巨大影响
严重缺陷:部分模块无法实现
一般缺陷:不影响模块运行
建议缺陷:从用户角度出发需要完善的建议
10.软件测试的模型?
V模型:先开发后测试
W模型:测试伴随产品开发全过程
11.缺陷的修复周期?
缺陷等级 | 解决时效 | 版本更新 | 测试验证 |
阻塞 | 当天解决 | 紧急版本 | 解决后立即 |
严重 | 2天内解决 | 按紧急程度 | 解决的同一天 |
一般 | 3天内解决 | 按紧急程度 | 尽快 |
建议 | 根据测试周期决定 | 按紧急程度 | 随时 |
12.软件测试的分类?
按照开发阶段划分:
单元测试(模块测试):对软件组成的最小单元进行测试,检查每个程序单元是否正确实现详细设计说明中 的模块功能
集成测试(组装测试):将所有的程序模块进行有序、递增的测试,检验程序单元或部件的接口关系
系统测试:检查完整的程序系统能否和系统(包括硬件、外设和网络、 系统软件、支持平台 等)正确配置、连接,并满足用户需求
确认测试:证实软件是否满足特定于其用途的需求,是否满足软件需求 说明书的规定
验收测试:按照项目任务或合同,供需双方签订的验收依据文档进行的 对整个系统的测试与评审,决定是否接受或拒收系统
回归测试:指修改了旧代码后,重新进行测试以确认修改没有引入新的 错误或导致其他代码 产生错误
按照是否看代码以及内部逻辑划分:
黑盒测试:功能或数据驱动测试,外部结构的测试,常用方法有等价类划分,边界值分析,因果图、错误推测等,测试工具有QTP,Loadrunner
白盒测试:结构或逻辑驱动测试,内部结构与逻辑设计的测试,常见的有逻辑驱动、基路测试等,方法有语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖,测试工具有 JUNIT,TEST
灰盒测试:黑盒测试与白盒测试的结合
按照是否运行代码划分:
静态测试:不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程
动态测试:实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程
按照实施组织划分:
开发方测试(α测试):在开发环境下,开发方对提交的软件进行全面的自我检查
用户测试(β测试):在用户的应用环境中,用户通过运行软件,检测软件实现是否符合自己预期的要求
第三方测试:介于软件开发方和用户方之间的测试组织的测试
13.黑盒测试与白盒测试的优缺点?
黑盒测试:
优点:从产品功能角度测试可以最大限度地满足用户的需求;相同动作可重复执行,最枯燥的部分可由机器完成;依据测试用例有针对性地寻找问题,定位更为准确,容易 生成 测试数据;将测试直接和程序/系统要完成的操作相关联
缺点:代码得不到测试;如果规格说明设计有误,很难发现;测试不能充分地进行;结果的准确性取决于测试用例的设计
白盒测试:
优点:迫使测试人员去仔细思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底
缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性;结果的准确性取决于测试用例的设计
14.软件测试的原则?
软件测试是为了找到软件缺陷而不是证明软件不存在缺陷
软件测试应该尽早开始
杀虫剂悖论:采用同样的测试用例多次重复进行测试,最后将不再能够发现新 的缺陷。为了克服这种“杀虫剂悖论”,测试用例需要进行定期评审 和修改,同时需要不断增加新的不同的测试用例来测试软件或系统的 不同部分,从而发现潜在的更多的缺陷
不存在缺陷(就是有用系统)的谬论:假如系统无法使用,或者系统不能完成客户的需求和期望,发现和 修改缺陷是没有任何意义的
15.为什么要软件测试?
确保产品符合用户需求,保证软件质量。