测试笔记.docx
《测试笔记.docx》由会员分享,可在线阅读,更多相关《测试笔记.docx(11页珍藏版)》请在冰点文库上搜索。
测试笔记
●V模型诠释软件测试过程:
需求功能设计(验收设计)、系统软件设计(系统测试)测试人员不仅要了解软件是如何实现的,了解是否充分考虑非功能特性验收,还要进行评审,发现问题,考虑非功能特性的可测试性,准备测试计划,测试环境等。
详细设计(特征测试)评审规格设计说明书设计功能测试用例。
、编码(单元测试)一遍编码一边尽早发现错误。
W模型在V模型的基础上增加了同步进行的验证和确认工作。
W模型的三个关键点:
1开发过程和测试过程是同步的
2测试过程是开发过程的阶段成果和最终产品进行验证。
TMAP测试:
TESTMANERGEMANTAPPROACH
(测试管理方法)是一种结构化的基于风险策略的测试方法体系。
测试生命周期:
计划和控制、准备、说明、执行、完成。
1准备包括测试行评审,准备技术方法;
2说明包括详细设计测试用例,建立测试的基础设施;
3执行包括与测试测试重新测试检查评估等活动;
4完成包括维护测试件评估测试过程;
5计划和控制包括评审和研究开发测试策略(风险分析测试估算)建立测试组织准备计划管理和控制;
TMAP的四大基石:
1与软件开发周期一致的测试活动周期
2坚实的组织融合
3正确的基础设施和工具
4可用的技术
●软件测试:
测试是为发现错误而执行程序的过程。
●测试心理:
证明程序中存在错误,所设计的数据就有可能发现更多的问题。
●黑盒测试:
有称数据驱动测试或输入|输出驱动测试,测试目标与程序的内部机制完全无关,其重点放在不按其规范正确运行的环境条件。
测试数据完全来源于软件规范,穷举输入测试。
不仅要测试所有有效的无效的事务处理,还要测试所有可能的事务处理。
穷举输入测试是无法实现的。
穷举路径测试可能不会暴漏敏感数据。
●白盒测试:
允许检查程序的内部结构,对程序的逻辑结构进行检查。
又称逻辑驱动测试。
(遗憾的是,常常忽略了程序的规范。
)
●软件测试的原则:
1测试用例中一个重要的部分是对预期输出或结果进行精确定义或描述。
2程序员应当避免测试自己编写的程序。
3编写软件的组织不应当测试自己编写的软件。
4应当彻底检查每个测试的执行结果。
5测试用例的编写不仅应当根据有效和预料到的输入情况,还应当
根据无效和未预料到的输入情况。
6检查测试是否未做其应该做的,只是程序的一半,还要检查是否
做了其不应该做的。
7避免测试用例用后即弃,除非软件本身就是一个一次性软件。
8计划测试工作时,不应默许假定不存在错误。
9程序存在更多错误的可能性与程序已发现的错误数量成正比。
10软件测试是一项极富创造力和智力挑战性的工作。
小结:
软件测试是为了发现错误而执行程序的过程。
一个好的测试用例具有较高的发现某个尚未发现的错误的可能性。
一个成功的测试用例能够发现某个尚未发现的错误。
Chapter3
●代码检查与走查
●代码检查:
以组为单位阅读代码,他是一系列规程和错误检查技术的集合。
对代码的检查大多数都集中在规程、所要填写的表格等。
一个代码检查小组通常有四个人组成,其中一人发挥着协调作用。
●用于代码检查的错误列表:
1数据引用错误
v引用的变量未赋值或初始化
v数组引用时下标是否为整数是否越界
v通过指针或引用变量的引用,当前引用的内存单元是否分配
●小组代码走查
●桌面检查
●同行评审
性能测试结果分析流程图
结果摘要——并发数分析——响应时间——每秒钟点击数——业务成功率——系统资源——网页细分图——web服务器资源——数据库服务器
http响应摘要:
http状态代码如下:
无法解析此请求
XX:
访问由于凭据无效被拒绝
XX:
访问由于服务器配置倾向使用替代身份验证方法被拒绝
XX:
访问由于ACL对所请求资源的设置被拒绝
XX:
web服务器上安装的筛选器授权失败
XX:
由于web服务器上的url访问策略被拒绝
禁止访问:
访问被拒绝
禁止访问:
客户端证书…
每秒点击数反映了客户端每秒向服务器发送的请求数
系统资源:
机器的cpu,内存,网络,磁盘,cpu的使用率,内存的使用率,服务器队列长度
响应时间:
服务器端响应时间、客户端响应时间、网络响应时间
点击数:
客户端向web服务器发送多少次http请求
并发用户数:
用来度量服务器并发容量和服务协调能力
应用服务器:
web服务器、数据库应用服务器、基于javaee应用服务器
Sql语句执行的时间化为四部分:
解析时间、读取时间、执行时间、其他时间
数据库服务器典型性能问题:
单一类型事物响应时间过长
数据库服务器负载
糟糕的数据库设计
事物粒度过大
批任务对普通用户性能的影响
并发处理能力差
锁冲突严重:
资源锁定造成数据库事务超时
数据库死锁
数据库性能问题的一般解决方法:
1.监视性能相关数据
2.定位资源占用较大的事物并作出必要的优化和调整
3.定位锁冲突,修改锁冲突严重的应用逻辑
4.对规模较大的数据或者无法通过一般优化解决的锁冲突进行分布
Oracal与提高性能有关的特征:
●索引
●并行执行
●簇与散列簇
●分区
●多线程服务器
●同时读取多块数据
Oracal配置的关键参数:
●MAX_DISPACTHERS:
指定了系统允许同时进行的调度进程的最大数量
●Max_shared_servers:
指定了系统允许同时进行的共享服务器进程的最大数量,如果系统中出现的人为死锁过于频繁,管理员应当适当增大这个参数值
●PARALLEL_ADAPTIVE_MULTI_USER:
参数值为TRUE时,系统将启动一个能提高使用并行执行的多用户系统性能的自适应算法啊,这个算法根据查询开始时的系统负载自动降低查询请求的并行度。
●PARLELL_MIN_SERVERS:
指定了实例并行执行进程的最少数量,其值就是实例启动时oracal创建的并行执行进程数。
●PARLELL_THREADS_PER_CPU:
指定了实例默认的并行度和并行自适应以及负载平衡算法,他指明了并行执行过程中cpu能处理的进程或线程数
●PATITION_VIEW_ENABLED:
指定了优化器是否使用分区视图,oracal推荐用户使用分区表而不是分区视图,分区视图只是为了oracal提供向后兼容性
●REVOVERY_PARALLELISM:
指定了恢复数据库系统时使用的进程数
数据库并发控制测试:
数据库并发能力:
多个应用请求的并发处理过程
并发主要考虑的几个方面:
1.数据丢失
2.不可重复数据
3.读取脏数据
4.数据库的锁
驱动模块:
在对底层或子层模块进行测试时所编写的调用这些模块的程序。
装模块:
在对顶层或上层模块进行测试时,所编写的替代下层模块的程序。
1兼容性测试:
软件在不同的硬件平台、软件平台是否可以正常运行,,即软件的可移植性,平台的兼容,网络的兼容,数据库的兼容,数据格式的兼容。
兼容测试通常在cleanos系统环境中测试的,配置测试通常不在cleanos环境下进行测试。
2程序在windows上运行缓慢,怎么判断是程序问题还是软硬件系统问题?
答:
检查系统是否有中毒的特征;软硬件的配置是否符合软件推荐的版本;确认当前的系统是否独立,即确认系统没有对外提供消耗cpu资源的服务;如果是c\s或b\s结构的软件,需检查是不是与服务器连接有问题,或是访问有问题;在系统没有任何负载的情况下,查看性能检测器,确认应用程序对cpu\内存的访问情况。
3测试的策略有哪些:
黑盒、白盒、静态、动态、回归、公测、冒烟、自动、手工。
4描述测试用例设计的完整过程:
需求分析、测试需求、设计测试方案、评审测试方案、设计测试用例、评审测试用例。
5单元测试的测试策略有哪些:
逻辑覆盖、循环覆盖、同行审查、代码走查、代码审查、景泰数据流分析等。
6loadrunner分哪三部分:
用户动作设计、场景设计、测试数据分析。
7loadrunner测试的流程:
测试测试——创建虚拟用户脚本——创建运行场景——运行测试脚本——监视场景——分析测试结果
8什么是并发,在loadrunner中如何进行并发测试?
集合点失败会怎样?
并发:
同一时间支持多个不同的操作。
在loadrunner中提供ip伪装、集合点、配合虚拟用户的设计、以及在多台电脑上设置,可以比较好的模拟真实的并发。
集合点:
多个用户在某个时刻,某个环境下同时进行虚拟用户某个操作,集合点失败,则集合点的操作取消,测试不能进行。
9使用QTP做功能测试录制脚本的时候,要验证多个用户的登陆情况、查询情况,该怎么操作?
答:
分析用户登录的基本情况,的出一些数据,通过性测试失败性测试都有,然后录制登录的脚本,将关键的数据参数化,修改脚本,将代码进行加强,调试脚本。
10QTP中的action有什么作用?
答:
用action可以对步骤集进行分组;
拥有自己的sheet;
组合有相同需求的步骤,进行整体操作;
具有独立的兑现仓库;
Action的种类有:
可复用action,不可复用action,外部action。
11Testdirector有什么功能,如何对软件测试过程进行管理?
需求管理
●定义测试范围
●定义需求树
●描述需求树的而功能点
测试计划
●定义测试目标和测试策略
●分解应用程序,建立测试计划树
●确定每个功能点的测试方法
●将每个功能点连接到测试需求上,是测试计划覆盖全部的测试需求
●描述手工测试的测试步骤
●指明需要自动测试的功能点
测试执行
●定义测试集合
●为每个测试人员指定测试任务和测试日程安排
●运行自动测试
缺陷跟踪
●记录缺陷
●查看新增缺陷并确定哪些是需要修正的
●相关技术人员修改缺陷
●回归测试
●分析缺陷统计图表,分析软件开发质量
12单元测试的主要内容?
答:
模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试。
13压力测试:
压力测试的任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷情况下正确执行的能力。
例如:
对服务器进行压力测试就可以增加并发操作的用户的数量,或者不停的向服务器发送请求,或一次向服务器发送特别大的数据。
负载测试:
检查系统在使用大量数据情况下正确运行的能力,即检查系统的能力最高能达到什么程度。
14写出bug报告中一些必备的内容?
●硬件平台和操作系统
●测试应用的硬件平台,pc
●测试应用的操作系统平台
1.版本
2.优先级
3.严重程度
4.发现人
5.提交人
6.状态
7.详细描述
8.指定修改人员
9.编号
10.概述
11.从属关系
12.所属模块
13.附件
14.提交日期
15内存泄露的原因:
开发过程中申请了计算机资源,但资源使用完后没有释放。
16值传递、地址传递和两者的区别?
值传递:
主调函数传给被掉函数式值的拷贝;地址传递:
传的是值的地址(主调函数向被调函数传递的);区别是:
值传递中被掉函数的操作不改变主调函数的值,地址传递则不同。
17存储过程和触发器?
存储过程:
是数据库的一个对象,transact-sql语句的预编译集合,这些语句在一个名称下存储并作为一个单元进行处理。
触发器是一种特殊的存储过程。
1.windows操作系统中path环境变量的作用?
答:
用户在命令行窗口执行一个命令,则在path设置的目录下一次寻找该目录或对应的执行文件。
若找到,则执行,否则命令行窗口返回无效命令。
2.构造函数在类中定义,名称与类名一致,在创建类的对象时自动调用构造函数,完成初始化工作。
3.访问控制修饰符:
public:
该类可被其他类访问和引用,可建立该类的对象,访问该类的可见成员,调用该类的可见方法。
缺省时:
该类只可以在同包内被访问和引用。
4.属性成员的访问控制修饰符:
private、protected、缺省、public,权限逐渐放宽。
Private只被类自身访问,protected被类和子类访问,缺省相当于包内公有,public可以被任意类访问。
5.静态属性:
类的属性,不属于任何一个具体对象,存储形势:
有唯一内存单元。
Static修饰。
6.静态方法:
类的方法,只能由类调用,不能由对象调用,静态方
法在内存中只有一份,静态方法只处理静态属性。
7.静态初始化器:
初始化类属性的语句组。
8.静态初始化器在类调入内存时自动调用,静态初始化器避免了类名属性暴漏在程序中。
9.抽象类:
没有具体事例的类,做父类提供继承。
抽象类是他所有子类的公共属性集合,当子类较多时,可以很大程度上提高开发维护效率。
10.抽象方法:
抽象方法必须在抽象类中,没有方法体。
11.最终属性:
需要说明常量的数据类型,需要同时指出变量的具体值,通常定义为静态的static。
12.最终方法:
不能被子类重写的方法,作用是防止关键方法被重定义。
13.终结器:
当对象被回收,即所占内存被释放时,终结器自动完成回收工作。
格式为Finalize(){}。
14.volatile:
被volatile修饰的属性可以被多个线程控制盒修改
15.native:
native修饰其他语言编写的方法,声明时用分号;代替大括号{}
16.synchronized:
修饰类方法时,则调用前锁定系统类中对应当前类的对象;修饰对象的方法时,则调用前锁定当前类对象。
17.修饰符的混合使用:
abstract不能和final混用,private,native,static并列,abstract类中不能有private成员,abstract方法只能在abstract类中。
Static不能处理非static属性。
18.Applet:
是嵌入浏览器里的小程序。
19.Application:
是完整程序,可以独立执行。
20.子类继承父类中所有非private属性和方法。
21.属性的隐藏:
子类中定义了和父类同名的变量,则子类拥有了两个同名变量,当执行父类的方法时,处理父类的变量;执行子类方法调用自己的变量。
22.方法的覆盖:
子类中定义了和父类中同名的方法,则子类中拥有了两个同名方法,当子类对象调用父类继承来的方法时,用super.方法()。
执行子类方法子类直接调用。
注意:
覆盖时要保持相同方法名,返回值类型,参数列表。
23.方法的重载:
一个类中同名不同功能的方法。
用不同的参数列表来区分。