测试用例设计方法
编写测试用例的七种方法

编写测试⽤例的七种⽅法1 测试⽤例的概念测试⽤例是为了实施测试⽽向被测试系统提供的⼀组集合,这组集合包括:测试环境、操作步骤、测试数据、预期结果等要素2 常见编写测试⽤例的七种⽅法基于需求的设计⽅法等价类边界值因果图场景设计法错误猜测法3 基于需求的设计⽅法定义:依据看客户需求设计测试⽤例,但是在设计的过程中⼀定要辩证的看待需求(即:需求不⼀定都是正确的)4 等价类法(1)定义:依据需求将输⼊划分为若⼲等价类,从等价类中选定⼀个测试⽤例,如果该测试⽤例通过,则表明整个等价类通过测试。
(2)适⽤场景:对于等价类这个⽅法,⼀般适⽤于有⽆限多种输⼊,我们不可能完成穷举测试,等价类可以使我们⽤较少的测试⽤例尽可能多的将功能覆盖。
(3)有效等价类和⽆效等价类⼀般划分为:有效等价类、⽆效等价类有效等价类:有意义的输⼊构成的集合,对于需求规格说明书是合法的;⽆效等价类:不满⾜需求的集合。
5 边界值法(1)定义:边界值法是对输⼊数据的边界测试,是⼀种⿊盒测试⽅法;⼀般来说边界值法是对等价类划分后的补充(2)例:对于设定密码的测试,要求密码必须为6-15位分析过程:有效等价类为>=6 && <=15 ⽆效等价类为:<6 || >15设定边界值:5、6、10、15、16边界值选定解释:A. 6和15作为有效等价类中的内容,⼜是边界值,可以判定有效等价类的内容是否满⾜要求B. 但是6和15⼜很特殊,它不仅代表了有效等价类,还代表了边界值,所以我们选定⼀个普通的有效等价类作为⼀个测试⽤例,如:10C. 5和16作为⽆效等价类中的内容,⼜是边界值(⽐4或者17更具有代表性),可以判定⽆效等价类的内容6 因果图(1)定义:因果图是⼀种简化的逻辑图,能够表⽰输⼊条件和输出结果之间的关系。
(2)认识因果图的表⽰⽅法:恒等、与、或、⾮⼀般在使⽤因果图编写测试⽤例的时候,因果图不⼀定能把所有的情况含括进去,所以在因果图之后,我们可以通过画判定表来确定最终的测试⽤例。
设计测试用例的方法有哪些

设计测试用例的方法有哪些设计测试用例的方法有很多种。
下面将介绍几种常见的测试用例设计方法。
1. 等价类划分法:将输入条件或输出条件划分为若干个等价类,从每个等价类中选取一个典型值作为测试用例。
例如,对于一个账号注册的系统,可以将用户名输入划分为长度不超过10个字符和超过10个字符两个等价类,然后选取一个符合条件的测试用例进行测试。
2. 边界值分析法:测试用例中包含一些边界值,例如最大值、最小值、临界值等。
边界值往往比一般的值更容易引发错误。
例如,对于一个计算器的系统,在测试除法功能时,可以设计测试用例为除数为0、除数为1和除数为-1的情况。
3. 错误推测法:根据错误推测的原理,假设程序的某个部分可能发生错误,并设计测试用例来验证。
例如,对于一个在线商城的系统,在提交订单时,在错误推测的基础上,设计测试用例验证逻辑错误(如用户未登录时无法下单)或输入错误(如购买数量为负数时无法提交)。
4. 因果图法:将输入条件和输出条件按照因果关系进行组合,从而得到覆盖所有可能情况的测试用例。
例如,对于一个购物车功能的系统,因果图法可设计测试用例组合为加入商品、减少商品、删除商品、结算等操作之间的组合情况。
5. 结构化测试方法:根据软件的内部结构,设计测试用例以覆盖各个模块、分支和路径。
常用的结构化测试方法有语句覆盖、判定覆盖、条件覆盖、路径覆盖等。
例如,对于一个条件判断的系统,可以设计测试用例来验证每个条件的真假时不同分支的执行情况。
6. 随机测试方法:通过随机生成测试用例的方式进行测试。
随机测试可以覆盖较大的输入空间,但可能无法覆盖所有的边界条件和特殊情况。
例如,对于一个随机生成数字的系统,可以设计测试用例来验证生成的数字是否在指定范围内,并验证系统对于边界情况的处理。
7. 场景测试方法:根据实际使用场景,设计测试用例来模拟真实环境下的操作和交互。
场景测试可以更好地模拟用户的实际使用情况和需求。
例如,对于一个电子邮件系统,可以设计场景测试用例来模拟用户注册、发送邮件、收取邮件等真实操作。
测试用例设计方法

测试用例设计方法测试用例设计是软件测试过程中非常重要的一环。
通过合理的测试用例设计,可以全面地验证软件系统的功能是否正常、性能是否满足要求、稳定性是否可靠等。
在测试用例设计中,可以使用多种方法来确保测试的全面性和有效性。
下面我将介绍几种常用的测试用例设计方法。
1. 等价类划分法等价类划分法是一种基于输入数据的测试用例设计方法。
它将输入数据划分为若干等价类,每个等价类包含了一组具有相同特征和行为的输入值。
然后,从每个等价类中选择一个典型的输入值作为测试用例。
这样做的好处是在尽量少的测试用例下,可以覆盖到不同的输入条件。
例如,对于一个要求输入年龄的功能,可以划分为小于0岁、0到17岁、18到65岁、65岁以上等等等价类。
2. 边界值分析法边界值分析法是在等价类划分法的基础上,进一步考虑边界情况的测试用例设计方法。
边界值通常是系统能够处理的最小和最大输入值。
通过测试边界值,可以发现输入值是否能够正确地被系统处理。
例如,对于一个要求输入1到100之间的数字的功能,可以设计测试用例分别为0、1、2、99、100、101等。
3. 错误推测法错误推测法是基于测试人员的经验和直觉来推测可能出现的错误情况,并针对这些错误情况设计测试用例。
这种方法更关注于系统对异常情况的处理能力。
例如,对于一个邮件发送功能,可以设计测试用例来测试系统在网络不稳定、收件人邮箱不正确、邮件附件过大等错误情况下的反应。
4. 状态转换法状态转换法是针对有状态的系统进行测试用例设计的一种方法。
通过分析系统的状态变化,设计测试用例来覆盖各个状态和状态之间的转换。
例如,对于一个订单处理系统,可以设计测试用例来覆盖订单的创建、支付、发货、取消等各个状态。
5. 正交实验法正交实验法是一种基于统计学的测试用例设计方法。
它通过对系统的各个因素进行组合,设计最少的测试用例来覆盖尽可能多的情况。
这种方法适用于系统的因素比较复杂,测试用例组合爆炸的情况。
例如,对于一个电子商务网站,可以设计测试用例来测试不同的商品类别、商品属性、支付方式等组合情况。
常见的测试用例设计方法

常见的测试用例设计方法
哇塞,测试用例设计方法那可真是软件开发中超级重要的一环啊!常见的测试用例设计方法有等价类划分法、边界值分析法、错误推测法等等。
先说等价类划分法,这就像是把一个大问题切成几个小块来处理。
步骤就是先确定输入条件,然后划分出有效等价类和无效等价类。
注意哦,一定要划分全面,不能有遗漏呀!不然就像拼图少了几块,那可不行。
在这个过程中,安全性和稳定性就显得尤为重要啦。
如果划分不准确,可能会导致一些重要的问题没被测试到,那不是很糟糕嘛!
边界值分析法呢,就像是在悬崖边小心翼翼地探索。
它特别关注输入条件的边界值,因为很多问题往往就出在这些边界上呀。
这个过程中也要注意仔细认真,稍有疏忽可能就错过了关键的地方。
它的优势在于能够精准地找到那些容易出问题的边界点,就像猎人瞄准猎物一样准确。
再来说错误推测法,这可有点像侦探破案呢!根据经验和直觉来推测可能出现的错误。
这在一些复杂的场景中特别有用,可以快速地找到一些隐藏的问题。
它的应用场景很广泛,无论是软件的新功能还是旧功能的维护,都能发挥很大的作用呀。
我给你举个实际案例吧,比如说测试一个登录功能。
用等价类划分法可以把用户名和密码的各种情况划分清楚;边界值分析法可以关注用户名和密码的长度边界;错误推测法可以想到一些用户可能会输入错误的情况。
这样一结合,就能把这个登录功能测试得很全面啦,实际应用效果那可是杠杠的呀!
总之,这些常见的测试用例设计方法就像是软件开发的得力助手,没有它们可不行呀!它们能让我们的软件更加可靠,让用户用得更放心!。
测试用例的几种常用设计方法

测试用例的几种常用设计方法测试用例是软件测试中的重要组成部分,它们对于确保软件质量至关重要。
在设计测试用例时,可以采用多种不同方法。
下面将介绍几种常用的测试用例设计方法。
1.等价类划分法(Equivalent Partitioning)等价类划分法是一种基于输入数据的测试用例设计方法。
它将输入数据划分为若干等价类,每个等价类中的数据具有相同的功能和处理方式。
在设计测试用例时,只需要选择每个等价类中的一个或几个代表性的测试数据进行测试即可。
这种方法可以有效地减少测试用例的数量,同时保证测试覆盖面。
2. 边界值分析法(Boundary Value Analysis)边界值分析法是一种基于输入数据边界的测试用例设计方法。
它关注输入数据的边界条件,通常在输入数据的最小值、最大值和边界附近选择测试用例。
这是因为在边界处发生的错误往往比在其他地方发生的错误更容易被发现。
通过边界值分析法设计的测试用例可以提高测试效率和覆盖度。
3. 错误推测法(Error Guessing)错误推测法是一种基于经验和直觉的测试用例设计方法。
它假设测试人员能够猜测到软件中潜在的错误,并设计相应的测试用例来验证这些错误。
这种方法不依赖于任何特定的测试技术或规则,而是基于测试人员的经验和洞察力。
错误推测法可以应用于各种测试阶段,并且适用于不同类型的软件。
4. 决策表法(Decision Table)决策表法是一种基于规则和条件的测试用例设计方法。
它使用表格来表示系统的决策条件和相应的动作结果。
在设计测试用例时,可以根据表格中的各种条件组合来选择相应的测试用例。
决策表法对复杂的业务逻辑和条件约束非常有效,可以提高测试覆盖范围和准确性。
5. 状态转换法(State Transition)状态转换法是一种基于系统状态的测试用例设计方法。
它将系统的不同状态和状态之间的转换关系进行建模,并选择相应的测试用例来验证系统在不同状态下的行为。
状态转换法适用于具有明确状态转换关系的系统,例如有限状态机。
测试用例的几种设计方法

测试⽤例的⼏种设计⽅法⼀、等价类划分等价类划分主要适⽤于单个输⼊条件,输⼊为数值型的情况,如果输⼊规定了输⼊区间,可划分出⼀个有效等价类,两个⽆效等价类;如果输⼊只规定了输⼊范围,可划分出⼀个有效等价类,⼀个⽆效等价类。
⼆、边界值边界值⽅法也是适⽤于单个输⼊条件的情况,输⼊类型可以数值、字符等,要测试的边界包括上点、下点、离点。
三、错误推测法错误推测法主要是测试设计⼈员的测试经验相关,测试经验不同,设计出来的测试⽤例也区别很⼤。
四、因果图法因果图⽅法考虑输⼊的组合,特别适⽤于多个输⼊条件相关有关联⼜相互约束的情况。
设计步骤:1)罗列出输⼊与输出;2)根据输⼊与输出画出因果图;3)标出约束跟限制;4)把因果图转化成判定表;5)根据判定表的每⼀列设计测试⽤例。
五、判定表驱动法判定表适合于解决多个逻辑条件的组合。
将各种逻辑的组合罗列出来,避免遗漏。
不能表达重复的操作。
判定表包括条件桩、条件项、动作桩、动作项。
条件桩:列出所有条件,次序⽆关;条件项:列出所对应条件的所有可能情况下的取值;动作桩:列出可能采取的操作,次序⽆关;动作项:列出条件项各种取值情况下采取的操作。
设计步骤:1)确定规则个数,条件及各条件取值的组合;2)列出条件桩、动作桩;3)列出条件项;4)列出动作项;5)初始化判定表;6)规则简化、合并。
六、正交法当输⼊条件很多时,因果图等设计⽅法设计出来的⽤例数往往多的惊⼈,⽤正交法可有效减少⽤例数。
正交法的核⼼思想是从⼤量测试数据中选取有代表性的点来测试,从⽽减少测试⽤例数。
设计步骤:1)确定因⼦并画出正交表草图;2)填充各因⼦的状态值;3)加权筛选;4)根据筛选过的正交表设计测试⽤例。
七、功能图法功能图法适合于⽤来设计程序的控制结构的测试⽤例。
有顺序、选择、重复三种控制结构。
设计步骤:1)画出功能图;2)⽣成局部测试⽤例;3)⽣成测试路径;4)合成测试⽤例。
⼋、场景法场景法特别适⽤于控制流清晰的系统。
测试用例 设计方法

测试用例设计方法
测试用例设计方法主要包括以下几种:
1. 黑盒测试用例设计方法:主要根据需求、功能规格、接口规范等来设计测试用例,不需要了解内部实现细节。
2. 白盒测试用例设计方法:主要根据源代码结构、逻辑覆盖、路径覆盖等来设计测试用例,需要了解内部实现细节。
3. 等价类划分法:将输入条件划分为若干个等价类,从每个等价类中选择一个测试用例进行测试,以覆盖不同情况。
4. 边界值分析法:主要关注输入条件的边界值,选择邻近边界值和边界值本身作为测试用例。
5. 因果图方法:通过绘制因果图,将各种因素和对应的测试用例联系起来,以确定测试用例的设计。
6. 正交试验方法:将多个因素进行组合,选取各个因素的不同取值,以确定测试用例的设计。
7. 检查表法:根据需求规格和功能说明等编制一个检查表,从每个检查表中选
择一个测试用例进行测试。
8. 错误推测法:通过推测可能发生的错误,设计相应的测试用例,以覆盖这些错误的情况。
对于测试用例设计,可以根据具体的需求和项目情况选择适合的方法进行设计。
同时,还需要考虑测试用例之间的覆盖率,以确保对系统的功能进行充分的覆盖和测试。
测试用例设计的方法

测试用例设计的方法测试用例设计是软件测试中的重要环节,它旨在验证软件系统的正确性和稳定性。
一个好的测试用例设计可以帮助测试人员高效地发现和修复软件中的缺陷,确保软件质量。
下面将介绍几种常用的测试用例设计方法。
1. 边界值分析法边界值分析法通过测试边界值来检验系统的健壮性。
该方法假设错误往往发生在边界上,因此对于特定输入条件,测试用例应包括最小值、最大值以及接近最小值和最大值的临界值。
例如,一个接受年龄输入的系统,可以设计测试用例包括负数、0、1、100、101等边界值。
2. 等价类划分法等价类划分法是将输入条件划分为多个等价类,然后从每个等价类中选择一个测试用例进行测试。
等价类划分法的基本原则是:一个等价类中的数据具有相同的功能和行为,无论选择其中的哪个值作为输入,系统的行为都应该是一致的。
例如,对于一个接受月份输入的系统,可以将月份划分为等价类:1-12个月是有效的输入,其他数字和非数字是无效的输入。
3. 成对测试法成对测试法是一种组合测试方法,它通过组合两个或多个输入条件来设计测试用例,以验证系统对不同条件的组合是否正确处理。
该方法适用于系统具有多个输入条件的场景。
例如,一个在线商城系统,会有多种支付方式和配送方式,可以设计不同的测试用例来测试各种支付和配送方式的组合效果。
4. 状态转换法状态转换法适用于测试有状态的系统,例如有限状态机、状态驱动的系统等。
它通过设计测试用例来验证系统在不同状态下的行为是否符合预期。
测试用例应包括系统从一个状态转换到另一个状态的过程,以及在每个状态下系统的行为。
例如,一个电梯系统的状态可以包括:停止、上升、下降等,可以设计测试用例来测试系统在不同状态下的响应和行为。
综上所述,测试用例设计是软件测试中非常重要的一环。
通过边界值分析法、等价类划分法、成对测试法和状态转换法等方法,可以设计出全面、有效的测试用例。
测试人员可以根据具体的系统特点和需求,选择合适的方法来进行测试用例设计,以提高测试效率和发现软件中的缺陷。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 货品价格 = 0
3.货品价格 = -1
4. 货品价格 = 100, 付款金额 = 101
5. 货品价格 = 100, 付款金额 = 99
6. 货品价格 = 50, 付款金额 = 100RR=50
7. 货品价格 = 51, 付款金额 = 100RR=49
8. 货品价格 = 90, 付款金额 = 100RR=10
婚姻:集合「未婚」
扶养人数:空白
保险费率:0.6 %
2.
50
Male
已婚
2
0.6%
有效
年龄:40~59岁
性别:集合「Male, M」
婚姻:集合「已婚」
扶养人数:1~6人
3.
70
F
未婚
7
0.1%
有效
年龄:60岁以上或20岁以下
性别:集合「Female, F」
婚姻:集合「未婚」
扶养人数:6人以上
4.
0
M
输入数据说明
年龄
20~39岁
6点
40~59岁
4点
60岁以上20岁以下
2点
性别
MALE
5点
FEMALE
3点
婚姻
已婚
3点
未婚
5点
扶养人数
一人扣0.5点最多扣3点(四舍五入取整数)
一、分析输入数据型式。
年龄:一或两位数字。
性别:以英文「Male」、Female」、「M」、「F」表示。
婚姻:「已婚」、「未婚」。
9、0 < R <= 100, R <= P <= 100, RR = 5
10、0 < R <= 100, R <= P <= 100, RR = 4
0 < R <= 100, R <= P <= 100, RR = 1
0 < R <= 100, R <= P <= 100, RR = 0
五、 为 满 足 以 上 之 各 种 情 形 , 测 试 资 料 设 计 如 下 :
III.输入表中所有元素已排好序;
IV.输入表已按逆序排好;
V.输入表中部分或全部元素相同。
4
4.1
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等.考虑输入条件之间的相互组合,可能会产生一些新的情况.但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多.因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.这就需要利用因果图(逻辑模型).
9.扶养人数
空白
10.扶养人数
1~6
小於1,选一个
11.扶养人数
7~9
大於9,选一个
12.保险费率
10点以上(0.6 %)
13.保险费率
10点以下(0.6 %)
四、根据以上分析设计测试用例:
用例编号
年龄
性别
婚姻
扶养
人数
保险
费率
备注
1.
27
Female
未婚
空白
0.6%
有效
年龄:20~39岁
性别:集合「Female, F」
4)根据规格说明的每个输出条件,应用前面的原则2).
5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.
6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.
7)分析规格说明,找出其它可能的边界条件.
2.2
找零钱最佳组合
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.
3)原则:
设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:
输入条件有效等价类无效等价类
... ... ...
... ... ...
然后从划分出的等价类中按以下三个原则设计测试用例:
1为每一个等价类规定一个唯一的编号.
2设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.
2)划分等价类的方法:
下面给出六条确定等价类的原则:
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.
一、 分 析 输 入 的 情 形 。
R > 100
0 < R < = 100
R <= 0
P > 100
R<= P <= 100
P < R
二、 分 析 输 出 情 形 。
N50 = 1
N50 = 0
4 > N10 >= 1
N10 = 0
N5 = 1
N5 = 0
4 > N1 >= 1
N1 = 0
三、 分 析 规 格 中 每 一 决 策 点 之 情 形 , 以 RR1, RR2, RR3 表 示 计 算 要 找 50, 10, 5 元 货 币 数 时 之 剩 余 金 额 。
扶养人数:空白或一位数字。
保险费率:10点以上,10点以下。
二、划分输入数据
1.年龄
数字范围
1~99
等价类
20~39岁
40~59岁
60岁以上20岁以下
2.性别
类型
英文字之集合
等价类
类型:英文字
集合:「Male」、「M」
集合:「Female」、「F」
3.婚姻
等价类
已婚
未婚
4.扶养人数
选择项
扶养人数可以有,也可没有
范围
1~9
等价类
空白
1~6人
6人以上
5.保险费率
等价类
10点以上
10点以下
三、设计输入数据。
有效等价类
无效等价类
无效等价类
1.年龄
20~39任选一个
2.年龄
40~59任选一个
3.年龄
60岁以上、20岁以下任选一个
小於1,选一个
大於99,选一个
4.性别
英文Male, M, F, Female任选一个
非英文字如「男」
等价类划分是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.
1)分类:
划分等价类:等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
5.性别
英文Male, M任选一个
非Male, M, Female, F之任意字元,如「Child」
6.性别
英文Female, F任选一个
非Male, M, Female, F之任意字符,如「Child」
7.婚姻
「已婚」
非「已婚」或「未婚」之任意字符,如「离婚」
8.婚姻
「未婚」
非「已婚」或「未婚」之任意字符,如「离婚」
因果图方法最终生成的就是判定表.它适合于检查程序输入条件的各种组合情况.
利用因果图生成测试用例的基本步骤:
(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符.
测试用例设计方法
1
1.1
等价类划分是一种典型的黑盒测试方法。这一方法完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。
等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的。
等价类合理地假设:某个等价类的代表值,与该等价类的其他值,对于测试来说是等价的。
因此,可以把全部的输入数据划分成若干的等价类,在每一个等价类中取一个数据来进行测试。这样就能以较少的具有代表性的数据进行测试,而取得较好的测试效果。
9. 货品价格 = 91, 付款金额 = 100RR=9
10. 货品价格 = 95, 付款金额 = 100RR=5
11. 货品价格 = 96, 付款金额 = 100RR=4
12. 货品价格 = 99, 付款金额 = 100RR=1
13. 货品价格 = 100, 付款金额 = 100RR=0
3
1、定义:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.
假 设 商 店 货 品 价 格 (R) 皆 不 大于100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) 数 ? ( 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 )