【软件测试及质量保证】小结(下)

简介: 【软件测试及质量保证】小结

性能测试


定义,场景,步骤,3道例题


  • 定义:


通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。用于“能力规划、能力验证、缺陷发现、性能调优”,负载测试和压力测试都属于性能测试,两者可以结合进行。


1.负载测试,确定在各种负载下系统的性能,目标是测试当负载逐渐增加时,系统性能指标的变化情况,结果为一条“曲线”


2.压力测试,通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试,结果为是一个门槛值(极限值)。


  • 五种应用场景


1.涉及“复杂计算”,特别是一些人工智能分析


2.涉及“大量数据IO”(读写和通讯)


3.涉及“大量数据检索”


4.具有“大量用户”(多个并发用户)


5.具有“有限资源”。软件运行时,可用资源(特别是CPU和内存)很紧张,例如一些嵌入式系统软件等;


  • 测试步骤


1.目标。确定明确的测试目标


2.性能边界。提取和确认系统瓶颈的因素和边界


3.用例设计


4.脚本开发、执行。脚本开发、数据准备、测试执行


5.结果分析


例题一:什么是性能测试,其应用领域分别是什么?


性能测试,是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。


应用领域,包括四个:能力规划、能力验证、缺陷发现、性能调优。


例题二:1台客户端有300客户与300客户端有300客户对服务器施压,有什么区别?

从4个角度进行分析:


1.客户端角度。300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。


2.客户线程角度。线程之间可能发生干扰,而产生一些异常。


3.带宽角度。300个用户在一个客户端上,需要更大的带宽。


4.IP地址角度。IP地址问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。


例题三:典型的应用数据库问题有哪些,解决办法分别是什么?


典型应用数据库问题的三个类型:过量的数据库调用、数据库连接池问题、SQL语句及其索引或锁定属性问题。


1.过量的数据库调用。增量减次,即增大每次从数据库中获取的数据量,避免应用程序反复回调数据库;


2.数据库连接池问题。及时关闭连接。仔细分析程序代码,是否没有close连接?或者遗漏了finally块?或者尽管有close但并没有成功或者调整连接池大小;


3.SQL语句及索引或锁定问题。优化代码。优化SQL语句及其索引或锁定属性。


其他测试


文档测试


文档测试是检验样品用户文档的完整性、正确性、一致性、易理解性、易浏览性。


测试文档通常情况下指软件测试文档,测试文档是提供测试信息的一组文档,而并非单纯地指文档测试。


注意事项:


  1. 仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。


  1. 检查文档的编写是否满足文档编写的目的。


  1. 内容是否齐全、正确。


  1. 内容是否完善。


  1. 标记是否正确。


软件质量保证


1.三名管理大师及他们的主要质量观点






2.软件质量保证基本概念


软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。


国内软件质量保证的“三种体系”:


方法一:国标《软件生命周期》体系


方法二:ISO9000体系


方法三:CMM体系



ISO9000体系


ISO 9000 部分需要掌握的重点


  1. “标准”的基础结构



  1. “四级文件”的定义和层次结构




  1. “ISO9000”实施的流程

  • 以“标准”的结构为指导 – “基类”


  • 结合“本企业”具体情况,制定“本企业”的ISO9000操作文件,共分为“四级文件” – “实例化”,经确认后,授予“ISO9000”证书


  • 每天,本企业依据“四级文件”进行各种生产活动


  • 监督机制


1.内省机制:内审。每年定期,由企业内部质量主管部门发起,检查本企业对四级文件的落实情况;


2.外部监督机制:外审(维持证书)。每年一次,由外部机构,检查本企业对四级文件的落实情况。


  1. 简单阐述“ISO9000”提升质量的原因


采用ISO9000族标准,可以使质量管理规范化,质量活动程序化,实施ISO9000,要求建立文件化的质量体系。质量体系要求各项活动的范围和目的、做什么、谁来做、何时做、何地做、如何做、采用什么设备和材料,如何对活动进行控制和记录等都做出详细的规定,做到工作有章可循,有章必循,违章必纠。


part Ⅲ


测试基础


缺陷管理-“缺陷管理信息系统”的设计


定义:缺陷管理是指对于测试人员发现的软件缺陷,如何进行提交、确认、修复、验证等管理过程的跟踪管理。


MIS设计的三个关键问题?


问题一:“缺陷”对象数据结构设计



“核心属性”是缺陷管理的信息化基础,包括:


缺陷引发后果的“严重性”、处理缺陷的“优先级”。


严重性和优先级的设计:



四种严重性


1.严重。系统崩溃、数据丢失、数据破坏(系统级、数据级)


例如:蓝屏、死机、数据保存异常、完整性约束被破坏


2.较严重。操作性错误、错误结果、遗漏功能(功能级)


例如:某菜单项功能无法使用、报表项统计错误、“下一步”无法进入指定环节


3.一般:错别字、小问题(表现级)


例如:对必填框未作校验


4.建议:不影响使用的“瑕疵”或有“更好的”实现(优化级)


例如:某图片显示变形、界面不“横平竖直”、关键内容显示不完整


  • 五种优先级


1.最高。立即修复,停止进一步测试


2.次高。在产品发布之前必须修复


3.中等:如果时间允许应该修改


4.最低:可能会修改,但也能发布


问题二:“缺陷”对象状态设计


缺陷的“状态”及“状态之间的转换关系”设计是“缺陷管理信息系统”过程管理基础。

通常,参考生命周期理论,缺陷对象可设定六种“状态”:


“生死”状态:New 、 Closed(由测试决定)


“确认”状态:Open 、 Fixed(由开发决定)


“拒绝”状态:Declined 、Deferred


六种常见的“错误状态”及“转换关系”


1.New(新信息):测试中新报告的软件bug


2.Closed(关闭):错误已被修复,并已经过验证。


3.Open(打开):bug已被确认,并分配给相关的开发人员处理


4.Fixed(修正):bug已由开发人员修正完成,等待测试人员验证


5.Declined(拒绝):测试人员或开发人员认为不是错误,拒绝修改


6.Deferred(延期):不在当前版本修复,在之后某个版本中修复


错误状态转换图:



问题三:针对“缺陷”对象的功能设计


功能一:“缺陷”对象的基础功能,增删改查;


功能二:系统角色定义和OA流转功能;


功能三:常用统计、分析功能


  • MIS设计的三个关键问题?


问题一:“缺陷”对象数据结构设计


问题二:“缺陷”对象状态设计


问题三:针对“缺陷”对象的功能设计


黑盒测试


黑盒测试(功能测试),又被称为数据驱动测试、基于规格说明的测试或用户测试


等价类划分-练习题


示例一:在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,下面划分正确的是____


A:可划分为2个有效等价类,2个无效等价类;


B:可划分为1个有效等价类,2个无效等价类;


C:可划分为2个有效等价类,1个无效等价类;


D:可划分为1个有效等价类,1个无效等价类;


正确答案:B


示例二:某录入界面有4个输入项,要求分别如下:1)姓名,2-4个汉字;2)性别,男/女;3)年龄,16~40;4)学历,博士/硕士/学士/其他。请用等价类划分方法,对这个界面设计测试用例,预期结果略。


依据等价类划分思想,本题计划采用5个测试用例,进行等价类覆盖:


1.大,大,10,大大


2.大大,男,18,博士


3.大大大大大,女,42,硕士


4.大,大,10,学士


5.大,大,10,其他


示例三:在黑盒测试方法中,等价类划分方法设计测试用例的步骤是:根据输入条件把数目极多的输入数据划分成若干个有效等价类和若干个无效等价类;设计一个测试用例,使其覆盖_(1)尚未被覆盖的有效等价类,重复这一步,直至所有有效等价类均被覆盖。设计一个测试用例,使其覆盖(2)_尚未被覆盖的无效等价类,重复这一步,直至所有无效等价类均被覆盖.


A.1个; B.7个左右; C.一半;


D.尽可能少的; E.尽可能多的; F.全部.


正确答案:E,A



示例四:Nextdate()的等价类划分测试用例设计。


提示:包括“普通、跨月、跨年”三种情况。



1.03/08/2016 (1)


2.03/32/2016 (2)


3.03/31/2016 (3)


4.04/30/2016 (4)


5.02/29/2016 (5)


6.02/28/2015 (6)


7.13/28/2015 (7)


8.12/31/1999 (8-10)


9.12/31/0 (11)


示例五:三角形问题:


一个程序读入三个整数,把这三个数值看作一个三角形的三条边的长度值。这个程序要打印出信息,说明“非三角形”、“不等边三角形”、“等腰三角形”、“等边三角形”。


提示:区分“是否为三角形的三条边”、“是否等腰”、“是否等边”三种情况




依据“覆盖原则”,对测试用例化简:删1(留11)删8-10(留13-15)


示例六(应用题):佣金问题。某商店销售玩具枪支配件,包括枪机(45元/只) ,枪托(30元/只),枪管(25元/只),为了刺激销售业绩,实施佣金计算公式如下:


1.销售额≤1000元 佣金=销售额*10%


2.1000<销售额≤1800 佣金=100+(销售额-1000)*15%


3.销售额>1800 佣金=220+(销售额-1800)*20%


现已开发“销售业绩计算程序”,输入为某员工所售的枪机、枪托、枪管销售数量,输出为该员工的佣金数。请依据等价类方法,设计测试用例,检验该程序的有效性


分析:本程序输出为“分段函数”,具有三段,之和覆盖数轴。因此,具有三个“有效等价”类,无“无效等价类”


1.用例1,输入:5,5,5 预期输出:50


2.用例2,输入:15,15,15 预期输出:175


3.用例3,输入:25,25,25 预期输出:360


思考:健壮性测试(Robustness Testing)又称为容错性测试,用于测试系统在错误输入或出现故障时,是否能够自动恢复或者忽略故障继续运行。如考虑健壮性评价,则可以补充哪些“无效等价类”的测试用例?


小结


  • 思考:


等价类划分方法,是一种思维模式。对问题空间进行分类,并用测试用例进行“覆盖”验证的思想。


  • 建立这种思维模式,有利于迅速窥视一个系统的全貌和概要,从按摩器、相机等功能浏览,到汽车、机床的试驾。有利于迅速找到一个系统的漏洞和弱点的漏洞(例如CCH)。


  • 等价类划分方法,具有“快速遍历”的性质,是涉猎学习一个系统或一台设备的重要方法。

因果图-练习题


基本思想


等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。


因果图方法为了更好的分析问题,绘出判断表,进一步得出测试用例


当遇到较为复杂的问题时,这个方法常常十分有效


因果之间的四种关系:



因之间/果之间的五种约束



E(互斥,异):表示a,b两个原因不会同时成立,两个中最多有一个成立


I(包含,或):表示a,b,c这3个原因中,至少有一个必须成立


O(唯一):表示a,b当中必须有一个,且仅有一个成立


R(要求):表示当a出现时,b必须也出现。即a出现时,不可能b不出现


M(屏蔽、强制):表示当a是1时,b必须是0。而当a为0时,b的值不定


例题一:某《软件规格说明书》要求如下:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。


正确答案:


根据题意,设定如下:


原因:


1——第一列字符是A;


2——第一列字符是B;


3——第二列字符是一数字。


结果:


21——修改文件;


22——给出信息L;


23——给出信息M。


11为中间节点,根据绘图自行设计,目的为更好的对输入和输出之间进行分割




例题二:阅读下列说明,回答问题1~问题3,将解答填入答题纸的对应栏内。


【说明】因果图方法的思路是在用自然语言书写的程序规格说明描述中找住因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。


分析中国象棋中走马的实际情况(下面未注明的均指对马的说明),马走日字形(邻近交叉点无棋子)。遇到对方棋子可以吃掉,遇到本方棋子不能落到该位置。


【问题1】应用中可能有多种输入条件,在什么情况下可采用因果图法设计测试用例?


答:当应用中有多种输入条件,且输出结果与输入条件之间的关系可以明显依赖关系的情况下,可采用因果图法。


【问题2】根据上述说明,利用因果图法,下面列出走棋出现的情况和结果。找出哪些是正确的输入条件,哪些是正确的输出结果,请把相应的字母编号填入表中。


A.落点在棋盘上 B.落点与起点构成日字


C.移动棋子 D.落点处为对方棋子


E.落点处为自己方棋子 F.移动棋子,并除去对方棋子


G.落点方向的邻近交叉点无棋子 H.不移动棋子


I.落点处无棋子



【问题3】下图为中国象棋中走马的因果图,请把问题2中列出的输入条件和输出结果的字母编号填入到空白框中相应的位置。




1,“因果图”的设计思想?


直观、清晰的描述从因到果之间的逻辑关系。


2,用因果图方法,设计测试用例的步骤?


分析题目,罗列因变量、果变量;


绘制因变量、果变量,设计“辅助节点”,按因果关系连线,标注因果关系,标注约束关系; 绘制“判定表”,化简“判定表”,设计测试用例;


3,因果图的4种因果关系,5种约束关系是什么?


因果关系:与、或、非、恒等


约束关系:唯一(O)、互斥(E)、包含(I)、要求( R )、屏蔽(M)


4,因果图中“辅助节点”如何设计?


便于“汇集”因变量;便于“说明”果变量;


白盒测试


白盒测试(结构测试),白盒测试,是根据程序结构进行设计的测试方法,一般由程序员完成。它通过测试用例实现对程序结构(语句、判定、条件、路径)的“覆盖”,用来验证程序的实现是否与设计预期一致。


提升程序“易测试性”方法-错误桩


在检查测试效果时,常要在程序中插入一些错误语句。根据被检出的比例,推算出本次测试的覆盖度及程序剩余错误的保有量。


示例:测试团队对某程序进行测试,之前,质量监控部领导在该程序内插入了“10个错误桩”。测试团队提交的测试结果显示有27个错误,其中包含4个错误桩。此时,质量监控部领导如何评价本次测试团队的工作质量?


结论1:本次测试的覆盖程度 40%


结论2:估算系统剩余“错误”保有量= ( 27 – 4 ) / 4 * (10 - 4) = 34.5


性能测试


LoadRunner11中文版-基础教程


  • Loadrunner负载测试软件主要功能


创建虚拟用户


创建真实负载


实时监测


分析结果


  • Loadrunner中基本过程


创建批量“虚拟用户” 


为每个虚拟用户,执行预先编写的“测试脚本”


通过测试脚本,加载“真实负载”


对系统状态进行“实时检测”


  • 系统输入模拟和输出监测的主要参数


输入模拟:并发用户数、业务负载


输出监测:吞吐量(单位时间处理的事务数量)、业务响应时间(系统业务的执行时间,执行前后的时间戳之差)


  • 被测系统的主要“调优”方向


硬件方面:硬件参数调整、硬件性能提升、系统架构优化(机群、负载均衡设备、上云等) 


软件方面:结构设计、算法设计、参数调整


数据端方面:结构设计、平台选择


  • 其他性能测试种类


并发性能测试:逐渐增加并发用户数负载,直至不能接受点


疲劳测试:达到最大允许负载后,保持一段时间


大数据量测试:包括独立的数据量测试、综合数据量测试两种

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
10天前
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
|
3月前
|
Devops 测试技术 持续交付
测试左移,使质量反馈更快速,更可靠
测试左移,使质量反馈更快速,更可靠
测试左移,使质量反馈更快速,更可靠
|
3月前
|
监控 测试技术 持续交付
自动化测试和持续集成/交付:提升软件质量和效率的关键
在当今快节奏的软件开发环境中,自动化测试和持续集成/交付已经成为了必不可少的工具和流程。通过自动化测试,开发团队可以更快地检测和修复缺陷,同时提高测试覆盖率和质量。而持续集成/交付则可以让开发者将代码快速、自动地构建、测试和部署到生产环境中。这篇文章将探讨自动化测试和持续集成/交付的优势和实现方式,以及如何在实践中有效地使用它们来提升软件质量和效率。
|
1月前
|
测试技术
模型驱动测试:引领软件质量的新潮流
模型驱动测试:引领软件质量的新潮流
24 2
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与质量:AI驱动的自动化测试策略
【2月更文挑战第19天】 在快速迭代的软件发展环境中,传统的手动测试方法已无法满足高效率和高质量的要求。本文探讨了人工智能(AI)技术如何革新现有的软件测试流程,通过引入AI驱动的自动化测试策略,旨在提高测试覆盖率,减少人为错误,优化资源分配,并缩短产品上市时间。我们将分析AI在识别潜在缺陷、生成测试用例、执行测试以及结果分析中的应用,并讨论实施这些策略时可能遇到的挑战和限制。
175 3
|
1月前
|
敏捷开发 测试技术 持续交付
提升软件测试效率与质量的自动化策略
【2月更文挑战第19天】 在快速迭代的软件开发周期中,传统的手动测试方法往往难以满足高效率和高质量的双重要求。本文将探讨如何通过实施自动化测试策略来优化软件测试流程,减少重复劳动,提高测试覆盖率及发现缺陷的速度。我们将分析自动化测试的关键优势,包括时间效率、一致性、可重复性以及其在持续集成环境中的作用,并讨论实施过程中面临的挑战及解决策略。
|
7天前
|
算法 测试技术 持续交付
深入白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第23天】 在软件开发的复杂多变的环境中,确保产品的质量和可靠性是至关重要的。白盒测试作为一种重要的软件测试方法,允许测试者通过检查内部结构、设计和编码来验证软件的功能性和正确性。本文将探讨白盒测试的关键概念、技术及其在提升软件测试效率和质量中的应用。我们将重点讨论如何借助白盒测试发现潜在缺陷、优化测试用例设计,并通过具体案例分析展示其在实际中的应用效果。
|
8天前
|
算法 Java 测试技术
深入解析白盒测试:提升软件质量与效率的关键
【4月更文挑战第22天】 在软件开发的复杂多变的世界中,保证代码质量和功能的正确性是至关重要的。白盒测试作为一种重要的软件测试方法,提供了一种透视软件内部逻辑结构的途径。本文将详细探讨白盒测试的概念、技术手段和实际应用,旨在帮助读者理解如何通过这种测试提高软件系统的稳定性和性能。文章还将讨论白盒测试中面临的挑战以及应对策略,以期为软件质量保证提供实用的指导。
16 2
|
11天前
|
敏捷开发 Devops 测试技术
深入探索软件测试:保障质量的终极策略
【4月更文挑战第18天】在软件开发生命周期中,确保最终产品的质量至关重要,而软件测试则是达成这一目标的关键步骤。本文将探讨软件测试的多维度作用,包括其在不同开发阶段的应用、面临的挑战以及未来趋势。通过分析自动化测试工具的选择、测试用例设计的最佳实践和持续集成的重要性,文章为读者提供了一套全面的质量保证策略,旨在帮助团队提升测试效率并优化产品质量。
|
19天前
|
算法 测试技术 持续交付
深入探索白盒测试:提升软件质量的关键策略
【4月更文挑战第11天】 在软件开发的复杂世界中,确保代码的健康性与可靠性是至关重要的。白盒测试作为一种软件测试方法,允许测试者深入到程序的内部结构,以检查其逻辑和算法的正确性。本文将探讨白盒测试的核心概念、技术及其在提高软件质量方面的应用,特别是如何通过有效的白盒测试策略来优化测试过程并降低错误率。

热门文章

最新文章