|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
4 软件质量与软件测试/ Z R9 k% x- ^' D9 A
一、软件质量
: T' C6 ^* F A 什么是软件的质量?一定意义上讲,它不同于汽车或食品,汽车的质量是指一部特定的汽车,在这部汽车面前,专家可以提出一系列确定其质量的指标,这些量化的指标不依赖于任何其它的汽车或别的什么而存在。而软件的质量,特别是表现在功能上,它只有在作用于确定的对象时才体现出来,而被作用的对象又是千变万化的。因此,软件的质量可以被这样理解,即软件产品说明书标明的质量指标在其被应用时能够被证实的程度,或者说是软件质量指标的置信度;其实也就是软件性能和功能的总和。5 P5 B6 [! F3 B' M$ g+ B
软件的质量包括产品质量和过程质量,产品质量是文件、设计、代码和试验的属性,过程质量是指技术,工具、人员和组织机构方面的属性。提出过程质量是因为它有决定软件质量方面的作用是为实际产品的生产建立一个必要的支持条件。不可能希望以不具备这个条件的工艺过程开发出成功的高质量的软件产品。
6 Q! ^! }8 `. R# g 二、软件测试
% V; K2 K% c! ^ 测试是考察一个系统的有效手段,通过测试可以对CAD系统解决实际问题的能力进行量化考核,验证应用软件的主要技术指标和综合性能,感受用户界面与操作的友好性,考察支持平台的运行能力,了解技术支援工程师的水平。
3 ]2 Z' Q( y: K* O' J6 h 1、测试分类, Q; d9 ^( x% W/ V9 p
从评测的目标出发,应用软件的评测一般分为三种,一种是软件合格性评测,即评测被评测对象是否满足指定的功能要求,评测的结果是绝对的。二是软件评优评测,即对一定量的具有相同功能要求的软件,在确定的功能要求指标上判定软件接近指标的相对程度。三是软件商品化评测,即评测被评对象满足市场或行业对应用软件的商品化要求,其结果一般地讲,也是绝对的。
X, G1 |" U4 B+ o4 t3 ?" I 从评测的方法出发,评测又可按两种方式进行,即正向或负向测试,正向测试规定测试人员必须正确使用(就是说以正确的数据,正确的方式)软件,并在正确使用软件时测试检查程序是否能正常工作。负向测试要求测试人员故障使用(错误的输入数据或错误的输入方式)软件,并在故障使用时测试检查程序仍可正常工作(发出错误数据或错误方式的指标信号,不会导致系统事故或破坏发生)的程度。, H5 z5 ?) \5 [3 P! p; C: [
从评测的质量含义出发,评测可分为软件功能(黑盒)和软件结构(白盒)测试。应该说在考虑功能和结构两种测试时,要两相结合,但现实地讲最重要的还是功能测试(功能也包括可靠性等一般软件说明中不一定出现的非专业的质量条款),因为产品的性能与用户的期望是否吻合是最实际的目标。
6 f$ w/ x: | q* E5 f* G软件质量特性只有少数能用算法或公式使其规范化,大多数质量因素是由专家根据经验进行评估的,由于每个专家的知识和经验的不同,对于某一确定的评估测试质量项目的资格亦不同,因此在测试中,人为的因素很重要。评估又是一次浩繁的工作,参加评估的专家不可能长期保持判断的一致性,要保证测试结论的准确性,要有专家意见的统计分析系统。 l5 G' i( D2 d) V% q
2、测试策略& M2 }% p% a' N% l: N
一般来讲,软件测试策略是为了保证有效进行测试而规定的各种测试参加者的活动与责任的一种机制,是对测试参加者的实践和认识进行调整的依据。, _' w$ G& B/ m$ H$ R
确保测评信息一致性的主要机制应该是对测试数据需求的确定的,明晰的说明,说明这些数据必须贯彻下列原则:
9 P- y5 H3 ?9 J% q0 K 应考虑到测试活动的所有相关问题。
7 U* A6 F# ]$ g7 _: r$ q. ^ 数据为评价软件有效性而产生,并仅为此。
, `, X2 n! [, i 测试结果的说明应有利于准确地理解被测软件的质量。* Q; Y% [3 @! O7 Q, ^4 u
测试及测试结果,应有明确的记载与说明方式。" Z7 o1 r: N1 O: ` G1 l
功能测试不是难在专业上,追求公认的、绝对的结果是不现实的,理论上有,但没人相信对于复杂的软件系统会得到一个绝对的答案,既然为相对结果,那么只求科学和公正,即在某一确定的环境下,通过测试得到对应于这个确定的环境的测试结果即可,不刻意追求输入数据质量,但可遵循三个原则,测试要尽可能执行程序多的组成部分,测试要尽可能造成恶劣条件来发现测试对象的缺陷,要以尽可能少的测试投入产生尽可能多的对测试对象的质量说明。5 d! i- d( x) ~& g+ }& E
工程设计CAD软件的评价应严格遵循自上而下的方法,评测开始,首先评价模型,其后才是算法,这样就不会因具体的解法而使总体评价带有倾向性,并且可以认为模型和算法是无关的,确应这样认为,评价模型即模型,结论只对模型做出,评测算法即算法,评测结果亦只对算法做出。对于局部结论的作出要有科学的方法。总体结论是建立在局部结论的基础之上的,对于总体结论的作出同样更要有科学的方法。, v% ^# K' d1 V4 s4 U. K1 y H# D( v
3、测试环境, l! n2 P" T/ z% b8 f
测试环境是一个确定的,可以明确说明的条件,不同的测试环境可以得出对同一软件的不同测试结果,这正说明了测试并不完全是客观的行为,任何一个测试的结果都是建立在一定的测试环境之上的。没必要去创造一个尽可能好的测试环境,而只需一个满足要求的、公正一致的、稳定的、可以明确说明的条件。测试环境中最需明确说明的是测试人员的水平,包括专业的、计算机的、经验的能力以及与被测程序的关系,这种说明还要在评测人员对评测对象作出的判断的权值上有所体现。这一点要求测试机构建立测试人员库并对其参与测试的工作业绩不断做出评价。
& `0 ^8 x8 _' i9 }; F' ?3 N f5 A: |功能测试执行后,人们会问测试的结果在多大程度上可以说明软件的功能质量,即作为功能质量说明的依据是否充分。除去测试结果本身应该说明的结论外,一些已执行了软件测试的国内、外的一些行业几乎大量地采用了一个程序执行覆盖率的指标来说明这个问题,即任何的功能测试的输入数据的执行,在程序中执行程序语句的百分率的多少,绝对数及相对数,这是由测试跟踪监测系统完成的。即使目前不提出测试有效的最低覆盖率要求,也应对此有一统计并向社会说明。这是测试环境组成的重要部分,忽视了这一点的说明,那怕是非定量的说明,都会给测试留下隐患。
" y9 Q( `7 x8 e# A. n 4、评测方法0 h7 y4 E0 F- G F4 J
在软件工程领域中,测试过程用字母“P”表示,P定义为把一组输入数据(ID)通过执行测试对象转换为一组相应的输出数据(OD)的过程。EOD作为评测专家通过方法F确定的样板或者说是技术准则,在最不理想的情况下,EOD至少是评测各方公认的运行被测软件预期要达到的目标。在软件测试中,P的输出TOD与EOD进行对比,出现偏差时,说明测试对象执行P过程有误。
: w3 o: U9 D$ C9 o 5、测试效率与测试指南
& R* B1 L7 V" I 为提高测试的操作性,对每一次测试编制测试指南是必要的。指南应包括本次测试的达到目标,说明测试对象有效性的依据以及测试终止或失败的条件,测试计划,测试环境及其修正,测试文档等。9 n w" o5 a8 ^& o
如果不同的测试对象要在不同的日期里完成测试,那么测试人员在两次测试期间关于对测试对象的任何讨论都将会影响未来测试的实施。为避免这种槽糕的情况,也是为了从根本上提高测试效率,就要求所有测试人员在实施测试之前都要进行确定(在最后可以说明量)量的与测试方法相适应的训练,以避免测试实施后出现问题,这种问题出现的情况往往会导致测试的失败。
: K+ S. _/ w4 y2 Z 1、
" _, f$ C9 l! E* [8 C: ~/ \5 b: l测试考题% g$ u7 F" o% E1 z* w# x7 P/ u- R
为了实现对应用系统的综合考察,测试考题可分为五种类型:' y6 q2 J: @# `5 I7 h% r6 r! C/ }
1)常规测试:通过实现机械设计中应用最频繁的常规操作,测试软件的基本功能,考察系统运行是否稳定,操作是否方便好用。" X# [$ t: R1 S" @
说明:实际应用中绝大多数操作都是在反复执行应用软件的最基本、最通用的功能,这些功能对于每个软件系统来讲都能实现,但是否方便好用,是否符合标准规范,只能通过测试来检验。( h0 v5 |) a, q# |: f: l
2)难度测试:测试软件系统进行复杂计算、复杂造型、复杂分析、复杂编程等方面的能力。
6 h6 B& t5 t: @: j8 v# { 3)数量测试:系统在处理大数据量的能力(如:多任务运行、高质量图像、大装配、海量数据分析)。; }3 q" N ?* I. i# W
4)流程测试:测试集成系统/整合系统的处理过程是否连续流畅,数据是否相关。
* l/ c; u! p, t) v 5)专题测试:测试软件系统能否胜任特定的产品(零件)的应用、解决某项工程的技术关键。
7 z9 o6 W% d$ X; u" D0 A$ i: Z测试考题也可作其它分类与组合,但应涵盖上述内容。此外,试用软件也是一种测试的好途径,在技术支援工程师的速成培训与指导下,由用户方工程师上机使用软件,作应用题目。这种直接操作的体会,对认识系统、评价系统非常有帮助。 |
|