-
什么是软件测试:验证软件功能是否满足用户需求
-
软件测试和开发的区别:
首先是测试和调试的区别:
目的不同:软件测试是查看软件是否满足用户的功能,调试是开发人员验证代码是否完成了他想让代码实现的功能
角色不同:测试是由考开发人员和测试人员共同完成的,而调试是开发人员完成的
阶段不同:测试贯穿于整个项目的生命周期,调试只存在于开发阶段
专业技能:测试人员要求的技能广泛,但是专业度比较低;开发人员要求技能比较单一,但是专业度高
-
一个优秀的测试人员具备的素质(你为什么选择软件测试;你还学习了开发的知识为什么要找测试的工作)
兴趣:兴趣是最好的老师
能力:沟通能力,代码能力,抗压能力
思维方式:逆向思维,发散性思维
-
什么是需求
满足用户的希望或者是正式规定的合同、文档所需要的条件和权限
(用户需求和软件需求)
-
什么是BUG?
当且仅当需求规格存在并且合理,如果软件功能和需求规格不相符就是BUG
如果需求规格说明不存在,用户的需求存在并且合理,如果软件功能和用户需求不相符就是BUG
-
什么是测试用例
为了实施测试向系统发起的一组操作集合
操作集合包含:测试环境,测试平台,测试数据,操作步骤,预期结果,编号,测试标题,功能模块,测试优先级
-
软件开发的生命周期
需求分析 -> 计划 -> 设计 -> 编码 -> 测试 -> 运行维护
-
软件开发的模型(特点和优缺点)
瀑布模型
螺旋模型
增量、迭代模型
敏捷模型(scrum流程)
-
软件测试的模型(优缺点)
V模型
W模型
-
软件测试的生命周期(软件测试流程)
需求分析 -> 测试计划 -> 测试设计 -> 测试执行-> 测试报告
-
如何描述一个BUG
测试版本,测试环境,测试步骤,测试数据,实际结果,预期结果,附件(错误截图,错误日志)
-
BUG的级别
奔溃:死机,死循环,数据库出现问题
严重:系统可以运行,但是没有办法继续正常运行(比如用户的数据错误,直播画面失真,泄露用户信息)
一般:系统可以稳定的运行,但是其中有些不太重要的功能没有正常实现
次要:建议性的BUG,一般是用户体验不太好
-
BUG的生命周期
-
如果因为BUG和开发人员产生冲突怎么办
先检查自身:Bug描述是否清除
站在用户的角度考虑问题,说服开发人员
自身对BUG的定级有理有据
提高自身的能力,为开发人员提出解决问题的方案
如果实在解决不了,可以和上级(产品经理)沟通
-
设计测试用例的方法
等价类:把输入划分成若干个等价类,每一个当中选择一个测试用例,如果该 测试用例测试通过,那么就说这个测试用例代表的等价类测试通过
目的:为了解决测试用例无法穷举的情况
划分:有效等价类 无效等价类
边界值:对输入输出的边界进行测试
因果图:逻辑图,与、或、非、恒等
当输入有多组,不同的输入组合和不同的输出一一对应,可以用因果图法分析
因果图法设计测试用例的步骤:
正交法:根据正交性设计的,多因素多水平的设计测试用例的方法
错误猜测法:根据测试人员的经验直觉、知识、判断系统的功能模块哪里有问题,着重设计测试用例。。只能作为补充的设计测试用例的方法。。
场景设计法:针对测试场景(业务场景),将一个个孤立的功能点按照一定的策略组合在一起,形成一个业务场景。。比如ATM取款
-
按照开发阶段划分测试类型
(1)单元测试(Junit框架)
测试阶段:编码前(TDD,根据编码报错完善代码)或者编码后
测试内容:接口、参数的个数和类型、局部数据结构、路径测试、错误处理测试、边界测试(优先级较高)
属于白盒测试
(2)集成测试
测试阶段:单元测试之后
黑盒测试和白盒测试相结合
测试内容:模块之间、全局数据结构、单个模块的缺陷对系统的影响、模块之间接口测试
(3)系统测试
测试阶段:集成测试之后
测试内容:界面、性能、功能、安全性、易用性、可移植性、可靠性、兼容性
纯黑盒测试(黑盒测试工程师)
回归测试:当系统引入新代码的时候,要测试新代码是否对旧功能产生影响(改BUG,进行迭代)
冒烟测试:判断系统是否可以进行全面系统测试的标准
(4)验收测试
测试阶段:系统测试之后
测试内容:和系统测试相同,还可能对一些文档进行测试
-
按照实施组织划分