点赞关注是对我最大的支持,留言可分享测试资料。
先看看软件测试几个大方向吧
1.软件测试定义
- 软件测试(Software Testing),在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量
,并对其是否能满足设计要求进行评估的过程。
2.软件测试工程师的素质
- 良好的沟通和表达能力
- 具有怀疑与破坏的精神
- 扎实的软件测试基础知识
- 缜密的业务逻辑分析能力
- 处在用户的角度进行换位思考
- 足够的耐心、细心、信心、责任心
- 积极乐观向上的心态和团队协作能力
- 要有严谨、敢于承担责任、稳重的做事风格
- 善于自我总结、自我督促和不断学习的能力
3.软件的分类
软件=程序 + 数据 + 文档
按照功能划分:
- 系统软件:如操作系统、数据库管理系统、各种驱动软件等
- 应用软件:如Office、金山词霸、QQ等
按照技术结构划分:
- 单机版本:如Office,画图工具等
- C/S结构软件:如QQ、MSN等
按照用户划分:
- 产品软件:Office、财务处理软件、金山毒霸等
- 项目软件:如为企业定制的OA系统等
按照开发规模划分:
类别 | 参与人数 | 开发时间 |
---|---|---|
小型 | 10人以下 | 1-4个月 |
中型 | 10-100人 | 1年一下 |
大型 | 100人以上 | 1年 |
4.软件测试的对象
- 源码程序/目标代码
- 各开发阶段的文档(需求规格说明、概要设计说明、详细设计说明及其它相关文档)
5.软件测试的目的
- 软件测试的目的是尽可能多地发现软件缺陷。检查系统是否满足需求,站在用户的角度思考产品和项目功能实现的正确性。
- 测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征。可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,通过分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。
6.软件测试的原则
- 所有测试的都应以软件设计需求规格说明书为标准进行
- 应当把“尽早地不断地进行软件测试”作为软件开发者的座右铭。
- 程序员应当避免检查自己的程序。
- 充分注意测试中的集群现象。
- 严格执行测试计划,排除测试的随意性。
- 妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。
- 完全测试不可能。
7.软件测试的分类
按测试阶段来分:
- 1、单元测试:单元测试又称模块测试,针对软件设计中的最小单位–程序模块,进行准确性检查的测试工作。单元测试需要从成勋的内部结构出发设计测试用例。多个模块可以独立地进行单元测试。
- 单元定义:C中中指一个函数,java中指一个类,在图像变化的软件中,单元一般就是指1个窗口,一个菜单。
- 2、集成测试:集成测试又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。重点测试不同模块的接口部分。
- 3、系统测试:指将整个系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
- 4、验收测试:验收测试指按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或者拒收系统。在系统测试的后期,以用户测试为主或有测试人员等保证人员共同参与的测试,验收测试的重要性:验收签字,收钱。(α测试:指的是指的是由用户,测试人员、开发人员等共同参与的内部测试;β测试:指的是内测后的公测,即完全交给最终用户测试)
按是否运行被测程序划分:
- 静态测试:指在不实际运行被测软件,而只是静态的检查程序代码、界面和文档中可能存在的错误过程。
- 动态测试:指实际运行被测程序、输入相应的测试数据,检查实际输出结果与预期结果是否相符。(动态测试方法为结构和正确性测试;动态测试工具Robot、QTP等)
按代码可见程度划分:
- 黑盒测试:指的把被测软件看作一个黑盒子,我们不关心盒子里面的结构是什么样子的,只关心软件的输入数据和输出数据。
- 白盒测试:指的是把盒子打开,去研究里面的源代码和程序结构,往往采用黑盒测试&白盒测试相结合的方式。
- 灰盒测试:介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。
按测试内容划分:
- 功能测试:功能测试是黑盒测试的一方面,它检查软件的实际功能是否符合用户的需求。
- 逻辑功能测试(function testing)
- 界面测试(UI testing)
- 易用性测试(usability testing)
- 安装测试(installation testing)
- 兼容性测试(compatibility testing)
- 性能测试:是软件测试的高端领域,通常我们所说的高级测试工程师一般就是指性能测试工程师。
- 时间性能(事务响应时间等)
- 空间性能(系统资源消耗)
- 一般的性能测试
- 可靠性测试
- 负载测试
- 压力测试
- 回归测试:指对软件的新版本测试时,重复执行上一个版本测试时的用例。
- 冒烟测试:是指对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否能实现,是否具备可测试性。
- 随机测试:是指测试中所有额输入数据都是随机生成的其目的是模拟用户的真实操作,并发现一些边缘性的错误。