先贴两张测试开发的招聘图:
内容:搞定测试开发面试中关于测试开发的知识点
测试面试的基本内容分这么几部分: 测试设计和分析;测试执行;web自动化测试;移动自动化测试;性能测试;简单的渗透测试。
测试需求分析:涉及工具:脑图(思维导图),这里面有个分层和耦合的概念。其实就是逻辑上思考的过程。
经典面试题是:列举造成异常原因:网络原因(网络中断,网络延迟,防火墙)服务器资源(权限不足,资源不存在,阻塞)系统环境(缺失组件)异常中断(断电)
测试用例设计:必会概念有:等价类&边界值:排列组合组成测试用例;因果图法;场景分析法。二八定律:20%测试用例发现80%的bug。
根据核心功能,主干功能,分支功能或者用例不通过对用户的影响等来划分优先级。p1,p2,p3;
bug管理: redmine hp-qc
测试计划编写:(一份完整的测试计划包括:测试范围,测试策略(功能,兼容性,性能,接口,安全),测试资源(人,环境,工具),进度安排(里程碑,节点,输出文档),发布标准(测试完成标准,上限标准,发布标准),风险说明等)
测试基本流程:
冒烟测试:主干测试 冒烟用例:主干流程的正向用例 p1 p2选择,能尽快执行完(两周开发=半天测试)
新需求测试:
回归测试:
bug优先级:block崩溃 critical主干功能报错 major次要功能出错,重要分支出错 normal非重要分支出错 minor样式 细节问题
质量报告
web功能测试:
工具:firebug等 web前段后段内容(前端页面展示,交互,后端数据处理) 尽量详细显示出自己测试的牛逼之处
web兼容性测试:(多浏览器,多操作系统)选择市占率,用户使用率来选择呗。主干测试,细节测试 工具:ietester
app功能测试:工具:charles 录制 查看请求和响应。或者用ADB工具查看日志 ios设备 第三方工具查看日志
app兼容性测试:根据项目用户统计,反馈问题统计选择top机型等 系统兼容性 屏幕兼容性 型号兼容性
app性能测试:内存,cpu,帧率,流量,启动时间。
内存:内存泄漏,内存溢出-----程序卡顿,崩溃等。
cpu占用率过高-----程序卡顿,崩溃等。
测试是否有内存抖动,频繁打开关闭页面内存是否即时释放
新功能流程,主干流程,版本对比
安卓工具:emmagee 支持android2.2及以上,监控单个app应用cpu,内存,流量等。
开源地址:https://github.com/NetEase/Emmagee
下载地址:../releases
帧率----渲染时间过长,丢帧,卡帧
每帧不超过16ms (60帧/s 用户察觉不到卡顿)帧率测试工具 gfxinfo--开发者工具---gpu呈现模式分析
流量---流量消耗过多---影响用户钱,主干流程,多资源场景,安装后首次启动,后台运行 测试工具 Emmagee
启动时间 --首次启动 常规启动 通过adb工具adb logcat保存log 过滤displayd 根据acitvity名称删选 时间累加
把手工测试:重复,低效,易错的部分改为工具和脚本执行
兼容性,回归测试 适合自动化应用场景
选区工具:活跃社区
selenium watir qtp
selenium 开源 免费 跨平台
selenium工具集:selenium ide (firefox 插件) selenium rc:执行js selenium grid 分布式测试 selenium webdriver 更高级测试
工作流:测试脚本调用selenium 启用浏览器比如:java+eclipse + selenium + firefox
ui自动化 对象 操作 方法
元素定位方法
input id = query name = q class = s-input
<element id = "value">
WebElement element = driver.findElement(By.id("query"));
<element name = "value">
WebElement element = driver.findElement(By.name("q"));
<element class = "value">
WebElement element = driver.findElement(By.className("s-input"));
<element href = "value">LinkText</element>
超链接可以缺省<element href = "value">LinkText</element>
WebElement element = driver.findElement(By.patialLinkText("词典"));
测试框架 testng testng.org
help eclipse market 搜索testng
help install new software http://......
基本工具的使用:loadrunner jmeter grinder gatling tsung
nmon sitescope nagios yourkit 自带:jps jstat visualvm
解析gc日志
这部分比较简单,其实渗透测试应该有专门的人做的,所以了解这方面知识只是加分项,简历上多写这么一条,说不准就脱颖而出了呢。
目的:了解主流web安全漏洞原理,危害,利用方式和修复方法。了解sdl流程,知道主流工具和大概使用方法即可。
火狐浏览器插件:firebug,hackbar,advanced cookie manager,proxyswitcher,tamper data;
抓包工具:burpsuite charles fiddler
扫描工具:御剑,awvs,netsparker,appscan,sqlmap
在线工具:google hack.网络空间搜索引擎,shodan;zoomey;fofa;安全圈info;tool.chinaz.com;cmd5.com;ipip.net;whatweb.net
联系工具:部署dvwa
sdl:security development lifecycle 安全生产开发周期 建立红蓝队,完善预警和应急响应流程。
主流漏洞有:
暴力破解,命令注入,xss,csrf,点击劫持,sql回显注入,sql盲注,文件包含,文件上传
暴力破解不用多说,利用工具➕特定的字典来爆破系统等,可通过验证码,错误次数等方法控制
命令注入:通过web程序在服务器上拼接系统命令 可以通过限制输入格式来防止
xss:跨站脚本攻击,分为存储型(留言板),反射型(邮件),dom型(通过js脚本控制dom)
csrf:“美女图片,不看后悔”让用户点击后完成恶意操作(比如点了一下美女图片,关注了攻击者的微博)。可通过校验referer,随机token,验证码等来避免。
点击劫持:构造url串等方式通过可信网址跳转到诈骗网址。(csrf并没有前半部分)
sql回显注入:在输入框等地方,通过union,and等构造sql语句(注入poc),也可通过sqlmap自动化检测,可通过参数化sql语句,或者白名单过滤。
sql盲注:输入框等地方不回显了
文件包含:利用include,requeire等包含函数,参数用户可控且过滤不严格即可利用,实现远程文件执行等。(查看文件时修改文件参数等找到漏洞)可通过白名单等方式限制文件访问,来防止恶意攻击。
文件上传:将包含恶意代码的文件上传到服务器,然后执行的漏洞。通过重命名,重新生成,阻止非法文件上传(后缀白名单,头部判断,类型匹配),阻止非法文件执行(分离存放,限制权限)等方式规避。