【软件测试】3.深入了解软件测试基础day1
深入了解软件测试基础day1
一、开发过程模型
在软件开发的几十年实践中,人们总结了很多软件开发模型用来描述和表示一个复杂的开发过程,如:
瀑布模型
瀑布模型的优缺点
优点
- 开发的各个阶段比较清晰。
- 强调早期计划及需求调查。
- 适合需求稳定的产品开发。
缺点
- 依赖于早期的需求调查,不适应需求的变化。
- 单一流程不可逆。
- 风险往往延至后期才显露,失去及早纠正的机会。
- 问题在项目后期才开始暴露。
- 前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败。
改良:沿用瀑布模型的线性思想,在某些重要关注的阶段之间掺入迭代的思想。
快速原型模型的优缺点
- 满足用户的需求并减少由于软件需求不明确带来的项目开发风险。适合预先不能确切定义需求的软件系统的开发。
- 不适合大型系统的开发(适合开发小型的、灵活性高的系统)。前提要有一个展示性的产品原型,因此在一定程度上可能会限制开发人员的创新。
制定计划
风险分析
实施开发
客户评估
软件测试&软件工程
- 软件测试与软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分。
- 在软件工程、项目管理、质量管理得到规范化应用的企业,软件测试也会进行得比较顺利,软件测试发挥的价值也会更大。
- 要关注软件工程、质量管理以及配置管理与软件测试的关系;在不同的开发模式下,如何进行软件测试。
二、软件测试模型
V模型
V模型是最具有代表意义的测试模型。
V模型本身是软件开发中瀑布模型的变种,它反映了测试活动与分析和设计的关系。
V模型标明了测试过程中本身存在的不同阶段,从左到右,描述了开发过程和测试过程间的阶段对应关系。
需求分析
用户需求、业务需求、需求规格说明书。
概要设计
系统架构、模块划分、模块与模块之间的接口。
详细设计
模块内部实现的逻辑和方法。
编码
实现上面的设计。
单元测试
检测代码的开发是否符合详细设计的要求。
集成测试
检测此前测试过的各组成部分是否能完好地结合到一起。
系统测试
检测已集成在一起的产品是否符合系统规格说明书的要求。
验收测试
检测产品是否符合最终用户的需求。
V模型的优缺点:
V模型清楚地标识出了软件开发的阶段。
V模型一大缺点正是它自身的顺序性所导致的。到了测试阶段,程序已经完成,错误已经产生,很多前期的错误一直到测试阶段才发现,甚至无法发现,往往无从修改了。
同时实际的开发过程中,在需求阶段很难把用户的需求完全明确下来,因此,当需求变更时将会导致阶段反复,而且都要重复需求、设计、编码、测试等过程,返工量非常大,灵活性比较低。
W模型
- IEEE std1012-1998《软件验证和确认(V&V)》的原则中提出了在软件的需求和设计阶段也应有测试活动,并且提出了相应的原则;
- W模型由Evolutif公司提出:开发一个V,测试一个V,组合的W模型;
- 测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试。
优点:开发和测试伴随着整个开发周期,需求和设计同样要测试;更早的介入测试,可以发现初期的缺陷,修复成本低;分阶段工作,方便项目整体管理。
缺点:开发和测试依然是线性的关系,需求的变更和调整,依然不方便;如果没有文档,根本无法执行w模型;对于项目组成员的技术要求更高!
定义:开发一个v;测试一个v组合起来的模型(w模型也叫双v模型)
总结:v模型适用于中小企业,w模型适用于中大型企业(因为人员要求高)
三、软件测试分类
黑盒测试的分类
功能测试(functiontesting)
是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
- 安装测试(installationtesting)
- 逻辑功能测试(functiontesting)
- 界面测试(UItesting)
- 易用性测试(usability testing)
- 兼容性测试(compatibilitytesting)
性能测试(performance testing)
是软件测试的高端领域,性能测试工程师的待遇和白盒测试工程师不相上下,通常我们所说的高级软件测试工程师一般就是指性能测试或是白盒测试工程师。
- 时间性能(事务响应时间等)
- 空间性能(系统资源消耗)
- 稳定性测试
- 负载测试:通过负载测试来确定在各种工作负载下,系统各项性能指标的变化情况。
- 压力测试:通过确定一个系统的瓶颈或者刚好不能接受的性能点,来获得系统能够提供的最大服务级别。
随机测试(探索测试)
随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。
另外,对于软件更新和新增加的功能要重点测试。
重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressivetesting)一起进行。
四、测试用例
定义:测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果,以便测试是否满足某个特定需求。
通过大量的测试用例来检验软件的运行效果,它是指导测试工作进行的依据。
等价类划分法
等价类划分是一种重要的、常用的黑盒测试方法,不需要考虑程序的内部结构,只需要考虑程序的输入规格即可。
它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。
在有限的测试资源的情况下,用少量具有代表性的数据就得到比较好的测试效果。
等价类思考步骤
1、先确定有效和无效等价类
2、有效等价类就是题目条件(两端的极值(边界值)要判断、中间随意一个值也要判断)
3、无效等价类先划分与条件相反的情况,再找到特殊情况(中文、英文、特殊符号、空格、不输入)
通过上面的案例,我们可以总结一下,当我们在测试文本框的程序可以考虑如下的情况:
1:文本框要求输入的长度
2:输入的类型
3:组成规则
4:是否为空
5:是否重复---区分大小写?
6:是否去除空格