软件测试的分类
- 测试阶段划分
- 冒烟测试:在正式开始测试之前,我们会对测试版本进行冒烟测试,如果测试版本的主流程可以通过没有被阻塞或者出现宕机等重大问题就可以进行正式的测试工作了
- 单元测试:最微小规模的测试,测试对象是某个功能或代码,一般是由程序员来做
- 集成测试:是指一个应用系统的内部的各个部件的联合测试,以决定他们是否能在一起共同工作且没有冲突
- 部件可以是代码块、独立的应用、网络上的客户端或服务器程序
- 一般来说接口测试属于集成测试
- 最简单的形式:两个已经测试过的单元组合成一个组件,并且测试他们之间的接口
- 单元测试完成进行集成测试,集成测试是单元测试的逻辑扩展
- 这种类型的测试与客户服务器和分布式系统有关
- 系统测试:是系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件
- 是针对整个产品系统进行的测试
- 系统测试是按照需求文档和测试用例逐步进行测试的
- 测试对象包括测试产品系统的软件、软件所依赖的硬件、外设甚至包括某些数据、某些支持支持软件及其接口等
- 验收测试:是以用户为主的测试,软件开发和QA人员应该参加
- 地点:用户所造地进行
- 目的:发现未实现的需求
- 由用户验证软件产品是否是否满足了所有需求的一些列的验收测试工作
- alpha测试:是由用户在开发环境下进行的测试,也可以是开发机构内部的用户在模拟实际操作环境下进行的测试
- 在开发者受控的环境下测试
- 开发者随时记录下错误情况和使用中的问题
- beta测试:是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试
- 开发者不在测试现场,在开发不受控的环境下进行的测试
- 模拟真实的使用环境下从而发现缺陷的一种测试
- 由用户吉利虾遇到的所有问题,定期向开发者报告
- 测试技术划分
- 白盒测试
- 结构测试或者逻辑驱动测试
- 测试软件产品的内部结构和处理过程,不需要测试软件产品的功能
- 把对象看作是一个打开的盒子
- 覆盖标准
- 逻辑覆盖
- 语句覆盖
- 路径覆盖
- 条件组合覆盖
- 判定/条件覆盖
- 条件覆盖
- 判定覆盖
- 循环覆盖
- 基本路径测试
- 逻辑覆盖
- 测试方法:主要用于软件验证
- 逻辑驱动
- 基路测试
- 常用的工具
- JTest
- VcSmith
- Jcontract
- C++Test
- CodeWizard
- Logisscope
- 黑盒测试
- 功能测试或数据驱动测试
- 常用的工具
- AutoRunner
- Winrunner
- 以用户的角度,通过各种输入和观察软件的各种输出结果发现软件存在的缺陷,不关心程序具体如何实现
- 根据软件的规格对软件进行的测试,不考虑软件背部的运作原理
- 白盒测试
- 按照被测试对象是否运行进行划分
- 动态测试:通过运行软件来检验软件的动态行为和运行结果的正确性
- 步骤
- 单元测试
- 集成测试
- 系统测试
- 验收测试
- 回归测试
- 步骤
- 静态测试:测试不运行的部分,例如产品说明书、对此进行检查和审阅
- 静态方法:是指不运行被测程序本身,进通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性
- 静态方法:通过程序静态特性的分析,找出欠缺和可疑之处
- 不匹配的参数
- 不适当的循环嵌套和分支嵌套
- 不允许的地柜
- 未使用过的变量
- 空指针的引用
- 可疑的计算
- 动态测试:通过运行软件来检验软件的动态行为和运行结果的正确性
- 按照不同的测试手段划分
- 手工测试:是由测试人员一个一个输入用例、然后观察结果和机器测试相对应,属于比较原始但是必须的一个步骤,属于黑盒测试的常用方法
- 自动化测试:自动化性能测试和自动化功能测试
- 性能测试主要是使用测试工具:LoadRunner、Jmeter对软件进行压力测试、负载测试、强度测试等,这些无法用手工代替,必须自动化
- 自动化功能测试包括:单元测试、接口测试、UI测试
- 按测试包含的内容划分
- 功能测试:对产品的功能进行验证,根据功能测试用例逐项测试检查产品是否达到用户要求的功能
- 功能测试:也叫黑盒测试、数据驱动测试,只需要考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码
- 界面测试:界面测试是指测试用户界面的风格是否满足客户要求、文字是否正确、界面是否美观、文字、图片组合是否完美、操作是否友好完美等等
- 测试目标:确保用用户界面符合公司或行业标准
- 用户界面测试、用户分析软件、用户界面的设计是否合乎用户的期望或要求
- 包括:用户有豪华、人性化、易操作测试
- 安全测试:是测试系统在防止非授权的内部或外部用户的访问或故意破坏情况时的状态
- 安全测试期间,测试人员假扮非法入侵者可能采用的方法
- 想方设法截取或破译口令
- 专门定做软件破坏系统的保护机制
- 故意导致系统破坏,企图趁恢复之机非法进入
- 试图通过浏览非保密数据,推导所需信息等等
- 系统安全设计的准则是非法侵入的代价超过被保护信息的价值
- 安全测试期间,测试人员假扮非法入侵者可能采用的方法
- 兼容性测试:测试软件在一个特定的硬件、软件、操作系统、网络等环境下是否能友好地运行
- 向上兼容、向下兼容、软件兼容、硬件兼容
- B/S-web项目
- 在电脑里安装各类浏览器:IE、360、Firefox、chrome、UC等
- 利用工具:IEtester、Spoon Brower Sandbox等,不用安装各类浏览器,直接在工具内进行兼容性测试
- IEtester:聚焦旧版IE的兼容性模拟,适合需适配老旧系统的场景,IE逐步淘汰,实用性降低
- Spoon Brower Sandbox:强调测试环境的隔离性与安全性,适合需要避免本地污染或需多版本并行测试的场景,可与其他工具结合使用
- https://app.crossbrowersertesting.com/
- C/S-系统项目
- 要安装不同的电脑操作系统,一般来说都是windows的不同系统,来检查客户端是否可以正常安装、正常使用
- APP项目
- 对主流手机安装APP,然后进行测试
- 对于公司经费不够的可能没办法购买主流机,可以考虑模拟器
- 测试机型不够的,现在有强大的云测平台
- testin云测
- wetest
- MTC
- 易用性测试:指测试软件是否易用,主观性比较强,一般要根据很多用户的测试反馈信息,才能评价易用性
- 性能测试:是在交替进行负荷和强迫测试时常用的术语,是为获取或验证系统性能指标而进行的测试
- 负载测试:是测试一个应用在重负荷下的表现
- 测试对象承担不同的工作量,评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力
- 目标:确保系统在超出最大预期工作量的情况下仍能正常运行
- 评估的指标:响应时间、事务处理速度
- 压力测试:基本质量的保证行为
- 基本思路:在计算机数量较少或系统资源匮乏的条件运行测试
- 测试的资源:内部内存、CPU可用性、磁盘空间、网络带宽等
- 一般使用并发做压力测试
- 恢复测试:是一个系统在灾难(系统崩溃、硬件损坏或其他灾难性问题)下是否能很好的恢复,是指人为的让软件或硬件出现故障来检测系统是否能正确恢复,当系统出错的时候能否在指定时间间隔内修正错误并重启系统
- 关注:恢复的时间和恢复的程度
- 主要检查系统的容错能力
- 功能测试:对产品的功能进行验证,根据功能测试用例逐项测试检查产品是否达到用户要求的功能
- 其他测试类型
- 冒烟测试:该种测试耗时短,仅用一袋烟的功夫就够了
- 测试对象:新编译的每一个需要正式测试的软件版本
- 目的:确认软件基本功能正常,可进行后续的正式测试工作
- 执行者:编译人员或测试人员
- 回归测试:是指在发生修改之后重新测试先前的测试以保证修改的正确性
- 目的:验证以前出现过但已修复好的缺陷不在重新出现
- 冒烟测试:该种测试耗时短,仅用一袋烟的功夫就够了