测试理论知识笔记

来源:互联网 发布:mac 中英文切换灯不亮 编辑:程序博客网 时间:2024/06/06 13:17

一.软件生存周期模型及其模型是什么?

1.软件生存周期模型:描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段或机动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调,便于各种人员的有效通信,有利于活动重用,有利于活动管理。常见的软件生存周期模型有瀑布模型、演化模型;


2.瀑布模型



3.演化模型  

也叫迭代式模型,演化模型适用于对软件需求缺乏准确认识的情况,流程:第一次迭代(需求->设计->实现->测试->集成)->反馈;第二次迭代(需求->设计->实现->测试->集成)->反馈->……

演化模型可以在软件研发过程中及时跟用户沟通,给用户演示,跟用户确认目前的功能是否符合需求,从而及时改进

而瀑布模型的是严格遵照各个流程下来,经常造成软件开发完成后,才发现功能与用户的需求不符合

演化模型是瀑布模型的改进、改良


二.软件测试的分为哪几个阶段?各自的策略和要求是什么?

软件测试的阶段:单元测试、集成测试、确认测试、系统测试、

1.单元测试:检查每个程序模块是否正确实现了规范和需求。单元测试主要是设计测试用例,一般使用边界值测试、等价类划分这种黑盒测试, 还要针对程序的逻辑结构来设计测试用例,就是所谓的白盒测试;

白盒测试主要用路径覆盖法,其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
(1)语句覆盖每条语句至少执行一次。
(2)判定覆盖每个判定的每个分支至少执行一次。
(3)条件覆盖每个判定的每个条件应取到各种可能的值。
(4)判定/条件覆盖同时满足判定覆盖条件覆盖。
(5)条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
(6)路径覆盖使程序中每一条可能的路径至少执行一次。

2.集成测试:把已测试过的各个模块组装起来测试,一般考虑各个子功能组合起来,能否达到预期要求的父功能;一个模块的功能是否会对另一个模块的功能产生不利的影响; 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度


集成测试的策略有:自顶向下测试、自底向上测试。自底向上测试:从程序模块结构中最底层的模块开始组装和测试

步骤一: 按照概要设计规格说明,明确有哪些被测模块;

步骤二: 在步骤一的基础上,按时间线序关系,将软件单元集成为模块,并测试在集成过程中出现的问题;

步骤三: 将各软件模块集成为子系统(或分系统)。检测各自子系统是否能正常工作。

步骤四: 将各子系统集成为最终用户系统,测试是否存在各分系统能否在最终用户系统中正常工作


3.确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。主要是前面说的Alpha测试和Beta测试。


4.系统测试:是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试


主要测试方法是:功能测试、安全测试、性能测试

三.什么是a测试和b测试?

验收测试可以分成Alpha测试和Beta测试。
Alpha测试是由用户在开发环境下完成的测试,Beta测试是由用户在用户环境下完成的测试。


四.系统安全性应该从哪几方面去测试?

安全测试主要从访问权限、SQL注入、恶意攻击、数据加密几方面去测试

访问权限就是同一个浏览器,登录A,新开页面退出A,再登录B,这样就是B去操作用户A的数据,应该不能操作,页面应该自动刷新为B的页面,这就是访问权限

安全测试,关于数据加密,攻击者可以用fiddler,截取请求和响应,故要对用户登录名、密码等进行加密,不能明文显示

还有对关键的,如成果IP、支付宝账号、交易ID等业务中关键的Id 进行加密显示

fiddler就是查看关键数据是否有加密显示。用fiddler看能否随意删除和插入别人的数据,比如用fiddler删除别人的成果,应该是只能自己删除自己的。用fidderl将别人的成果加入到我的成果列表中

其他的SQL注入和XSS攻击,就是要将特殊字符的危险字符进行过滤,如<>


五.软件测试基本流程

测试准备-测试计划-测试需求-测试用例-测试执行-测试缺陷管理-测试报告总结
缺陷流程管理:new- open-fix-(reopen)-close

原创粉丝点击