1.什么是软件?
软件定义: 软件是计算机程序、程序所用的数据以及有关文档资料的集合。
软件分类: 系统软件和应用软件
- 系统软件: 系统软件是生成、准备和执行其他程序所需要的一组文件和程序。如操作系统、windows、数据库SQL-Server、驱动程序、java语言系统编译环境等
- 应用软件: 计算机用户为了解决某些具体问题而购买、开发或研制的各种程序或软件包。如APP、QQ、微信等。
2.软件测试是什么?
IEEE定义:
使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
书本定义:
为了发现程序中的错误而执行程序的过程
软件测试的目的:
- 软件测试为了发现程序存在代码或业务逻辑错误;
- 软件测试为了检验产品是否符合用户需求;
- 软件测试为了提高用户体验。
3.软件测试的原则
- 软件测试应该尽早介入。
- 所有的测试都应追溯到用户需求。
- 程序员应该避免检查自己的程序。
- 设计测试用例时应当考虑到合法输入和不合法输入以及各种边界条件,特殊情况下还要制造极端状态和意外状态。
- 二八原则,测试发现的错误中80%可能起源于20%的模块。
- 对错误结果要进行一次确认的过程。
- 制定严格的测试计划。
- 完全测试是不可能的,测试需要终止。
- 妥善保存测试过程中的所有文档。
4.软件测试的对象
- 程序
- 数据
- 文档
5.软件测试的分类
按测试执行阶段划分:
- 单元测试
- 集成测试
- 系统测试
- 验收测试(正式验收--严密程度接近于系统测试、alpha、beta)
按测试技术划分
- 白盒测试--需要有一定的代码功底
- 黑盒测试
- 灰盒测试--多用于集成测试、接口测试属于灰盒测试
按测试对象是否运行划分
- 动态测试
- 静态测试(文档检查、代码走查、界面检查)
按不同的测试手段划分
- 手工测试
- 自动化测试
按测试包含的内容划分
功能测试、界面测试、安全测试、兼容性测试、易用性测试、性能测试、压力测试、负载测试、恢复测试(灾备)其他测试
-
冒烟测试
==(大流程走一遍。开发提测后,需要进行冒烟测试,确认软件可测后,再开展严密的系统测试,冒烟归于系统测试)== -
回归测试
==(确定bug已经被修复、确定已修复的bug没有影响其他的功能)== -
探索性测试/自由测试(测试思维)
6.软件测试分类的说明
名称 | 说明 |
---|---|
性能测试 | 性能测试是为获取或验证系统性能指标而进行测试。多数情况下,性能测试会在不同负载情况下进行 |
负载测试 | 负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。更多体现一种方法或一种技术。为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等。 |
压力测试(强度测试) | 压力测试分为高负载下的长时间(如24小时以上)的稳定性压力测试或极限负载情况下导致系统崩溃的破坏性压力测试。主要为了确定系统稳定行。可以快速发现内存泄漏问题,还可以快速发现影响系统稳定性的问题。 |
恢复测试 | 主要检查系统的容错能力。采用各种办法强迫系统失败,然后验证系统能否在指定时间间隔内尽快恢复并重启系统。 |
易用性测试 | 测试软件是否易用,主观性比较强,一般要根据很多用户的测试反馈信息,才能评价易用性。(同类型产品) |
回归测试 | 指错误被修正后或软件功能、环境发生变化后进行(开发修改)的重新测试,确认修改部分不会对其它功能造成影响 |
Alpha测试 | 一种前期的用户测试,公司内部组织员工及部分用户,模拟实际操作环境下进行的验收测试(内测、环境可控) |
Beta测试 | 一种后期用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行,在一个或多个真实环境下发布版本,进行测试(公测) |
7.软件测试常见的误区
-
调试和测试是一样的。
==测试是发现问题,调试是定位问题并解决问题== -
测试组应当为软件质量负全责。
-
把开发人员安排做测试
-
过分的依赖Beta测试(验收测试)
-
测试是可以穷尽的
-
测试是枯燥乏味的,缺乏创造力的工作
==作为专业的测试人员,你需要利用各种各样的工具、和方法,创造各种各样的场景去折磨软件,最终保证软件的质量。所以测试是一份具有创造力的工作==
8.常识普及
- C/S与B/S架构
CS: client-server---这种就是我们一定要安装客户端才能使用的软件,就叫C/S,APP全部都是C/S
缺点: 每次更新,都需要更新服务端与客户端。B/S: browser-server:只需要一个浏览器,就可以访问服务的,就叫B/S。
优点: 只需要更新服务器就OK,不需要去更新浏览器。用户主动性比较高,如天猫、淘宝。9.笔试题整理
- 什么是软件测试?软件测试的目的是什么?
软件测试是指为了发现软件错误而执行程序的过程。软件测试的目的有:1.软件测试是为了发现程序存在代码或业务逻辑错误;2.软件测试是为了检验软件是否符合用户需求;3.软件测试是为了提高用户体验。
- 软件测试的分类都有哪些?
1.按测试执行阶段分:单元测试、集成测试、系统测试、验收测试(正式验收、alpha测试、beta测试;2.按测试技术划分:白盒测试、黑盒测试、灰盒测试;3.按测试对象划分:动态测试、静态测试(代码走查、文档检查、界面检查);4.按不同的测试手段划分:手工测试、自动化测试;5.按测试内容划分:功能测试、性能测试、界面测试、安全测试、兼容性测试、易用性测试、恢复性测试、压力测试、负载测试
- 什么是黑盒测试?
不关注被测对象内部结构,而是着眼于程序的外部结构,以用户的角度,检查程序能否适当的接收输入数据而产生正确的输出信息,检查程序是否满足了用户需求。
- Alpha、Beta测试的区别?
Alpha:Alpha测试是一种前期的用户测试,公司员工或部分用户,在模拟实际环境下进行的验收测试,alpha的测试环境是可控的。Beta:Beta测试一种后期的用户测试,此时系统已通过内测,大部分错误已经修正,即将正式发行,在一个或多个正式环境下发布版本,进行测试,即公测。beta由专门的人员收集缺陷,beta测试的环境是不可控的。