根据需求编写测试用例,用自动和手动两种方式进行用例执行,目的验证明际运行结果与预期结果是否一致,不一致,提交缺陷报告。前端
多:发现尽可能多的bug,帮助评估软件质量,下降退货风险,但不能提高软件质量。linux
早:尽早发现bug,下降修复成本。web
预防:分析统计以往项目bug,找到缘由,并提出解决方案,预防缺陷在新项目中的再次发生。算法
(软件测试只能证实软件存在错误,不能保证软件没有错误,不可能找出所有软件错误软件质量的提升要靠软件项目团队全体成员的共同努力sql
)chrome
需求分析、编写测试计划、用例设计、执行用例、缺陷报告、回归测试、测试报告、用户体验数据库
功能测试、性能测试、可靠性测试、安全测试、配置测试、GUI测试、备份测试、文档测试、在线帮助测试、易用性测试等等编程
单元测试、集成测试、系统测试、Alpha测试、Beta测试、验收测试 还有回归测试后端
1、验收测试浏览器
分类 |
测试过程 |
参与对象 |
测试目的 |
测试流程不一样 |
成本不一样 |
针对软件产品 |
α测试 |
由公司指定的用户进行测试 |
获取用户体验 |
由公司制定环境,指定用户参与 ‚用户发现问题反馈给开发或测试 ƒ问题要进行修复 |
给客户付费 |
β测试 |
全部潜在用户的自主测试 |
提前占领市场 |
由潜在客户自主安排进行软件的试用 ‚发现问题发聩客服 ƒ问题不必定修复 |
不付费 |
|
针对项目 |
验收测试 |
具体的用户或客户表明,相关行业专家 |
为了尽早收回余款 |
客户赞成验收 ‚公司组织人员进行验收准备 Ⅰ准备相关文档(安装程序、操做手册、帮助手册、测试报告等) Ⅱ肯定相关验收人员(主持人、演示人、答辩小组) Ⅲ搭建验收环境 ƒ召开验收会议 Ⅰ由主持人宣读流程 Ⅱ由演示人进行演示 Ⅲ由答辩小组回答专家和用户的提问 Ⅳ专家和用户给出评审结果 |
|
彻底回归 |
时间多,每次回归所有的测试用例 |
不彻底回归 |
最后要上线了,时间有限,选择性回归 |
选择性回归 |
覆盖修改法:哪一个错了就回归哪一个用例,适合于不相关联的用例,优势:省时;缺点:不安全 |
周边影响:除了执行缺陷用例外,还执行与该缺陷相关的用例 |
|
每次回归执行了多少个用例,适合成熟,有经验的项目 |
按照不一样的测试对象进行划分
一、第一类:是否可见代码
(1)黑盒:依据SRS,只关注输入和输出,对软件功能,不考虑内部结构
(2)白盒:对代码进行测试(源程序代码、内部结构算法、溢出、路径等)
(3)灰盒:对模块接口进行测试
2、第二类:是否依赖工具
(1)人工
(2)自动:节约人力,测试效率高
3、第三类:是否断定程序运行
(1)静态测试:不运行程序自己,分析或检查程序的语法、结构等
(2)动态测试:有运行结果,运行被测程序,检查运行结果与预期结果的差别
等价类、边界值、断定表、正交实验、输入域覆盖、流程分析、功能矩阵、状态迁移图、因果图法、异常分析法
一、需求转化法:(产品人员或需求方说的任何一句话,收集到的信息,做为测试用例在软件上实施,看是否符合写的说的)
二、等价类边界值:等价类(抽样,相同的输入状况,
三、表明性数据),边界值(容许输入范围的边界)
四、错误推断法:bug预防,把以前出现的问题总结
五、因果图法:经过不一样条件的组合,推断结果
六、正交试验:不一样条件的组合过于海量,抽取一些典型因素状态,最小组合(元素、状态)
七、场景实验法:基于对产品的使用经验
八、探索式测试:测试策略:全部页面作便利,UI和兼容性
全部输入字段是否能作输入判断正常工做
全部字段默认不读写作保存,是否有问题
全部操做1+1重复操做
九、逻辑测试:基于技术文档设计测试用例
十、猜想法:(利用经验作用例覆盖)
好的测试用例:
一、覆盖场景
二、写的粗略(要点,描述测试目的)
三、深刻理解需求
内容包括:概述、测试策略(方法)、测试术语的定义、测试人员的分工、测试进度、测试流程、测试工具、测试缺陷管理(测试经过/失败标准;挂起恢复条件)
测试项目负责人、测试经理将测试周期与风险提供给测试项目负责人,由测试项目负责人收集后制定具体的计划,整个开发中后期
包含元素:总体测试目标(测什么东西,何时完成测试,保证上线)
测试范围:历史已开发,新增模块界定
测试内容:大模块-小模块(测试参与者),明确责任
测试环境:测试数听说明
非功能测试:是否要作安全测试,基于安全规范,用安全工具扫描
性能测试(稳定性测试,测试工具说明)
周期:倒退方式,上线后用多长时间跟踪
时间安排:一轮:
二轮:
三轮:
截止上线日期:
风险:总体预防,风险应对,性能调优遇到困难
SVN文档地址,代码地址
测试参考文档
简单说就是怎么测试被测试对象
由测试架构师或项目负责人编写,对整个测试工做进行梳理以及全局定义
方式一:产品人员评审
方式二:技术评审,文档评审
可得到被测试对象全面信息
例如作UI功能测试
一、模块划分:拆成小模块(基于小模块定义测试方法,由谁测试)
二、搭建测试环境:生产环境,测试环境
三、测试数据:配置参数、被测系统用户数、业务数据
四、测试工具:选型、使用方法、使用策略(购买、开源、自定义)
五、测试框架:
1)安装:全新安装、覆盖安装、卸载以后重复安装;卸载;更新
2)系统兼容性测试
3)跟软件的冲突测试(浏览器工具栏的竞争)
4)网络安全(是否发送加密信息,是否使用https协议)
5)跟病毒防火墙的冲突测试(会不会有防病毒让见把功能屏蔽)
6)UI功能
7)基于架构非功能测试
六、服务器端测试:接口层和缓存层
方向:
1)功能测试:测接口、缓存机制正确性(根据接口定义文档、详细设计、概要设计)
2)容错性测试:错误提示或返回
3)性能测试:大并发处理
4)稳定性测试:7×24小时,不间断服务,高并发关注内存、资源泄漏,不会由于长时间运行致使系统崩溃
1)内容:序号 缺陷ID 测试用例ID 发现日期 测试者 缺陷描述 重现缺陷操做 缺陷严重程度 状态 版本号 缺陷解决方法 修改日期 解决人&解决日期 验证人&验证日期
2)缺陷状态:新建NEW、已分配OPEN、已修复FIXED、已关闭CLOSED、再打开REOPEN、延迟postpone、放弃abandon、重复duplicate、拒绝rejected
3)缺陷严重程度:
致命(致使系统没法关闭、死机)
严重(弹出系统级别错误)
通常(结果不正确、没法完成指定功能)
轻微(界面、易用、显示)
建议(这样处理更好)
4)缺陷跟踪流程:
①开发提交新版本给测试
②测试按照测试用例执行程序
③若是程序运行结果与用例的预期结果不一致提交bug报告
④对缺陷进行分配
⑤发开对bug进行修复
⑥将修复好的软件设置成新版本提交给测试进行回归
⑦修复成功关闭缺陷,未修复成功打开缺陷转到⑤将bug报告从新提交给开发再次修复。
反应测试工做的投入和产出、对软件总体质量进行评估。
内容:
①测试计划里规定完成的内容
②测试总体资源投入状况和实际完成状况
③测试环境说明(在什么环境下测的)
④所用的测试策略(方法)有哪些
⑤发现了哪些bug(走势(预期提交时间)、版本、模块、严重级别、状态分布、缺陷回归质量)
⑥目前软件质量状态评估
⑦测试建议和意见
1、安装卸载更新
1、安装
1)安装包大小
2)权限提示(APP会读取联系人打电话的权限)
3)安装后的容量
4)安装后的目录
5)安装后的功能正常使用
6)产生的文件(用户用不到,系统用到)
7)后台运行模式,仍是仅是用户启动时运行
2、卸载
1)临时文件是否删除干净
3、更新
1)全部文件都能被替换
2)不一样的版本都能被更新成功
2、流量测试
设置代理端,代理软件获取流量消耗,经过竟品分析
3、电量测试
安装在手机的测试电量的APP(powertuiter),安卓5.0以上手机进程消耗电量显示
4、兼容性
屏幕大小、分辨率、主流机型适配
5、安全性
利用工具,对代码扫描,代码混淆,增长黑客破解的复杂性,数字签名是否能够被其余公司作第三方使用(大公司禁止2次签名)
6、异常测试
使用APP时,有打电话,推送、短信,蓝牙
横竖屏切换
先后台切换运行模式
运行时杀进程,APP是否会崩溃,数据丢失,以及再启动出现的问题
7、APP功能测试
1、全部字段作输入判断
2、在不一样界面跳转
3、全部界面都要有返回键
8、稳定性测试
长时间使用CPU和内存的占用
用MONKEY自动化测试工具,随机事件运行5万次左右
一、分辨率(不一样分辨率,网页显示的效果)
二、浏览器兼容性(360、IE、firefox、猎豹、chrome)
三、提示信息规范(产品经理出列表)(英文空格数字、口语化等)
四、错误信息屏蔽(正式发布上线后,赞成错误提示页面)
五、提交(重复提交)
六、输入判断(防止跨站攻击)
七、全部数据库链接作释放(系统百页、重启、数据库满了没作释放)
八、用户名和密码的缓存(http-nocash属性,密码加密)
九、日志级别(上线前确认日志级别,详细日志,对于海量用户,简略日志,日志占服务器空间,影响性能)
概念:根据产品执行测试策略完成测试工做
一、局部探索式测试:更专一表单细节状态
输入框输入判断测试(整数、小数、分数、指数、非空、空、默认值)
二、全局探索式测试:专一用户使用流程
一般指场景:如登录-产品浏览-购买商品
不登录-产品浏览-购买商品-结算
测试策略:
局部探索式测试:
一、输入框、单选按钮、下拉框、都要进行输入判断测试,验证全部输入控件
二、懒汉法:不输入-直接保存
三、超模法:不作输入,看全部界面是否显示正确,只关注UI(页面布局、字体、颜色)
四、强迫症法:全部按钮快速点击提交两次,重复提交相同的数据
五、深夜工做发:系统晚上会作的事情(备份、系统恢复等)
六、恶邻法:某模块出现大量bug,在此模块作回归测试
七、破坏者法:输入非法数据,看会不会报错,根据报错,引伸出系统安全级别错误,基于发生错误,再次进行更深层次测试
八、地标法:把全部看到的功能作覆盖,不断进行功能间跳转
九、说明书法:用户说明书、帮助手册,验证与帮助手册描述是否一致
十、自由测试:随机随意的作一些测试
十一、遍历法:把全部能看到的都点一遍
十二、数据跟踪法:输入一条数据,在全部系统中跟踪数据的存储和展示
1三、状态遍历法:如QQ状态、离线、在线、隐身下的功能有什么变化
1四、代码路径:根据代码执行的分支逻辑,进行全部分支逻辑的覆盖
全局探索式测试:
不一样场景组合,替换,删除,重复,会覆盖更多的代码路径,发现逻辑问题
原则:模拟全部可能发生的状况
形式:
一、纯接口:resful框架(Representational State Transfer)表现层状态转化,基于HTTP的简单动做(GET,POST,PUT,DELETE)来实现,根据服务器的接口文档,提交制定服务器端的合法请求
二、Web-service:传入xml服务器返回XML
三、Socket:给一个IP/单口创建链接,发送数据,服务器收到后返回
分层:
一、负载均衡服务器:负责分发请求,保证全部请求不会只落在少数服务器上,能把请求均匀的分在不一样服务器上
二、应用服务器:把数据作简单的处理,通常都是web服务器,Unix、Apache、Tomcat、JBoss
三、缓存层:大型后台服务器端组成部分,提升访问速度,内存层(不须要从硬盘读取IO)
四、数据库服务器:经过Mysql、Oracal存储数据
测试:
一、功能测试:从接口层验证服务器处理逻辑
二、容错测试:1、大型架构中,有些服务器down机,是否会对总体服务形成影响2、发送错误数据
三、性能测试:负载测试:在什么请求状况下,达到最优处理性能
压力测试:在什么请求负载下,服务器出现大量错误
两个指标:每秒处理事务个数,平均事务处理时间
四、稳定性测试:不会有资源泄漏(内存)
测试颗粒度:
一、纯黑盒:仅在接口层(内部处理逻辑不复杂)
二、灰盒:如百度、猎豹,便利全部服务器核心逻辑、详设概设都覆盖
三、白盒:基于代码覆盖率
UI测试 :常常变化
接口测试:类、函数封装,对外提供一个接口,相对稳定(输入和返回内容基本不变)
单元测试:80%问题
接口:websevice 传xml返回xml
本质:传递一些内容,返回一些内容
接口的功能测试:
一、功能:接口定义:传123返回1230
二、容错性测试:接口定义能传123,结果传ABC,是否返回错误码之类
三、性能测试:压力测试:应用调用,是否快速返回,短期的承受并发量
四、稳定性测试:7×24小时稳定服务
接口自动化测试框架:使用数据驱动框架来测试接口,数据与程序分离,不断请求接口,验证返回的数据是否符合接口文档定义的规则
在不一样请求状况下,看被测系统总体表现,是否能符合设计预期
1、分类:
一、负载测试:系统能承载的最大并发访问量
二、压力测试:在什么高并发访问状况下,系统会出现错误
三、稳定性测试:7×24小时长时间运行,系统会不会出现资源泄漏会不会死机,是否能7×24小时不间断提供稳定服务
前端性能:打开页面、页面加载、文字、图片、Flash等资源,调用JS,每一个调用或总体加载时间是否知足用户需求
手机端:压力测试(使用Monkey作随机操做测APP自己)
工具:fildller、firebug,能够看到每一个资源加载的速度以及脚本执行耗时
后端性能:一般指服务器端性能测试(高并发访问)
原则:模拟全部可能发生的最极端状况
性能测试指标:TPS:每秒处理事务个数
平均处理事务响应时间
水平扩展(是否支持,加硬件)
同一个局域网内,内网和外网网络延迟不可控
硬件型号
软硬件版本
各类参数
内容
硬件:什么内存、CPU、硬盘、网卡
软件:配置信息,中间件的配置参数,中间件版本
核心指标:平均每一个事务的处理时间和每秒处理事务个数
测试场景:全部和数据库有关的操做
系统水平扩展测试
测试环境搭建:手册:从新启动方法、日志更新方法
开发环境
测试环境:功能测试环境和性能测试环境
方案、加压、记录数据找到瓶颈,分析基本性能架构不合理性,找到明显问题
瀑布模型、V模型(对系统架构产生影响,没法控制,延期)
敏捷测试与开发模式(XP模式:更多协做、Skap:产品经理制定短时间目标)
提倡结对编程
小步快跑(每次定义功能明确,周期,变动排在下一周期)
使用大量自动化测试(集中在单元测试)
测试驱动开发:在没开发以前实现测试用例
行为驱动开发:用天然语言写功能点,功能点对应测试用例
持续集成:自动把代码取出,打包加密
强调人与人的沟通,不强调过分的文档
持续集成自动化+重构(从新把功能相同的代码重写,支持新的须要变动)
①输入:read 接受键盘输入
②输出:echo 命令的功能是在显示器上显示一段文字
Echo “I’m linux”
Echo $name(取变量的值)
Echo “I’m ”$name
③目录:
查询目录 |
ls(不包含隐藏文件) |
ls-a所有文件(包含隐藏文件) |
|
ls-l显示文件的详细信息 |
|
建立目录 |
mkdir |
删除目录 |
rmdir(只删除空目录) |
④文件:
Cp 源文件 目标文件 拷贝源文件到目标目录 |
Mv 源文件 目的对象 mv./dir1/a./dir2/b (将dir1目录下的a文件移动到dir2目录下并重命名为b) |
Rm 【参数】文件或目录(多文件用空格分隔)rm -r./dir1( 删除目录dir1及其内容,有提示) rm -rf./dir1( 删除目录dir1及其内容,没有提示) |
Vi 文件名 文件不存在则建立;文件存在,编辑文件;编辑界面:插入信息:i键或insert键 返回参看:ESC键 保存:“w” 退出:未编辑退出:“q”;保存并退出:“wq”; 强制退出:“ql” |
⑤包命令
tar
|
tar xvf*.tar 把*.tar文件解包 |
tar cvf*.tar目标目录 把目标目录打成.tar包 |
|
tar zxvf*.tar.gz 把.tar.gz 文件解包 |
|
tar zcvf*.tar.gz目标目录 把目标目录打成.tar.gz包 |
|
unzip |
Unzip*.zip |
⑥登陆与关机
切换用户 |
su-root |
注销 |
logout |
exit |
|
重启 |
reboot |
Shutdown -r now 马上重启 |
|
Shutdown -r 11:30 等到11:30重启 |
|
关机 |
Shutdown -h now 马上关机 |
Shutdown -h 11:30 等到11:30关机 |
⑦网络命令
查看主机名:hostname
查看ip:ifconfig
测试网络 ping
设置ip netconfig
重启网络服务 service network restart
⑧改权限
chmod |
a 所有 u 全部者 g权限组 o其余 |
r- 读(4) w-写(2)x-执行(1) |
|
Chmod -R 777 IF 改IF以及IF下全部文件 |
|
chown |
只修改文件全部人 |
chgrp |
只修改文件权限组 |
⑨linux的查看进程命令
动态显示进程信息:top
显示进程信息:
ps-ef |
-aux 查看详细信息 |
查看某个进程 |
|
ps-ef|grep 进程id 查询指定内容 |
⑩常见命令
#pwd查看当前文件在哪一个目录下 |
#cd空/ 切换目录 |
#ls 在当前目录有什么内容 |
#clear 清屏 |
#cd c(Tab)快捷 |
十一、
useradd添加用户 eg:#useraddU1 #password U1 |
groupadd添加组 |
usermod修改 |
groupmod修改 |
Userdel 删除 |
groupdel 删除 |
12、计算机/里文件夹(目录)的意义
bin 放命令
sbin 放管理员才能执行的命令
etc linux里最重要的目录,全部配置信息
root 很特别的目录,管理员目录
usr和opt 装软件
Tmp 临时文件夹,谁均可以在tmp里建东西,但彼此不能够删除