注明:1.一般情况下,一个项目开发需要研发、测试、需求三类人员
2.测试人员,以后要经常和开发需求人员打交道
3.当项目开发时,产品公司从研发部、市场部调动熟悉产品的人员参与研发
开发经理:负责研发技术架构
测试经理:负责软件的测试工作
项目经理:重大问题决策,沟通协作,进度交付
第二课
软件需求规格说明书
↙↘
开发测试
需求人员、开发、测试三方评审(评审的目的:消除歧义、完善细节、达成共识)
↓
形成一个标准统一的需求规格说明书
根据需求文档编写:1.概要设计文档根据需求文档和项目计划编写:
↓(转化为人员看得懂的文档)1.测试计划
编码2.详细设计文档2.测试方案和测试用例
注明:1.测试工作在需求文档一出来的时候就开始了
2.需求评审是我们测试人员非常重要的工作
第三课
如何对软件需求规格说明书进行评审
一般情况下,我们会从以下几个方面进行评审
注:80%的缺陷都是来自于前期需求没有评审好、确认好,另外频繁的变更也造成BUG出现的原因。
问:什么是软件需求规格说明书?以及它的定义?
答:软件需求规格说明书,是由需求人员、开发、测试人员,根据原始需求,进行三方会审,达到消除歧义、完善细节、达成共识,从而形成一个标准统一的需求规格说明书。
它可定性为三方协调工作的方向和依据。
第四课
软件测试的概念
为了寻找软件中的错误而执行软件的过程。
我们在运行软件的过程中,实际结果跟预期结果不符(跟软件规格不符),这些问题统称为BUG.
4.8/2原则
80%的错误是存在于在20%的模块里,经常出错的模块经修复后还会出错
5.从是否针对软件的内部结构和算法可分为白盒测试法和黑盒测试法
白盒测试:主要针对软件内部结构和算法的测试(针对代码)
6.从软件的不同阶段可分为单元测试、集成测试、系统测试和验收测试。
a.单元测试(UT):开发人员测试自己开发出来的单元模块、利用白盒测试方法。
b.集成测试:将软件的一些构件(单元模块)集成在一起测试,主要对接口、路径、功能(字段集成)性能进行测试,通常以白盒测试为主,黑盒测试为辅(以开发为主,测试为辅)。
c.系统测试(SIT):测试软件是否符合需求规格,测试工作是由独立的测试人员进行的,主要采用黑盒测试方法。
d.验收测试:与系统测试相似,但是测试工作由客户进行,主要验收软件系统是否符合需求,通常采用黑盒测试方法。
注:单元测试、集成测试,主要是开发人员进行的,从测试原理来分为白盒测试和黑盒测试,说白了白盒测试就是软件内部的代码测试,黑盒测试就是软件所展现的功能点测试。
7.系统测试主要是由测试人员进行:界面测试、功能测试、性能测试、兼容性测试、易用性测试、安全性测试
问题:功能测试、系统测试、黑盒测试有什么关联?
黑盒测试是功能测试的一种方式方法,而功能测试是系统测试的一部分
8.回归测试
BUG经开发人员修复后,重新提交测试人员验证,这个测试称为回归测试。
9.功能测试:
验证功能是否符合软件的功能需求
10.压力测试
测试软件的最大极限,也称为极限测试。
11.易用性测试
站在用户的角度评价软件好不好用,并提出意见
12.兼容性测试
主要测试软件和操作系统、浏览器或其它软件的兼容性。
13.Alpha测试,系统刚刚开发完成给客户测试一下一种先期的客户测试
14.Beta测试:一种后期的用户测试,此时系统已通过我们内部测试并即将要上线的时候,给用户看一下。
你觉得测试人员具备哪些素质?
编写、阅读文档的能力。
逻辑能力,测试能力(思维能力)。
沟通能力。
团队协作能力。
心理素质。第五课
软件测试计划
注:系统测试进入的标准是开发人员把版本提交给我们的时候,我们首先要对软件版本做最基本的功能测试,如果基本功能测试没有问题才能进入系统测试,反之打回给开发人员修改,这里的基本测试称为冒烟测试。有200测试用例,摆出20个用例进行功能测试,称为冒烟测试。系统进入测试的标准是冒烟测试。
问:你之前有写过测试计划吗?
答:有写过,不过我们写的测试计划是自己负责模块的测试计划,但一般总体的测试计划由测试经理来写的。
自问自答:1.模块的测试计划怎么写?
2.总体的测试计划怎么写?
第六课
测试用例
测试用例的属性
需求编号
测试标题
操作步骤
预期结果
实际结果
是否通过
备注
001
…
002
注:严格来讲,每一个操作步骤应该有一个预期结果,操作步骤具体使用了什么数据一定要写清楚。
一般情况下,测试用例包括:测试序号、测试标题、前置条件、操作步骤、预期结果、实际结果、是否通过等属性,每个公司的规范都不一样。
它作为测试的标准,指导测试人员进行测试,发现问题,并提交BUG,并且最终提高软件质量。
第七课
墨盒测试用例的设计方法
就是把所有可能输入的数据划分为若干个区域,然后从每个区域中取有代表性的数据进行测试。等价类划分法可分为有效等价和无效等价
注:我们测试任何一个功能点的时候,我们的软件需求规格对每个功能点都有一个详细的输入输出说明,也就是说规格限制,如果没有限制,开发人员将无法开发程序,测试人员将无法开展测试工作。
说明:测试用例是根据软件需求规格说明书来写的
取稍高或稍低于边界值的一些数据来进行测试。
3.错误推测法
根据自己以前的测试经验和直觉来判断程序中的错误
比如说,程序在处理一些超长字符、空格字符和边界值时,容易出错,那么我们可以拿这些数据来试一次。
4.场景法
用户可能只给到一个场景或简单的业务流程,或一段简单的文字描述,此时测试人员需要根据已有的业务流程或已有的场景需求充分发挥对用户实际业务场景的想象。
注明:有时候面试官会让你设计ATM取款的测试用例,这里明显要用到场景法进行用例设计,首先我们会想象ATM取款机包括查询功能、取款功能、转账功能,随后我们一一对应这些功能进行用例设计就好,以上是一个典型的使用场景法进行用例设计的过程。
5.因果图判断表法
我们输入的条件可能有很多种,每一种条件之间的组合都可能形成一个新的结果,我们把其中的条件和结果用图形的方法表现出来,最后通过判定表进行展现
6.正交表法
是一种有效减少用例个数的设计方法
一般的做法是测试其中一个条件时,我们会默认其他条件是对的。
注:正交表法的核心是有效的减少用例的个数,并选一些有代表性的典型组合进行测试
总结:用例设计的完整度
任何用例设计写完后都不是100%完美的,一方面我们需要测试用例评审以便更完善,另一方面我们设计出来的用例和开发出来的功能不可能达到高度统一,也就是说我们在测试软件的时候,也存在个性用例的可能。
注:六种黑盒用例设计方法都要能说出其概念,并能举例说明。
第八课
用例评审
一般情况下,从以下几个方面对我们的测试用例进行评审
注:严格来讲,用例是要交给项目组评审,一般的做法是本项目组的测试人员一起评审即可。
墨盒测试用例设计方法有哪些?
1、等价类划分法
有效等价
无效等价
2、边界值分析法
3、错误推测法
4、场景法
5、因果图判定法
6、正交表法
第九课
作为一个测试人员,我们很重要的一个任务就是发现问题,解决问题。
1、软件错误的等级
A.致命的错误
B.严重的错误
C.一般的错误
D.轻微的错误
E.改进性建议
2.软件错误的优先级
A.立即解决
B.高优先级
C、正常排队
D.低优先级
3.一个完整的BUG包含哪些内容?
注:错误的具体描述是把整个错误的发生从开始到结束的每一个步骤都要清晰的写出来。
第十课
BUG流程-BUG的生命周期
第十一课
测试的报告其他的要素,例如:编写的目的,测试环境描述等每个公司
格式不一样。
我们发现问题单会对我们的系统和模块造成什么样的风险和影响
通常来说就是指能否上线、发布、如果上线会有什么后果。
第十二课
完整的测试流程
1.一个完整的测试流程包括哪些阶段
一般情况下,它包括需求评审、测试计划定义、测试用例设计、测试用例评审、测试环境搭建、测试执行、提交问题单、回归测试、提交测试报告、测试总结。
2、软件测试的目的
目的是发现软件的缺陷,检查软件是否符合需求规格说明书
3、软件测试是否能发现所有的BUG
4、软件测试人员在测试时应遵守什么原则?
8/2原则
5、如果你来我们测试团队,你如何更快的进入工作状态?
首先,我会更快的熟悉项目的工作环境,交流方式,沟通方式。
第三,我会参加项目的各种会议,以熟悉项目的进度和后续的计划。
最后,我会尽快熟悉项目的测试用例以及BUG库里的BUG,以帮助自己尽快的进入工作状态,基本上我会从以上几个方面让自己更快的进入工作状态。
第十三课
测试环境的搭建
你之前有搭建过测试环境吗?
有搭过一些,一般情况下,我会从以下几个方面来搭建。
第十四课
WEB兼容性测试
Web兼容性测试主要包括以下几个方面
1.系统平台的测试
最常见的系统平台有window、uinx、linux操作系统等,同一个应用可能在某些操作系统下正常运行,但是在另外的操作系统下,不能运行,因此,web系统平台需要在各种操作系统下,对web系统,进行系统平台的兼容性测试。
2.浏览器测试IE浏览器查询版本通过帮助,关于IE。IE11版本兼容IE8、IE9、IE10版本
浏览器是web客户端最核心的构件,不同厂商的浏览器对JAVAHTML规格有不同的支持,层次结构在不同的浏览器也有不同的显示,所以浏览器也需要测试兼容性。
3.分辨率测试
页面版本在640*400、600*800或1024*768的分辨率模式下是否正常显示,字体是否太小或太大,以至于无法浏览,文件和图片是否对齐?
4、操作系统与浏览器的兼容性如何配置?
由产品经理做过市场调查后做出的需求规格
注:我们在选择浏览器版本的时候,一定要选择正版浏览器进行测试,非正版的浏览器本身可能存在不稳定,还可能对我们的测试结果造成影响。
第十五课
性能测试
一、性能测试的定义
它是反映不同负载下,系统的CPU内存占用率,占用越低,说明系统越优秀。
注:一般性能指标,都是由产品经理和项目中的领导来定义的,测试人员根据需求的定义来测试即可。
常用的性能工具loadrunner简称LR
二、性能测试流程
测试计划→创建脚本→设计场景→监视场景→分析结果
主要步骤:1.创建脚本:捕获在应用程序中执行的最终用户操作。
2.设计场景:通过定义测试期间发现的事件,设置负载测试场景。
3.监视场景:运行、管理并监视负载测试。
4.分析结果:分析负载测试期间,loadrunner生产的性能数据。
第十六课
C/S与B/S
b.需在电脑上安装应用程序
c.简单的C/S架构只有两层,就是客户端访问服务器
d.其前台能处理一般性的业务,能减轻后台负担
注:B/S软件是未来发展的方向。
计算机网络
什么是计算机网络?
不同各类的计算机通过同种类型的通信协议相互通信产生了计算机网络,计算机网络就是把分布在不同地理区域的计算机以专门的外部设备利用通信线路互连成一个规模大,功能强的网络系统,从而使众多的计算机可以方便的传递信息,共享资源。
OSIRM:开发系统互连参考模型(opensysteminterconnectionreferencemodel)
TCP/IP协议:前身是实验性分组交换网络APPANET.
OSI7层
7层功能
7.应用层
建立程序之间的通信
6.表示层
处理数据格式,数据加密
5.会话层
建立、维护和管理
4.传输层
建立主机端到端的链接
3.网络层
寻址和路由的选择
2.数据链路层
提供介质访问,链路管理
1.物理层
透明的比特流传输
1-3层为低层,负责网络数据的传输
5-7层为高层,负责主机间的数据传输
7层协议
HTTP,DNS,FTP,TFTP,SNMP
URL加密,口令加密
TCP,UDP
ICMP,IP,RIP路由器
ARP,RARP网卡,交换机
比特流传输光纤,网络
TCP/IP协议
4.应用层
3.主机对主机层
2.网际层
1.网络接口层
HTTP协议:超文本传输协议
FTP:文件传输协议
TFTP:简单文件传输协议
DNS:域名解析协议
telnet:网络远程访问协议
SMTP:简单电子邮件协议
SNMP:简单网络管理协议
TCP:传输控制协议
UDP:用户数据报协议
ARP:地址解析协议
RARP:反向地址转换协议
IP:网络之间互连的协议
RIP:路由信息协议
B类:127.0.01-1191.255.255.255
C类:192.0.0.1-233.255.255.255
D类:旧插
E类:留着以后用
127.0.0.1是别人的IP地址——ping127.0.0.1,查看别人的IP
192.168.01-192.168.255.255私有IP地址
路由器:找路上网层次和功能不一样
网络命令
Ipconfig–all
Ping
Regedit
Mstsc
使用ping测试网络连通的6个步骤
测试环境是怎么搭建的(内部网)
传输层有哪两个重要协议,区别是什么?
宽带是商品要卖的,带宽是指要用几M流量,是软件术语
三次握手
四次挥手
传输层协议用端口号来标识和区分各种上次应用程序
HTTP80
FTP20,21
Telnet23
SMTP25
DNS53
TFTP69
SNMP16
查询端口号:netstat-a
-anp80(用数字的形式表现出来)
抓包工具:wireshark
Scr:源
DST:目标
Wireshark抓取的五种信息?
易用性测试
易用性测试是指用户使用软件时是否感觉方便,比如是否最多点击鼠标三次,就能达到目的。
最重要的用户界面要素是软件符合现行的标准和规范——或者有真正站得住脚的不符合的理由。
注意:如果测试在特定平台上运行的软件,就需要把该平台的标准和规范作为产品说明书的补充内容。
像对待产品说明书一样,根据它建立测试用例。这些标准和规范由软件易用性专家开发。它们是经同大量正规测试、使用、尝试和错误而设计出的方便用户的规则。也并非要完全遵守准则,有时开发小组可能想对标准和规范有所提高。
平台也可能没有标准,也许测试的软件就是平台本身。在这种情况下,设计小组可能成为软件易用性标准的创立者。
用户界面是否洁净、不唐突、不拥挤?
UI的组织和布局合理吗?
有多余的功能吗?
帮助系统有效吗?
如果软件或者平台有一个标准,就要遵守它。如果没有,就要注意软件的特性,确保相似的操作以相似的方式进行。
快捷键和菜单选项
术语和命名
听众
诸如OK和Cancel按钮的位置。
多种视图的选择:
状态跳转
状态终止和跳过
数据输入和输出
软件使用起来应该舒适,不能给用户工作制造障碍和困难。
恰当;
错误处理;
性能。
要测试正确性,就是测试UI是否做了该做的事。
注意:市场定位偏差、语言和拼写、不良媒体。
是否实用是优秀用户界面的最后一个要素。
自动化测试实践
一.自动化测试的优势
1.回归测试更可靠,更方便
2.可执行一些对于手工测试来说,相当困难或者根本做不到的测试
3.更好的利用资源,使资源更有价值
4.具有一致性和可靠性
5.增加软件的信任度
6.多环境下测试
二.缺点
三.何时适合引入自动化
如果一个项目是短期的,并且是一次性的项目,则不适合开展自动化,第二个不宜在一个进度非常紧的项目中开展自动化
过早的自动化会带来维护成本的增加,因为早期界面一般不稳定,处于频繁更改状态,这时开展自动化得不偿失,所以自动化不应该在界面尚未稳定就开始
性能自动化
功能自动化
QTP支持的环境和程序
QTP自动化测试的基本过程
VBscript
性能测试实践
负载测试
通过增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量测试。
压力测试
通过测试增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并来获得系统能提供的最大服务级别测试。
主要指标
并发用户
资源利用率(内存、CPU等的利用率等)
估算并发数的公示:
公式(2)则给出了并发用户数峰值的计算方式中,其中,C‵指并发用户数的峰值,C就是公式(1)中得到的平均的并发用户数。该公式的得出是假设用户的loginsession产生合泊松公布而估算得到的。
则根据公式(1)和公式(2),可以得到:
C=400※4/8=200
C‵≈200+3※根号200=242
吞吐量可以采用下面的公式计算:
G=N※R/T
事务的概念
要度量事务,需要插入Vuser函数以标记任务的开始和结束。在脚本内,可以标记的事务不受数量限制,每个事务的名称都不同。
事务是标识要一致
·Ir_start_transaction(“trans1”);
·Ir_end_transaction(“trans1”,LR_AUTO);
集合点的概念
要在系统上模拟较重的用户负载,需要同步各个Vuser以便在同一时刻执行任务。通过创建集合点,可以确保多个Vuser同时执行操作。娄某个Vuser到达该集合点时,Controller会将其保留,直到参与该集合的全部Vuser都到达。当满足集合条件时,Controller将释放Vuser.
在Vuser执行脚本并遇到集合点时,脚本将暂停执行,Vuser将等待Controller允许继续执行。Vuser被从集合释放后,将执行脚本中的下一个任务。
Ir_rendezvous(“rds1”);性能测试报告你是怎么看的?
当然我们有时候会根据性能测试需求用到集合点。比如说登陆这一块,使用集合点,可以使多个用户同时对我们的系统进行交互。我们会根据并发数计算公式设置并发用户数。我们也有专业的性能测试人员,会在LINUX后台插入一些脚本,来提取性能测试过程中,我们内存以及CPU的使用情况。以便我们对整个系统的性能进行分析,谢谢。