软件测试基础知识
一.软件测试重要性
QA(软件测试工程师):将最完美的产品呈现在用户面前
举个栗子:
1)优惠券:满1000赠500下次使用优惠券,购买后退1000元产品
2)打折:5件衣服5折,到货后退4件,相当于一件衣服5折
3)vip:消费满1万元升级vip会员,买东西5折,消费后退1万元产品
4)换购:买1万产品的1000积分,用积分更换产品后退1万元产品
二.软件测试发展趋势及职业发展方向
逻辑能力、逆向思维
1.什么是软件测试?
软件测试就是使用人工或自动化手段来运行或测试某个系统,并发现问题、解决问题的过程,其目的在于检验它是否满足规定的需求或弄清实际结果和预期结果的差别。
2.软件测试的六大法则:1)功 2)可 3)易 4)效 5)维 6)移
法则:1.功能性2.可靠性3.易用性4.效率5.可维护性6.可移植性
3.软件测试的目的:
1)测试是为了发现系统中的错误而执行程序的过程
2)好的测试方案在于竟可能发现迄今为止尚未发现的错误
3)成功的测试是发现了至今为止尚未发现的测试
4)测试并不仅仅是为了找出错误,通过分析错误产生的原因和错误的趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。
5)这种分析也能帮助测试人员设计出针对性的测试方案,改善测试的效率和有效性。
6)没有发现的错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。
三.软件测试基础知识讲解
1.软件测试原则:
1.所有的软件测试都应追溯到用户需求
2.应当把“尽早地和不断地进行软件测试”作为软件测试人的座右铭
3.完全测试是不可能的,测试需要终止
4.测试无法显示系统所有潜在的缺陷
5.充分注意测试中的群集现象:缺陷扎堆,总出现问题的模块,应重点关注,重点测试,多次回归
6.程序员应避免检查自己的程序。
1,每个岗位职责分开
2,易陷入程序,而非业务逻辑
3,自己编写的,很难客观评价
4,思维定势
7.尽量避免测试的随意性
2.软件测试对象:
软件测试不等于程序测试,软件测试贯穿于软件定义和开发的整个期间。需求分析、概要设计、详细设计以及程序编码等各个阶段所得的文档,包括需求规格说明书,概要设计规格说明,详细设计规格说明以及源程序都是测试的对象。
1.程序 2.数据 3.文档 4.过程 5.硬件 6.网络
3.优秀测试人员具备的素质:
软件测试员的一个基本素质是:打破砂锅问到底
1.探索精神:软件测试员不会害怕进入陌生环境,
2.故障排除能手:软件测试员善于发现问题的症结,喜欢猜谜。
3.不懈努力:软件测试员总是喜欢不停尝试。他们可能会碰到转瞬即逝或者难以重现的缺陷;他们不会心存侥幸,而是经一切可能去寻找。
4.创造性:想出富有创造甚至超常的手段来寻找缺陷
5.追求完美:他们力求完美,但是知道某些无法企及时,不去苛求,而是尽力去接近目标。
6.判断准确:软件测试员要决定测试内容,测试时间以及看到的问题是否算作真正的缺陷。
7.老练稳重:软件测试员不怕坏消息
8.说服力:软件测试员要善于表达观点,表明软件缺陷为何而必须修复,并通过实际演示力成熟观点。
4.软件测试阶段:
按照开发阶段划分,软件测试可分为单元测试、集成测试、系统测试、验收测试
单元测试:单元测试的粒度最小,对源代码实现的每个单元程序进行测试,检查各个程序模块是否正确的实现了规定的功能。
集成测试:在单元测试的基础上,把已经测试完的模块组装起来进行测试,验证组装后功能以及模块间接口是否正确,主要对与设计相关的软件体系结构的构造进行测试。
系统测试:将已经集成好的软件系统,与计算机硬件、外设、数据库和操作人员等其他元素组合在一起,在实际运行环境下,对计算机系统进行一系列测试工作。
验收测试:用户根据合同、《需求规格说明书》或《验收测试计划》对产品进行的验收测试,以确定系统是否满足验收标准。分为 alpha测试和beta测试。
alpha测试:公司内部人员在开发环境下的测试(内测)
beta测试:多用户在实际环境中的测试(公测)
5.软件测试的分类
1.按是否关心软件内部结构来划分,软件测试分为黑盒测试、灰盒测试、白盒测试。
黑盒测试:又称为功能测试,测试中把被测软件看成一个黑盒子,不关心盒子的内部结构和处理过程,只关心软件的输入数据和输出数据。
白盒测试:把测试软件看成一个透明的盒子,需要清楚盒子内部的东西以及它是如何运作的,就是对程序内部的逻辑结构和所有的逻辑路径进行测试。
灰盒测试:介于白盒测试和黑盒测试之间,多用于集成测试阶段,不仅关心数据输入、输出的正确性,也关心程序内部的情况。
2、 按是否执行程序的角度划分
静态测试:不用执行程序通过人工或程序分析来证明软件的正确性。
动态测试:通过执行程序做分析,测试程序的动态行为以证实软件是否存在问题。