一、 软件测试的引入

1.学习软件测试前的思考

软件测试就是测试程序吗?(不是,软件包括程序丶数据以及文档,所以不止是测程序)
测试是不是装上软件后点鼠标、敲键盘?(不全是,测试是一个过程包括需求分析丶测试计划丶用例设计丶执行用例丶测试评估以及总结)
怎么开始测试工作?第一个任务是什么?(第一个任务测试需求分析)
测试早做好还是晚些做好?(早做好)
测试需要谋划或者规划吗?(需要测试计划,分析软件哪些测哪些不测,什么时候测,哪些人做哪些测试,需要的测试时间 ,测试所遇到的问题包括怎么解决)
测试要做到非常全面吗?尽善尽美?(后面系列文章会提到)
谁会参与测试?谁做最合适?(用户丶开发以及测试人员,测试做最合适,开发人员没有测试人员的思路对于自己开发的软件很多缺陷是找不出来的,用户其实也非常适合测试,但是用户不懂测试)
测试的最终任务是什么?测试是为了证明软件很棒吗?(寻找缺陷,看软件最终是否符合用户的需求,分开来讲测试每个阶段的任务是不一样的,测试早期预防缺陷,测试中期是发现缺陷并解决缺陷,测试后期是也就是用户手里是要给用户建立对产品的信心;恰恰相反测试是证明这个软件不棒有问题,并把问题挖出来)
如果你找到一个缺陷,你该怎么办?(提交给开发并跟踪缺陷有没有解决)
找到的缺陷一定要修改吗?你要不要去修改缺陷?(不一定要修改,测试人员不要去修改,如果改好了那么奖金归谁毕竟是开发人员开发的,改错了自己背锅)
你希望发现的缺陷越多还是越少?(从测试人员的角度来说那是越多越好,在产品交付给用户之前把缺陷发现的越多,那么开发就能将这些缺陷解决,从而提高软件质量,毕竟都是在一条绳上的蚂蚱)
缺陷修改后一定会对软件带来有益的影响吗?(后面系列文章会提到)
测试是一次性的任务吗?(不是一次性的任务,而是一个迭代的过程即反复丶重叠)
公司中开发和测试人数上哪种应该更多些?(后面系列文章会提到)

2.回顾软件的概念与分类

2.1软件的概念
软件是计算机系统中与硬件相互依存的一部分,包括程序、数据以及与其相关文档的完整集合。
程序是按事先设计的功能和性能要求执行的指令序列;
数据是使程序能正常操作信息的数据结构;
文档是与程序开发、维护和使用有关的图文材料。
2.2软件的分类
按重要性
系统软件
支持软件
应用软件
按架构
单机版软件
分布式软件:C/S 架构 B/S 架构

3.软件失效

3.1 软件都是安全的吗?软件中有错误吗?
1991 年,爱国者导弹防御系统
美国爱国者导弹防御系统是里根总统提出的战硌防御计划(即星球大战计划), 海湾战争中,用于拦截伊拉克飞毛腿导弹,但在沙特阿拉伯的多哈中失利,28名美国士兵丧生。
分析发现症结在于一个软件缺陷,系统时钟的一个很小的计时错误积累起来到14 小时后,跟踪系统不再准确。在多哈的这次袭击中,系统已经运行了 100多个小时。
1994 年,迪斯尼狮子王游戏
迪斯尼公司发布了第一个面向儿童的多媒体光盘游戏:狮子王动画游戏,迪斯尼公司进行了大量促销宣传,结果,销售额非常可观,该游戏成为孩子们那年节假日的“必买游戏”。12 月 26 日圣诞节的后一夭,迪斯尼公司的电话支持技术员们淹没在来自于愤怒的家长并伴随着玩不成游戏的孩子们哭叫的电话之中,报纸和电视新闻进行了大量的报道。
后来证实,迪斯尼公司的软件在极少数系统中工作正常(如在迪斯尼程序员用来开发游戏的系统中),但在大多数公众使用的系统中却不能运行。
2000 年,千年虫问题
20C70S,美国一程序员位公司开发工资系统,当时的计算机存储空间很小,为了节省存储空间,把 4 位数日期缩减为 2 位数,如 1973—73。他简单地认为,只有在到达 2000 年他的程序计算 00 或 01 这样的年份时问题才会发生问题,他认定在 25 年之内程序肯定会升级或替换,而且眼前的任务比现在计划遥不可及的未来更加重要。后来,程序员退休了,程序仍然在使用,谁也不会想到如何深入到程序中检查 2000 年兼容问题,更不用说去修改了。
据估计,世界各地检查和解决 2000 年兼容问题和错误花费了数千亿美元。
2006 年,ATM 机故障,男子恶意取款事件
2009 年,广州火车站售票系统瘫痪 2 个半小时
3.2 软件危机(software crisis)
20 世纪六七十年代,出现了软件数量急剧增长,但软件失败率高速上升的现象。
1968 年初,北大西洋公约组织的在联邦德国召开的国际学术会议上,计算机科学家们正式提出了“软件危机”(Softwre Crisis)。
对进度和成本估计不准确,开发成本远远超出预算,项目进度和软件开发效率严重滞后;
用户对提交的产品经常会不满意;
产品的质量不可靠,缺陷很多,维护成本非常高;
软件开发过程的文档匮乏。
3.3 软件为什么会失效?
缺陷产生的原因
二、软件测试的定义
1.软件测试的起源与历史
早期软件开发中,没有测试的概念,开发所做的是调试,目的是发现并纠正软件中的故障。
1957 年,测试与调试被区别开来。但认为测试工作应该往后推,潜意识里认为,测试的目的验证产品能工作。
1972 年,在美国北卡罗来纳大学举行了首届软件测试正式会议,Bill Hetzel(比尔•海泽尔)在会上正式定义软件测试概念。
1979 年,Glenford J.Myers(迈尔斯)在《软件测试艺术》中给出测试的经典定义:测试是为了发现错误而执行程序的过程。
1983 年,IEEE(Institute of Electrical and Electronic Engineers)给出了软件测试的标准定义,并制定了测试的标准。
1996 年,Kent Beck(肯特•贝克)在极限编程 XP 方法论中提出 TDD 测试驱动开发理论。
2009 年,James A.Whittaker(惠特克)提出探索式测试理论。
2.早期测试如何进行?
3.软件测试的定义
3.1 经典定义
1979,Myers,《软件测试艺术》
测试是为发现错误而执行程序的过程。
理解:
测试是为了证明程序有错,而不是证明程序无错误。
一个成功的测试是发现了至今未发现的错误的测试。
3.2 标准定义
1983,IEEE
使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
理解:
测试是在用户需求和开发技术之间找一个平衡点。
3.3 国内定义
GB/T 11457
依据规范的软件检测过程和检测方法,按照测试计划和测试需求对被检测软件的文档、程序和数据进行测试的技术活动。
软件测试是一个过程,测试不只是测试执行,它包括从计划开始到测试结束的一系列活动。
软件测试需要测试方法和技术,或者说技巧。
软件包括程序、数据和文档,除了执行程序,数据和文档也需要测试。
3.4 其他理解
不同时期关于测试的其他定义
确信程序做了它应该做的事(Hetzel,1973)。
确认程序正确实现了所要求的功能。
查出规格说明中错误,以及与规格说明不符的地方。
测试是一切以评价程序或系统的属性、能力为目的的活动;测试是对软件质量的度量(Hetzel,1983)。
评价程序或系统的过程。
测试是与软件开发或维护工作并行进行的一个过程。
测试是一个获取信息,降低决策风险的过程。通过测试,向整个团队提供关于产品质量和项目环境的信息,帮助他们做出决定。

三、软件测试的过程

1.分析测试需求
测试人员对用户的需求进行分析,了解软件要做什么,怎么做,进而确定将来怎么测试。
2.编写测试计划
测试负责人编写测试计划;
测试计划的内容
包含产品概述、测试范围/测试区域/测试项、 测试目标/被测特征、测试优先级、测试配置/测试资源(硬件、软件、人力、技术等)、测试周期、进度安排(测试任务、人员安排)、 测试策略、测试方法/途径、测试交流、风险分析、测试标准、需交付文档等内容。
3.设计与编写测试用例
设计用例主要反映在编写测试点上;
根据公司格式或者选择一些模板编写测试用例。
4.执行测试
搭建测试环境;
执行测试用例,记录测试事件;
提交和跟踪缺陷。
5.评估与总结
分析实际测试与计划的偏差;
收集并提交各种测试文档和数据,对数据进行分析;
给出是否继续测试还是终止测试结论;
总结经验教训。

四、软件测试的目的/目标

五、区分三个概念
1.测试 & 调试
在目前的开发和测试中,谁去寻找软件中潜在的问题?发现缺陷后谁去修改?

2.软件质量保证 & 软件测试
软件质量保证(SQA,Software Quality Assurance)

软件测试入门之软件测试的概念与过程(精辟内容)相关推荐

  1. 视频教程-软件测试入门视频教程-软件测试

    软件测试入门视频教程 河北师大软件学院测试教室主任.项目基地测试经理;尚大学.金牌讲师.擅长技术: 项目模块化流程设计.软件测试流程设计及优化.项目管理平台的整合与应用.功能性自动化测试工具.性能测试 ...

  2. 软件测试入门之软件测试的概念与过程(精辟干货)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 温馨提示:目录在文章右侧栏 文章目录 一. 软件测试的引入 1.学习软件测试前的思考 2.回顾软件的概念与分类 2.1软件的概念 ...

  3. 软件测试入门随笔——软件测试基础知识(一)

    Q1:什么是软件测试? 广义概念:软件测试师是指软件生存周期中所有检查.评审和确认工作,其中包括了对分析.设计阶段,以及完成开发后维护阶段的各类文档.代码的审查和确认. 狭义概念:识别软件缺陷的过程, ...

  4. 软件测试入门之软件测试的原则与测试工程师的要求(了解即可)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/1 ...

  5. 软件测试入门随笔——软件测试基础知识(七)

    测试性能模型分析 1.曲线拐点模型 这个图中X轴为并发用户数,随着并发用户数的增大,二维空间被划分为三个区域:轻压力区.重压力区和拐点区. Y轴表示资源利用率.吞吐量和响应时间,应该以X为自变量来逐一 ...

  6. 软件测试 -- 进阶 8 软件测试流程和过程

    盖天下之事,不难于立法,而难于法之必行:不难于听言,而难于言之必效.-- 明 · 张居正     释译:天下大事,困难的不在于要制定什么法律,而在于立了法就一定要执行:重要的不在于说什么,而在于说之后 ...

  7. 软件测试 -- 进阶 1 软件测试思想

    思维决定行为,行为决定结果. -- 培根<习惯论> 软件测试 -- 入门,阐述了软件测试是什么以及所关联的基础知识,让初识者对软件测试有一个初步认知.形成软件测试基础知识框架. 软件测试 ...

  8. 软件测试的概念与过程----学习软件测试前的思考

    软件测试的概念与过程----学习软件测试前的思考 1.软件测试工作是做什么的? 2.那我做软件测试拿到一个软件产品我应该从哪里测试,怎末开始工作? 3.测试早做好还是晚一些做好? 4.软件测试能将软件 ...

  9. 史上最全软件测试入门到精通【测试+测开】

    测试学习大纲梳理 根据本人过往学习经验与理解,整理了一些关于测试学习内容与顺序,涵盖了基本软件测试工程师需要掌握的所有技能,希望可以给想了解的小伙伴们一些指引与帮助,有错误或需求的欢迎留言指出~ 学习 ...

最新文章

  1. 语音识别(ASR)评估指标-WER(字错误率)和SER(句错误率)
  2. 数据库收缩(sql2008)
  3. 攻破MySQL性能瓶颈必知的调优技巧
  4. 【Android 逆向】Android 系统文件分析 ( cpuinfo 处理器信息文件 | self 当前进程信息文件 | meminfo 当前内存信息文件 )
  5. ppp协议pap验证过程状态转移图_电脑网络知识:TCP协议的高级特性,你所不知道的TCP...
  6. 隐藏的图片在浏览器中的请求
  7. vscode调试Flutter
  8. 2.VMware View 4.6安装与部署-域环境
  9. KMP + 求最小循环节 --- HDU 1358 Period
  10. matlab方差分析
  11. 机房服务器存放位置要求,服务器机房建设设计要求规范.doc
  12. java 中文变拼音包,中文转化为拼音工具包
  13. 三星S7Edge刷了鉴机大师的Android8的增强版,超级流畅省电_我是亲民_新浪博客
  14. TkMybatis的使用
  15. 基于pg_qualstats和hypopg的自动索引调优
  16. 仿雷速体育app踢足球tab
  17. Nodejs—即时通讯
  18. #新技能# ps 简单抠图【持续更新】
  19. 移动开发者如何获取免费流量
  20. 由于无法验证发布者,Windows已经阻止此软件

热门文章

  1. Auto.js 设置通知栏
  2. 一个小型企业网络方案设计龙腾
  3. 非常感人的分手对白:伤感日志
  4. python循环语句if语句的题目_Python if语句 for语句 while循环的练习
  5. Axure交互式设计
  6. 用Python破解有道翻译反爬虫机制
  7. Android Doze模式
  8. redis之发布订阅
  9. ​CAD图纸怎么转换成PDF格式?这两种方法快速转换
  10. Vue与Spring boot基于RSA非对称加密进行前后端交互