一、软件测试基本概念
1.软件=程序+文档,软件测试=程序测试+测试文档。
“软件”是指能够实现某种功能的指令集合,“文档”是指软件在开发、使用和维护过程中产生的图文集合。
2.软件分类
按功能分:系统软件、应用软件
按技术架构分:单机版软件、C/S结构软件、B/S结构软件(B指浏览器)
按使用的用户分:产品软件、项目软件
按规模分:小型、中型、大型
3.BUG的定义
软件的BUG指软件(包括程序和文档)中不符合客户需求的问题。常见三类BUG:完全没有实现的功能;基本实现了客户需求的功能;实现了用户不需求的功能。
4.测试环境的分类:软件开发环境,软件生产运行环境。测试环境=软件+网络+硬件,搭建环境:真实、干净、无毒、独立。
5.测试用例:指在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和及其结果!测试用例=输入+输出+测试环境。测试用例有两个模板,word和excel,前者适合性能测试,后者适合功能测试。
二、软件测试分类
1.黑盒测试:把被测得软件当作一个盒子,我们不用去关心盒子里面是什么样子的,只需要放东西再取出东西,就像在测试时只关心软件的输入数据和输出结果。
2.百合测试:需要我们了解盒子里面是什么样的,去研究里面的源代码和程序结构。
3.静态测试:不实际运行被测软件,而只是检查程序代码、界面或文档中可能存在的错误。
4.动态测试:实际运行代码,输入相应的测试数据,检查实际输出结果和预期结果是否相符。判断一个测试是动态测试还是静态测试,就可以看它是否运行了程序。
注:同一个测试,既有可能属于黑盒测试,也有可能属于动态测试;既有可能属于静态测试,也有可能属于白盒测试。他们之间有可能会交叉。
5.单元测试:编译运行程序->静态测试->动态测试
6.集成测试:单元测试的下一个阶段,指通过测试的单元模块组装成系统或者子系统,再进行测试,重点测试不同模块的接口处。
7.系统测试:将这个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
8.验收测试:在系统测试后期,以用户测试为主,或有测试人员等质量保障人员共同参与测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为α测试和β测试,α测试是指由用户、测试人员、开发人员等共同参与的内部测试。β测试指在内测之后的公测,完全交给最终用户测试。
9.功能测试:是黑盒测试的一种,它检查软件的功能是否符合用户的需求。功能测试又可细分很多种:逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试等。
10.性能测试:它包括很多方面,主要分时间性能和空间性能测试两种。时间性能:主要指软件的一个具体事务的相应时间。空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分一般性测试、稳定性测试、负载测试和压力测试。
一般性测试:指让被测系统在正常的软硬件环境下运行,不向其施加任何压力的测试。
稳定性测试:即可靠性测试,是指连续运行内测系统,检测系统运行时的稳定程度。我们常用MTBF(错误发生的平均时间间隔)来衡量系统的稳定性,越大稳定性越强。
负载测试:通常指被测系统在其能忍受的极限范围内连续运行,来测试系统的稳定性。
压力测试:指连续不断地给被测系统增加压力,知道被测系统被压垮为止,用来测试系统能承受的最大的压力。
假设一个很轻松的就能被一袋大米,背两袋米很吃力,最多就能背三袋,那么:
一般性测试:我就让他背一袋米。
稳定性测试:让他背一袋米,但让他去操场上跑圈,看你多久累倒。
负载测试:让他背两袋米去操场跑圈,看他多久累倒。
压力测试:让他背两袋米、三袋米、四袋米。。。最后发现他最多就能背三袋米。
11.回归测试:指对软件的新版本测试时,重复上一个版本的测试用例。
12.冒烟测试:在对新版本进行大规模的测试之前,先验证一下软件的基本功能是否还存在,是否具备可测性。
13.随机测试:指测试中所有的输入数据都是随机生成的,真实意图是模拟用户的真实操作,并发现一些边缘的问题。
三、测试工程师
1.具备的基本职业素质:三心二意一能力。三心:细心、耐心、信心;二意:服务意识、团队意识;一能力:沟通能力。
2.如何成为一名优秀的测试工程师:
内功:即基础知识,包括计算机硬件、网络、操作系统、数据库等。
测试技术:黑盒测试中等阶类、边界值、因果图等,白盒测试中的语句覆盖、分支覆盖、路径覆盖等。
不断学习充电、阅读原版书籍、阅读缺陷管理系统中的系统报告、阅读高手写的测试用例、学习产品相关的业务知识。
3.SQA:软件质量保障,CMM是SQA用来监督项目的一个标准质量模型,SQA按照它上面的各种规则来检验各种各样的项目。CMM:能力成熟度模型。
4.软件测试的原则:
1)zero bug:指软件没有一个bug。(没有bug是不可能的,我们只能想方设法把bug数量控制在看忍受的范围之内。)
good enough:指只要软件达到一定的质量要求时,就可以停止测试了。
2)不要试图穷举测试。
3)开发人员既不是运动员也不是裁判员。
4)软件测试要尽早执行。
5)软件测试应该追溯需求。
6)缺陷的二八定理:缺陷的集群现象或是虫子窝现象。
7)缺陷具有免疫性。
5.BUG的分类
BUG严重级别:Severity,指因缺陷引起的故障对软件产品的影响程度。由测试人员指定。
A:这类BUG导致了死机、产品失败(“崩溃”)、系统无法操作等。
B:功能未实现或导致一个特性不能运行并且不可能有代替方案(包括计算错误)。
C:导致一个特性不能运行但有一个替代方案。
D:BUG是表面化或微小的(提示信息不太准确友好、错别字、UI布局或罕见故障等),对功能几乎没有影响,产品及属性仍可使用。
E:建设性的建议或意见。
BUG优先级:指缺陷必须被修复的紧急程度。由BUG分配者(开发组组长/经理)指定。
5:立即进行修复,阻止与此密切相关功能的进一步测试。
4:必须修改,发版前必须修改。
3:必须修改,不一定马上修改。
2:如果时间允许应该修改。
1:允许不修改。
6.缺陷类型(TYPE):根据缺陷的自然属性划分的缺陷种类。
bulid:由于配置库、变更管理或版本控制引起的错误。
data :数据、数据库、计算错误等。
function:影响了重要的特性、产品接口、硬件结构接口和全局数据结构。如逻辑、指针、循环、递归、功能等缺陷。
interface:与其他组件、模块或设备驱动程序、调用参数、控制块或参数列表相互影响的接口缺陷。
performance:不满足系统可测量的属性值,如:执行时间,事务处理效率等。
reqiurement:需求方面缺陷,如:不明确、错误、考虑不全面等。
user Interface:人机交互接口:屏幕格式,页面排版、控件位置等方面的缺陷。
其它:未知错误。
7.BUG状态(STATUS)
指缺陷经过一个修复过程中的进展情况。包括Open、Fixed、Closed及Postponed等状态。
Open:测试人员提交新发现的问题所使用的标志。或者是任务分配人对该问题准备进行修改并对个问题分修改人员所使用的标志。对没有进入此状态的BUG,程序员不用管。
Fixed:为开发人员修改问题后做标志的状态,修改后还未测试。
Closed:为测试人员对修改问题进行验证后通过所标志的状态。由测试人员改变。
Postponed:1.由于开发时间、进度、重要程度或者技术、设计、需求等方面的原因,认为不能解决、需延迟解决、或本版本不做解决,待到后续版本再来解决。2.因设计结构问题无法修改。测试人员认为它不符合逻辑、也不符合用户的要求,但开发人员则认为死按照设计做的、只能做如此处理,否则修改代价太大,这种问题可以拖后处理。
duplicated:BUG被重复提交。
Not error :测试人员理解错,不是BUG。
8.提交BUG注意事项:确保重现、要用最少且必要的步骤描述BUG、简洁准确完整、一个BUG一个报告。
9.常见的BUG管理工具:TD、Track Record、Clearquest、Bugzilla、Mantis、JIRA。
四、软件测试工具简介
1.一般软件测试工具:黑盒测试工具、百合测试工具、测试管理工具。
2.MI loadrunner:性能测试。MI winrunner:功能测试。MI testdiretor:测试管理工具。MI QTP:功能测试工具
原文地址:https://www.cnblogs.com/weno/p/9822947.html