一、软件测试的目的和原则
定义
用人工和自动化方式进行测试,目的是通过软件测试找到软件的预期执行效果和实际结果之间的偏差。
预期:就是我们知道或者希望(需求文档给出来的需求)实现的功能和效果
实际结果:软件测试得到的结果比如我们在网页上或者APP里面执行某个功能,得到的结果与实际的偏差
目的
用最少的人力、物力、财力。找到软件中的问题并让程序员修复,降低商业风险。
原则
1、只能证明软件存在问题,不能证明不存在问题这是一个辩证问题只能找到或者没找到问题,但是不能说这个软件是没有问题的因为找bug,每个人的思路和角度不一样。
2、不能进行穷尽(穷举) 测试,应该分类别测试有些情况,我们不能完成全部测试,这时候我们需要进行分类。
分类:可以被搜索到的、不能被搜索到的、特殊情况例如:手机、电脑、服装可以被搜索到K 枪 红房子 ,如果被搜到要么是有bug,要么搜索引擎出问题。特殊情况,在搜索的时候,加进去很多特殊的符号或者数字,测试能否被处理掉,如果没有处理掉就证明有BUG。
3、测试工作要尽早的开展,降低修复成本(需求--UI、开发、测试)测试工作介入越早,软件修复成本越低说明文档是产品经理整理的,然后交给开发。如果开发到了后半阶段,发现需求文档有问题,这个时候我们必须推到重来。对文档的测试,1、有前车之鉴 2、研究可行性报告
4、软件缺陷存在集群现象,二八原则,20%模块存在80%的缺陷例如一个APP或者一个网页有6个页面或者三大功能,其一个功能是复杂,而且开发这个功能的程序员如果技术一般,那么在最后验收bug的时候,会发现100个bug,其中这个地方就会有80个所以说我们要将最大的精力,或者人员匹配度,放在最复杂的功能上。
5、测试依赖系统或环境(系统OS,浏览器)我们测试项目无非两种B/S,C/S如果测试的是C/S,测试手机端我们要准备手机(安卓/IOS),如果是PC端,我们要准备WIN7 WIN8 10 maclinux类桌面系统。B/S 准备浏览器,IE 谷歌 火狐
6、杀虫剂现象如果让程序员自己测试,或者测试团队进行测试。我要进行交替测试工作。个人/团队都会有固化思维软件开发模型软件开发模型,也叫软件的生命周期软件测试与软件的开发模式有很紧密的关系,作为软件测试人员我们要对软件的开发模式有充分的理解开发模型的介绍
在软件测试经过发展周期,开发模型大致分为三种:瀑布模型,快速原型、螺旋模型
瀑布模型特点
线性模型:这个开发模型占据地位重要,模型的基础以文档为驱动,每个阶段执行一次。按照线性顺序进行开发。
瀑布模型的优点
开发的各个阶段比较清晰当前阶段完成后,只关注后续阶段每个成员只关注自己的部分
瀑布模型的缺点
依赖于需求分析。不适应需求变化往往会在后期显露风险,失去尽早纠错的机会如果没有及时发问题,到最后测试阶段才发现则需要推倒重来一般只适用于大型的或者复杂的项目上,比如银行 、保险、建筑
快速原型
特点
快速的构建软件原型,支持用户参与
优缺点
优点:克服了瀑布模型的缺点,减少由于软件需求不明确带来的风险
缺点:不适合大型的项目,只适合比较小的灵活的系统
螺旋模型
特点
引入了风险分析活动
优缺点
优点:螺旋模型很大程度上是一种风险驱动的方法体系
缺点:需要具有相当丰富的风险评估经验
测试模型有 V W 型
V型
优缺点
优点:V模型既包含了底层测试又包含了高层测试
缺点:依赖于需求分析。不适应需求变化往往会在后期显露风险,失去尽早纠错的机会如果没有及时发问题,到最后测试阶段才发现则需要推倒重来一般只适用于大型的或者复杂的项目上,比如银行 、保险、建筑
总结
组成部分用户需求==>需求分析==>概要设计==>详细设计==>编码==>单元测试==>集成测试==>系统测试==>验收测试
优点、只需关注当前阶段、文档驱动、线性模型
缺点、不响应需求变化,不灵活
W模型的优缺点
优点
1.强调测试伴随着整个开发周期,而且测试的对象不仅仅是程序,还包括需求和设计
2.更早的介入测试,能尽早的发现缺陷
缺点
因为是站在更高的角度看问题,所以对于测试技术要求高,实践起来比较困难
软件测试5.11
最新推荐文章于 2024-08-16 18:55:06 发布