图片服务器测试步骤:
- 单元测试
- 系统测试
- 自动化测试(兼容性测试和回归测试可以用自动化测试)
- 性能测试(明确是什么类型的性能测试(并发测试))
-
什么是软件测试:验证软件功能是否满足用户需求
-
软件测试和开发的区别:
首先是测试和调试的区别: 目的不同:软件测试是查看软件是否满足用户的功能,调试是开发人员验证代码是否完成了他想让代码实现的功能 角色不同:测试是由考开发人员和测试人员共同完成的,而调试是开发人员完成的 阶段不同:测试贯穿于整个项目的生命周期,调试只存在于开发阶段 专业技能:测试人员要求的技能广泛,但是专业度比较低;开发人员要求技能比较单一,但是专业度高
-
一个优秀的测试人员具备的素质(你为什么选择软件测试;你还学习了开发的知识为什么要找测试的工作)
兴趣:兴趣是最好的老师 能力:沟通能力,代码能力,抗压能力 思维方式:逆向思维,发散性思维
-
什么是需求
满足用户的希望或者是正式规定的合同、文档所需要的条件和权限 (用户需求和软件需求)
-
什么是BUG?
当且仅当需求规格存在并且合理,如果软件功能和需求规格不相符就是BUG 如果需求规格说明不存在,用户的需求存在并且合理,如果软件功能和用户需求不相符就是BUG
-
什么是测试用例
为了实施测试向系统发起的一组操作集合 操作集合包含:测试环境,测试平台,测试数据,操作步骤,预期结果,编号,测试标题,功能模块,测试优先级
-
软件开发的生命周期
需求分析 -> 计划 -> 设计 -> 编码 -> 测试 -> 运行维护
-
软件开发的模型(特点和优缺点)
瀑布模型 螺旋模型 增量、迭代模型 敏捷模型(scrum流程)
-
软件测试的模型(优缺点)
V模型 W模型
-
软件测试的生命周期(软件测试流程)
需求分析 -> 测试计划 -> 测试设计 -> 测试执行-> 测试报告
-
如何描述一个BUG
测试版本,测试环境,测试步骤,测试数据,实际结果,预期结果,附件(错误截图,错误日志)
-
BUG的级别
奔溃:死机,死循环,数据库出现问题 严重:系统可以运行,但是没有办法继续正常运行(比如用户的数据错误,直播画面失真,泄露用户信息) 一般:系统可以稳定的运行,但是其中有些不太重要的功能没有正常实现 次要:建议性的BUG,一般是用户体验不太好
-
BUG的生命周期
-
如果因为BUG和开发人员产生冲突怎么办
先检查自身:Bug描述是否清除 站在用户的角度考虑问题,说服开发人员 自身对BUG的定级有理有据 提高自身的能力,为开发人员提出解决问题的方案 如果实在解决不了,可以和上级(产品经理)沟通
-
设计测试用例的方法
等价类:把输入划分成若干个等价类,每一个当中选择一个测试用例,如果该 测试用例测试通过,那么就说这个测试用例代表的等价类测试通过 目的:为了解决测试用例无法穷举的情况 划分:有效等价类 无效等价类 边界值:对输入输出的边界进行测试 因果图:逻辑图,与、或、非、恒等 当输入有多组,不同的输入组合和不同的输出一一对应,可以用因果图法分析 因果图法设计测试用例的步骤: 正交法:根据正交性设计的,多因素多水平的设计测试用例的方法 错误猜测法:根据测试人员的经验直觉、知识、判断系统的功能模块哪里有问题,着重设计测试用例。。只能作为补充的设计测试用例的方法。。 场景设计法:针对测试场景(业务场景),将一个个孤立的功能点按照一定的策略组合在一起,形成一个业务场景。。比如ATM取款
-
按照开发阶段划分测试类型
(1)单元测试(Junit框架) 测试阶段:编码前(TDD,根据编码报错完善代码)或者编码后 测试内容:接口、参数的个数和类型、局部数据结构、路径测试、错误处理测试、边界测试(优先级较高) 属于白盒测试 (2)集成测试 测试阶段:单元测试之后 黑盒测试和白盒测试相结合 测试内容:模块之间、全局数据结构、单个模块的缺陷对系统的影响、模块之间接口测试 (3)系统测试 测试阶段:集成测试之后 测试内容:界面、性能、功能、安全性、易用性、可移植性、可靠性、兼容性 纯黑盒测试(黑盒测试工程师) 回归测试:当系统引入新代码的时候,要测试新代码是否对旧功能产生影响(改BUG,进行迭代) 冒烟测试:判断系统是否可以进行全面系统测试的标准 (4)验收测试 测试阶段:系统测试之后 测试内容:和系统测试相同,还可能对一些文档进行测试
-
按照实施组织划分
α测试 | β测试 | 第三方测试 | |
---|---|---|---|
测试环境 | 开发环境 | 实际使用环境 | |
测试人员 | 除了测试和开发以外的人员 | 随机的用户 |
- 按照是否运行划分
静态测试 | 动态测试 |
---|---|
不运行代码 | 运行代码 |
主要是检查代码是否有误 | 打断点测试代码是否有误 |
- 按照是否手工划分
手工测试 | 自动化测试 |
---|---|
量大的时候容易出错,但是随时可以进行补充,不可能被自动化测试取代 | 解放双手,脚本的重复利用率高 |
- 按照是否查看代码划分
黑盒测试 | 白盒测试 | 灰盒测试 | |
---|---|---|---|
把软件当成一个黑色的盒子,软件的具体实现是屏蔽的,测试人员只关心软件的输入和输出 | 对软件的具体实现,程序的逻辑和结构进行测试 | ||
设计测试用例的方法 | 等价类、边界值、因果图、场景法、错误猜测法、正交法 | 语句覆盖、路径覆盖、循环覆盖、逻辑覆盖(判定覆盖、条件覆盖、判定和判定组合覆盖、条件和条件组合覆盖、条件和判定组合覆盖) |
- 按照地域划分
国际化测试 | 本地化测试 |
---|
-
按照测试对象划分
业务
界面
容错性
易用性:符合一定的标准和规范,直观性,灵活性,舒适性,实用性
文档测试
兼容性:浏览器、设备(不同品牌手机、电脑)、不同版本的系统、软件向前向后的兼容性、软件和其他相关软件的兼容性、数据兼容性
性能:性能测试指标有,响应的时间,点击率,TPS,http响应率,吞吐量,吞吐率,系统运行时资源利用率(CPU利用率,内存,硬盘,电源,网络带宽),内存占用情况,
安全
内存泄漏 -
Selenium
定位元素的方法:id,name,xpath,css selector,tag-name,partial link-text,link-text 等待API:time.sleep, implicity_wait() 上传文件API:send_keys()
-
unittest框架
测试固件:setUp(), tearDown() 测试套件:addtest,makesuite,testloader,discover 用例执行顺序:A~Z,a~z,0~9 忽略用例执行:unittest.skip(skipping) 测试报告,错误处理,断言(判断预期结果和实际结果是否一致)
-
数据驱动ddt