软件评测师基础知识等材料.docx
《软件评测师基础知识等材料.docx》由会员分享,可在线阅读,更多相关《软件评测师基础知识等材料.docx(13页珍藏版)》请在冰点文库上搜索。
软件评测师基础知识等材料
软件评测基础知识
软件测试基本概念
软件质量与软件测试:
软件测试是软件质量保证工作的一个重要环节。
软件测试和软件质量保证是软件质量工程的两个不同层面的工作。
软件测试只是软件质量保证工作中的一个重要环节。
质量保证(QA)的工作是通过预防、检查与改进来保证软件的质量,它所关注的是软件质量的检查和测量。
软件测试所关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。
软件测试定义:
软件测试就是在软件投入运行前对软件需求分析、软件设计规格说明和软件编码进行的查错(包括代码执行活动与人工活动)。
软件测试是为了发现错误而执行程序的过程。
软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序的错误。
是在软件投入运行前,对软件需求分析、软件设计规格说明和软件编码的最终复审,是软件质量保证的关键步骤。
软件测试目的:
(1)测试是一个为了寻找错误而运行程序的过程;
(2)一个好的测试用例是指很可能找到迄今为止未发现的错误的用例;(3)一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。
软件测试的目标是能够以耗费最少时间与最小工作量找出软件系统中潜在的各种错误与缺陷。
测试只能证明程序中错误的存在,但不能证明程序中没有错误。
软件测试原则:
(1)尽早地并不断地进行软件测试;
(2)程序员或程序设计机构应避免测试自己设计的程序;(3)测试前应当设定合理的测试用例;(4)测试用例的设计不仅要有合法的输入数据,还要有非法的输入数据;(5)在对程序修改之后要进行回归测试;(6)充分注意测试中的群集现象;(7)妥善保留测试计划、全部测试用例、出错统计和最终分析报告,并把它们作为软件的组成部分之一,为软件的维护提供方便;(8)应当对每一个测试结果做全面检查;(9)严格执行测试计划,排除测试的随意性。
软件测试对象:
软件的测试不仅仅是程序的测试,软件的测试应贯穿于整个软件生命同期中。
在软件定义阶段产生的可行性报告、项目实施计划、软件需求说明书或系统功能说明书,在软件开发阶段产生的概要测试说明书、详细设计说明书,以及源程序等都是软件测试的对象。
软件测试过程模型:
V模型、W模型、H模型。
软件测试模型的使用:
在实际软件测试的实施过程中,应灵活地运用各种模型的优点,通常可以在W模型的框架下,运用H模型的思想进行独立的测试。
当有变更发生时,按X模型和前置模型的思想进行处理。
同时,将测试和开发紧密结合,寻找恰当的就绪点开始测试,并反复进行迭代测试,以达到按期完成预定的目标。
软件问题分类:
软件错误、软件缺陷、软件故障、软件失效。
软件测试类型:
按开发阶段分:
单元测试、集成测试、确认测试(有效性测试)、系统测试
确认测试、验收测试
按测试实施组织分:
开发方测试(验证测试或alpha测试)、用户测试(beta)、第三方测试(独立测试)
按测试方式分:
动态测试、静态测试
按测试技术分:
白盒测试、黑盒测试、灰盒测试
软件测试过程:
用黑盒法设计基本的测试方案,再利用白盒法补充一些必要的测试方案。
可以用以下策略结合各种方法:
(1)在任何情况下都应该使用边界值分析的方法;
(2)必要时用等价划分法补充测试方案;
(3)必要时用错误推测法补充测试方案;
(4)如果在程序的功能说明中含有输入条件的组合,最好在一开始就用因果图法,然后再按以上
(1)、
(2)、(3)步进行。
(5)对照程序逻辑,检查已设计出的设计方案。
可以根据对程序可靠性的要求采用不同的逻辑覆盖标准,如果现有测试方案的逻辑覆盖程度没有达到要求的覆盖标准,则应再补充一些测试方案。
单元测试主要是对模块的5个基本特性进行测试和评价:
(1)模块接口;
(2)局部数据结构;(3)重要的执行路径;(4)错误处理;(5)边界测试。
在集成测试时,要考虑的问题有:
数据经过接口是否会丢失;一个模块对另一模块是否造成不应有的影响;几个子功能组合起来能否实现主功能;误差不断积累是否达到不可接受的程度;全局数据结构是否有问题。
确认测试又称为有效性测试、合格测试或验收测试。
确认测试主要由使用用户参加测试,检验软件规格说明的技术标准的符合程度,是保证软件质量的最后关键环节。
系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。
系统测试实质上是由一系列不同测试组成的,其主要目的是充分运行系统,验证系统各个部件是否都能正常工作并完成所分配的功能。
系统测试包括:
恢复测试、安全性测试、强度测试、性能测试等。
验收测试是以用户为主,软件开发人员和质量保证人员也应参加的测试。
由用户参加设计测试用例。
使用用户界面输入测试数据,并分析测试的输出结果。
验收测试往往知系统测试完成后,项目最终交付前进行。
………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………
测试用例设计方法
白盒测试基本技术:
控制流图、代码覆盖率分析(CodeCoverageAnalysis)。
白盒测试方法:
从总体上可划分为静态测试和动态测试;按测试操作的实施方式划分为手工测试和借助于工具的自动化测试等。
白盒测试的静态测试方法:
代码检查法、静态结构分析法、代码质量度量法等。
白盒测试的动态测试方法:
功能确认与接口测试、逻辑覆盖分析法、基本路径测试法、性能分析、内存分析等。
动态测试通常在静态测试之后进行。
其他白盒测试方法:
域测试(DomainTesting)、程序变异测试、符号测试、数据流测试、Z路径测试。
常用的黑盒测试用例设计方法有:
等价类划分法、边值分析法、错误猜测法、因果图方法等,其他的一些测试方法还有判定表驱动法、正交试验法、功能图法,以及场景法等。
面向对象测试关注于设计合适的操作序列以测试类的状态。
测试用例设计方法的主要原则包括:
(1)对每个测试用例应当给予特殊的标识,并且还应当与测试的类有明确的联系。
(2)测试目的应当明确。
应当为每个测试用例开发一个测试步骤列表。
这个列表应包括以下一些内容:
(1)列出所要测试的对象的专门说明;
(2)列出将要作为测试结果运行的消息和操作;
(3)列出测试对象可能发生的例外情况;
(4)列出外部条件;
(5)列出为了帮助理解和实现测试所需要的附加信息。
……………………………………………………………………………………………………………………………………………………………………………………面向对象软件的测试
面向对象技术主要包括6个核心概念:
对象、消息、接口、类、继承、多态。
面向对象的开发模型实质是将软件测试过程分成3个阶段,即面向对象分析(OOA)、面向对象设计(OOD)和面向对象编程(OOP)。
面向对象测试的类型分为:
面向对象分析的测试(OOATest)、面向对象设计的测试(OODTest)、面向对象编程的测试(OOPTest)、面向对象单元测试(OOUnitTest)、面向对象集成测试(OOIntegrationTest)、面向对象系统测试(OOSystemTest)。
面向对象测试类型的另一种划分:
模型测试、类测试(用于代替单元测试)、交互测试(用于代替集成测试)、系统(包括子系统)测试、接收测试、部署测试。
传统测试模式与面向对象的测试模式的最主要的区别在于,面向对象的测试更关注对象而不是完成输入/输出的单一功能,这样的话测试可以在分析与设计阶段就先行介入,便得测试更好的配合软件生产过程并为之服务。
与传统测试模式相比,面向对象测试的优点在于:
更早地定义出测试用例;早期介入可以降低成本;尽早的编写系统测试用例以便于开发人员与测试人员对系统需求的理解保持一致;面向对象的测试模式更注重于软件的实质。
面向对象测试的过程:
(1)指定范围;
(2)指定深度;(3)指定已创建的被测试模块的基本要求(上一个阶段需要提供的接口);(4)以基本模型的内容为输入来设计测试用例作为评估标准;(5)生成测试覆盖度量标准;(6)试用测试清单执行静态分析,确保被测模块与基本模型的一致性;(7)执行测试用例;(8)如果覆盖不足以检测所有的活动,就需要分解测试工作,并且使用传统测试用例的方式来警醒,或者中断测试,重新测试传统测试用例。
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..
Web应用测试
Web应用测试类型:
功能测试、性能测试、可用性测试、兼容性测试和安全测试。
根据测试对象的不同,Web功能测试又分为链接测试、表单测试、Cookies测试、设计语言测试、数据库测试。
Web性能测试是要是确保Web应用系统达到要求的性能,一般用最大运行时间、吞吐率、响应时间描述。
Web应用在极端条件下的性能测试又分为负载测试和压力测试。
负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统的在需求范围内能正常工作。
负载级别可以是某个时刻同时访问Web系统的用户数据,也可以是在线数据处理的数量。
压力测试是指实际破坏一个Web应用系统时测试系统的反映。
压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。
压力测试侧重于确定系统崩溃时的用户负载量。
压力测试的区域包括表单、登录和其它信息传输页面等。
Web性能测试:
(1)连接速度测试;
(2)负载测试;(3)压力测试。
Web可用性测试:
(1)导航测试;
(2)图形测试;(3)内容测试;(4)整体界面测试。
Web兼容性测试:
(1)平台测试;
(2)浏览器测试。
Web安装性测试,就是测试Web应用防止未授权用户访问或故意破坏等情况下的能力,其重点是测试SSL(安全套接字)配置、登录模块、事务完整性等方面。
………………………………………………………………………………………………………………………………………………
软件测试流程之测试用例的设计与测试执行流程软件测试
高效设计测试用例培训结束了,在上机练习的过程中,给他们穿插了sougo输入法的项目测试。
之所以选择sougo输入法,是因为大家对它比较熟悉,不用再熟悉其业务了。
而且sougo输入法从1.0.14到现在的4.0有多个版本。
每个版本更新前都会有当前版本更新的bug列表,和新增功能点列表。
特别适合我们模拟实际的测试过程。
这次我们测试使用TD从需求管理到缺陷管理的整个测试过程的管理。
经过大家的努力和配合,我们采取边做测试边总结的方法,最后总结出测试工作中的工作流程,下面就是总结出的测试流程,大家看到后多多交流。
一、需求分析:
1、列出测试需求(根据需求规格说明书、帮助文档、软件的demo版,利用测试大纲法,以每个窗体为对象,每个窗体里面的控件为单位列出测试功能点。
)
2、需求等级划分,依据需求内容的重要程度划分为:
高、中、低等。
3、划分需求类型,(功能性、易用性、兼容性等)。
4、评审需求(软件不熟悉的情况下采取以集体的形式整体讨论的方法评审需求或设立专人负责评审)。
5、需求列入TestDirector(评审后的结果在TestDirector要有体现)。
二、用例设计:
1、根据功能点确定人员分工,具体的功能点分配给具体的组员。
2、测试用例的编写,借助功能演示demo、前一阶段所编写的测试功能点等编写测试用例。
3、要求组员对自己负责的功能点选择具体的设计测试用例的方法。
一般选择方法顺序:
在考虑好被测试软件本身的特性后,一般首先边界值挑选最具有代表性的数据;然后使用等价类进一步补充;如果要考虑各功能的输入输出关系可以使用因果图、判定表法;但如果输入太多,可以使用正交排列法选择减少测试用例,并且是测试数据均匀分布。
这些理性方法都使用完后,在测试执行阶段,可以使用随机测试法或者错误猜测方法进一步丰富你的测试用例。
4、针对所设计的用例对软件的功能点(以及其他类型的需求)进行需求覆盖。
我们列测试需求的最主要目的,就是为了完成对需求的覆盖,所以这个是对每一个设计测试用例的人员的基本要求。
5、用例评审,优化用例的数量确保用例的质量(设定专人评审)。
6、评审后写入TestDirector中。
7、挑选冒烟测试用例(抽取用例总数的10%~20%左右进行冒烟测试来反映基本功能)。
三、测试执行:
测试执行工作应尽量做到详细,依据测试计划里面的测试的整体安排,但是因为根据实际工作进度要做适当调整。
一般情况是当天晚上前安排好明天的具体工作,具体任务可以以测试用例的数量来衡量。
测试组长的几个重要工作步骤:
1、确认人力以及硬件资源是否到位,测试开启时间是否和测试整体计划相一致。
2、按照测试计划着手准备具体的测试工作。
3、在TD中,TestLab里面设置以天为单位安排组员当天的应完成的用例,以及利用TD分析功能总结当天执行用例的情况。
4、指导组员工作,解决组员工作遇到的疑难问题
5、做好审查工作,监督组员工作
6、做好全组当天执行情况的总结
用例执行通过情况、发现bug数量、以及在各个模块中的分布情况等
7、将当天任务的执行情况书面化呈报上级领导
阶段任务完成后书写整个阶段的测试总结报告衡量当前版本软件的质量以及相关的发布问题。
四、下一版本的工作安排:
根据软件更新功能的多少分为两种情况:
1、一种是软件更新功能较少(新增加功能点是前一版本总功能的%5以内),执行回归测试,根据新的功能点增加相关的需求和测试用例,确定新的功能点安排相关人员执行新加的测试用例;
2、另外一种情况是软件的新增更能点较多,则按照新的系统测试执行,首先进行冒烟测试,通过后进行详细的系统测试,测试过程中重点测试上一版本出现的缺陷(返测)、新增功能以及修改缺陷新增功能所影响到的模块。
新本版出现,总体按照测试执行阶段的测试工作流程进行测试同时注意特殊问题特殊处理。
五、提交缺陷(bug)
提交的缺陷需要测试部门专门人审查,通过审查后的缺陷,提交的TD中。
主要审查下面几个方面:
1、发现的问题是否是缺陷(bug)
2、是否是重复的缺陷(bug)
3、缺陷(bug)程度的优先级是否合理
4、缺陷(bug)修复情况
看到很多有关测试流程以及测试用例设计的书籍,只是零散的测试知识,但是没有可操作性。
希望上面列出的测试用例设计以及测试执行每个阶段的工作的步骤,有利于你更快更有效的进行软件测试工作。
……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..
如何在LoadRunner中监控oracle数据库
环境相关信息概述:
LoadRunner9.0
Sitescope9.0
Windows2003
Oracledatabase10g
1.使用LR自带的监控引擎
1.1.在LR的controller上安装oracle客户端
这一步就不用说了,安装直接Setup,安装就OK了。
1,安装完后,先配置一下NetConfigurationAssistant。
记住配置的服务名。
配置成功会显示:
正在连接...测试成功。
2,用sqlplus连接一下,看是否可以连接成功,打开sqlplus输入oracle用户名密码和主机字符串。
查看是否登录成功。
1.2.添加oracle计数器
3,登录成功后,打开LR的controller.,在可用图中选择oracle,点击addmeasurements,再点击Advanced,如下所示:
这里我们用LRnativemonitors。
4,在MonitoredServerMachines区域,添加oracle服务器所在的IP。
5,再在ResourceMeasurementson:
IP区域点击添加,弹出对话框如下:
6,输入相应的信息,这里的orcl就是前面在NetConfigurationAssistant配置的服务名。
7,点击OK,这里我们应该可以看到可以添加oracle的计数器了,如下所示:
2.使用Sitescope引擎
不需要配置NetConfigurationAssistant。
1,在第一个图choosemonitorengine中选择sitescope,然后在在MonitoredServerMachines区域点击Add如下所示:
在这里可以选择本地或者其他机器的sitescope,如果sitescope启用了account的验证,也要写上相应的用户名密码。
2,在ResourceMeasurementson:
IP区域点击添加,弹出对话框如下:
3,输入信息如图。
点击OK,如下:
至此就可以监控oracle了。