什么是软件?
软件是计算机中与硬件相结合的一部分,包括程序和文档
软件分类
功能划分:系统软件、应用软件
技术架构划分:C/S结构软件【即客户端】、B/S结构软件【即浏览器页面】
用户划分:产品软件、项目软件
规模划分:小型、中型、大型
测试
包含硬件测试和软件测试[包含程序测试和文档测试]
Bug
指程序运行时出现的故障(以是否满足用户的需求为标准):
完全没有实现的功能
基本实现用户需要的功能,但运行出现错误
实现了用户不需要的功能
软件测试
软件测试就是为了发现错误而执行程序或系统的过程
目的在于检验它是否满足规定的需求或弄清逾期结果与实际结果的差别
测试环境
测试环境=软件+硬件+网络
硬件:PC机(品牌机、兼容机),笔记本、服务器、PDA、手机
系统:XP、Vista、Win7、Mac、Unix、Linux
网络:局域网(10M、100M、1000M)、互联网、3G/4G/5G、WIFI
测试用例
测试方案、测试环境、测试步骤、测试数据、测试结果
测试用例=输入+输出+测试环境
4W
why:为什么要写; 团队交流、重复测试、跟踪统计、用户自测
when:什么时候写; 需求计划、测试计划完成后
who:由谁写; 测试人员
what:根据什么写; 需求分析
测试分类
按阶段:单元测试、集成测试、系统测试、验收测试
是否运行:静态测试、动态测试
查看源码:
白盒测试
黑盒测试
功能:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试
性能:一般性能测试、稳定性测试、负载测试、压力测试
其他:回归测试、冒烟测试、随机测试
黑盒测试:只关心软件的输入数据和输出结果。针对软件的整体功能和性能。
白盒测试:测试源代码和程序结果。针对软件的源代码。
静态测试:不实际运行被测软件,静态的检查程序代码、界面或文档中可能存在的错误的过程。针对代码规范测试。
动态测试:实际运行被测程序,输入相应的测试数据,检查实际输出结果与预期结果是否相符的过程。针对程序运行。
单元测试:指对软件中的最小可测试单元进行检查和验证。
测试对象:最小模块
测试时间:开发编码后,且代码已经通过编译后进行
测试人员:白盒测试工程师或开发人员
测试依据:源程序,代码+注释;详细设计文档;
测试标准:通过所有单元测试。语句覆盖率达到100%。分支覆盖率达到85%。
测试执行:静态检查代码是否符合规范,动态运行代码价差运行结果以及程序的非法数据的容错性、程序的边界处理等。
测试步骤:编译运行程序 ==> 静态测试 ==> 动态测试
集成测试:指将通过测试的单元模块组装成系统或子系统的测试。重点检查各个单元模块结合到一起协同配合正常运行,及参数传递是否正确。
测试对象:模块间的接口
测试时间:单元测试函数的功能后,集成测试函数的接口(即参数传递)。
测试人员:白盒测试工程师或开发人员。
测试依据:单元测试模块;概要设计文档;
系统测试:将整个软件系统看做整体进行测试。针对功能、性能以及软件所运行的软硬件环境进行测试。
测试对象:整个系统
测试时间:系统集成完毕后测试
测试人员:黑盒测试工程师
测试执行:前期主要测试系统的功能是否满足需求;后期测试系统的性能是否满足需求,及系统的兼容性。
测试特点:前送后紧张。是软件交付前用户验收的最后一道关口。
测试依据:系统需求规格说明书文档
验收测试:针对系统测试后期、以用户测试为主或测试人员等质量保证人员共同参与的测试。是软件正式交给用户使用的最后一道工序。
重要性 :设计用户能否最终验收签字并付款。
测试对象:整个系统
测试人员:主要为用户(包含测试工程师)
Alpha测试:由用户、测试人员、开发人员共同参与的内部测试。
Beta测试 :内测后的公测,及完全交给最终用户测试。
功能测试:检查软件的功能是否符合用户需求。
逻辑功能测试:检查程序的算法功能及逻辑处理功能。
界面测试:窗口、菜单、按键、文字、输入数据、提示信息、处理时间、增删改查等
易用性测试:从合理性和方便性等角度对软件系统进行检查;
即:易理解、易学、易操作
安装测试:检查软件能够正确安装和卸载。
1.典型安装、完全安装、自定义安装,检查安装步骤和界面。
2.中断安装后,再次安装的正确性。
3.安装时磁盘空间不足。
4.同一软件能否安装多个版本。
5.程序组、控制面板卸载,检查程序信息是否成功被删除。
6.卸载正在使用的程序
兼容性测试:硬件兼容性测试、软件兼容性测试
单机版软件:各个操作系统的兼容
B/S版软件 :服务器端配置、客户端配置
C/S版软件 :服务器端配置、客户端配置
性能测试:指软件的一个具体事务的响应时间。
标准2/5/10:2s [非常有吸引力]、5s[比较不错]、10s[忍耐上限]
一般性能测试:让被测系统在正常的软硬件环境下运行,不施加任何压力的性能测试。
单机版:推荐配置下运行团建,检查CPU的利用率、内存的占有率等性能指标以及软件主要事务的平均响应时间。
B/S&C/S结构:测试单个用户登录后,系统主要事务的响应时间和服务器的资源消耗情况。
稳定性测试:
MTBF:错误发生的平均时间间隔,用来衡量系统的稳定性。值越大越稳定。
采用24*7的方式让系统不间断运行,具体运行时间,视项目实际情况而定。
负载测试:
测试系统在临界状态下运行是否稳定提供了一种方法。
压力测试:
持续不断的给被测系统增加压力,知道将被测试系统压垮为止,用来测试系统所能够承受的最大压力。
回归测试:
对软件的新的版本进行测试,重复执行上一个版本测试时的用例。
冒烟测试:
指在一个新版本进行系统大规模的测试之前,先验证一下这个软件的基本功能是否实现,是否具备可测性。
随机测试:
指测试总所有的输入数据都是随机产生的,目的是模拟用户的真是操作,发现边缘性的错误。
软件项目运营
客户支付项目总经费的20%作为定金。用于支付软件项目前期的开发成本和效益。
项目中期有个中期评审,客户通过中期评审来检查软件项目的进度和质量。通过中期评审在付50%的经费。
通过验收测试,支付最终的30%。