软件:
程序(源代码)文档 数据
软件测试:
以手工或者自动化的手段,测软件的源代码,数据,文档 核对与用户预期是否一致
软件不会消亡,但是会升级,不让用户访问(服务器仍然存在)
软件生命周期:(从无到有的过程)
1、市场需求调研
2、可行性研究:钱、人力、时间、市场、范围、风险。。。
3、产品项目立项
4、需求调研开发:从技术上确认是否可行
5、设计编码测试
6、发布运行维护
开发与测试模型:
开发模型:
1、瀑布模型:
计划-需求分析-设计-编码-测试-运行维护
缺点:
1、越往后,发现问题,修复成本高
(需求分析阶段发现问题修复成本最低)
2、软件长什么样在测试阶段才能发现,有风险,可能不满足需求
优点:
1、自上而下每个流程很清晰
2、适合周期特别长,一年的项目,而且要强调早计划
2、原型模型:
demo,低保真(灰色),高保真(彩色)
克服瀑布模型的一个缺点:到测试阶段才看到软件长什么样,在需求阶段就加入原型图
原型图:设计做 现在是专业的角色:交互
引发了一个缺点:限制了开发和设计的想法
适合稳定的项目
3、RUP模型
用例驱动,以体系结构为核心,迭代及增量的软件过程模型
需要有架构师,适合耦合度比较低的项目,已经确定了功能 将不允许变更
4、敏捷模型:
主流的模型,周期非常快
以人为核心,迭代,循序渐进的方法
测试模型:
1、V模型
测试介入过晚,发现问题过晚,修复问题成本高
2、W模型
文档都是测试写
确认:参照用户需求
验证:参照需求文档
测试等级:
针对不同研发阶段的测试目的,测试活动分为:
1、需求测试:
软件中70%-80%的错误是由于需求文档造成的
对需求文档的评审:不一致性 完整性 二义性
需求文档评审会:开发 测试 项目经理 产品
2、组件/单元测试:
开发做,对代码的测试,参照详细文档---白盒测试
3、集成测试
又叫接口测试,开发和测试都做,参照概要文档----灰盒测试
4、系统测试
测试做,参照需求文档-----黑盒测试
测试系统中会有缺陷,--开发改---测试要回归--有一次系统测试---,系统测试需要进行好多次
5、验收测试
全体做,参照用户需求文档
ALpha测试:开发在场,发现问题开发立刻改
Beta测试:公测,开发不在,有问题收集上来统一改
UAT测试:用户可接受度测试
软件测试类型
1、功能测试:参照需求文档
是否有不正确、遗漏或多余的功能
是否满足用户需求和系统设计的隐藏需求
是否对输入做出正确的响应,输出结果能都正确展示
2、性能测试
同时(并发)多个线程处理
压力和负载:同时做,不能分开
压力是个点,负载是过程
页面的性能测试:打开页面的响应速度 2-5-8(S)原则
工具:LoadRunner、JMeter
容量:指的是数据库性能
容量测试:大海捞针难,碗里取针易
3、安全测试
渗透测试
数据保密:刚注册网站,手机号注册,立马给你打电话
权限:管理员、普通用户
用户验证:验证码 密码不可复制
病毒
防攻击
安全日志
SQL注入
跨站攻击
密码加密,账号三次锁定(密码不能简单有多种字符组成:英文 数字 汉字 特殊字符)
4、兼容测试
web:浏览器 谷歌 IE
app:不同手机(android ios) 三星 小米 华为 系统:11 12 13
分辨率:大屏 小屏 曲面屏
不同软件的相同功能 word wps
mysql---SQL server tomcat 4.0---升级到4.1
对杀毒软件的兼容
5、易用行测试
关注:
过分复杂的功能或指令
困难的安装过程,安装测试
错误信息不准确或者过于简单
用户被迫记住太多信息
语法,格式和定义不一致
可靠可移植可修复测试,这三个测试都是带着的
6、
确认测试:
在系统测试过程中会产生缺陷,开发修改,测试再验证这些缺陷有无修复
回归测试:
在系统测试过程中会产生缺陷,开发修改,测试在新版本再验证功能
可以是整个系统的全部功能(完全回归),也可以是某个模块的功能(部分回归)
软件测试方法:
白盒测试:单元测试, 测代码
灰盒测试:集成测试 接口测试, 半代码
黑盒测试:系统测试 不测代码
手工测试、自动化测试
静态测试:需求测试
动态测试:剩下的都是动态测试
探索性测试,发散性测试
软件测试流程
需求分析--测试计划--测试方案--搭建环境--编写用例--等开发转测、冒烟测试,系统测试--测试报告
冒烟测试:一个产品最核心的功能是通过的,冒烟通过率达到98%,如果不通过版本打回
冒烟测试的用例:测试写,就是从刚才的测试用例提取级别最高的用例作为冒烟测试用例
冒烟测试执行者:开发 测试
系统测试
每次系统测试都需要冒烟
系统测试每轮用例的通过率 一次比一次要高很多
bug发现: 1000 300 50
测试结束的标志:
需求上的功能实现了
用例的覆盖率100%
用例的通过率98%
缺陷的遗留率 不超过10个问题,且10个问题不应该有严重的问题
软件质量特性
iso9126:
六大特征:功性易用可靠可移植可修改
iso25010
八大特性
功性兼安易可靠可移植可修改
CMMI
18个过程域
确认 验证 配置CM PPQA PM。。。。组织过程域
软件测试原则:七大原则
1、测试应该尽早介入,早介入,早发现问题,节省成本
2、测试不应该穷尽测试
3、二八法则,8-%的问题存在20%的模块中
4、软件测试是为了寻找缺陷,但是不能保证缺陷
5、杀虫剂原则,测试用例通过发现缺陷,杀虫剂用例,杀的bug
用例基本上三个月一次,当用力发现不了问题时就要更新用例
6、测试依赖特殊的环境
7、软件没有问题是个谬论