黑盒测试技术 - 实验与作业
本章小结
本章介绍了软件测试中的常用的测试用例技术,不区分应用于白盒或是黑盒领域。虽然不同的技术有偏重点,例如决策表法、场景法和正交试验法常常用于业务流的黑盒测试方法中,技巧和思维方法掌握后,可以灵活应用在不同类别的测试中。
对于程序流的判断分支也可以采用决策表法,如果条件比较多,也可以用在正交实验法中;另一方面覆盖分析和路径分析,人们常常用于程序结果的分析,也同样可以应用在有多个分支的业务的基本流与备选流的讨论,设计相应测试用例。
软件测试人员应掌握发散性和系统性思维,而不用拘泥于哪种测试分类和测试技巧中,应学会综合应用。
测试用例设计过程
步骤一:等价类划分
首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率的最有效方法。
步骤二:边界值分析
在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强。边界值和等价类是最基础的测试设计方法,它们互为补充可以应用在各种不同的场合。
步骤三:决策表法
当测试需求中有多个条件产生不同结果的情况,则采用决策表法。
步骤四:正交试验法
如果条件比较多或系统的选项很多,则采用正交试验法降低测试用例数量。
步骤五:场景法
对于流程或多个场景的交互的测试时,常采用场景法、覆盖分析和路径分析法。一般场景法适合于业务型被测项目。
步骤六:覆盖分析和路径分析
覆盖分析和路径分析则适合于各种具备流程特点的业务流或程序段的分析。
步骤七:错误推测法
最后,对照流程逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当运用错误推测法补充测试用例。
实验项目
在线实验系统
注意:请勿修改密码
访问地址:http://124.222.128.99:8082/ssm467cz/admin/dist/index.html#/login
账户信息
| 角色 | 用户名 | 密码 |
|---|---|---|
| 管理员 | admin | guonuo123 |
| 研发员 | yanfa | Aa123456 |
| 测试员 | ceshi | Bb123456 |
| 产品经理 | cpjl111 | Cc123456 |
| 项目经理 | xmjl111 | Dd123456 |
软件测试对战实验
题目:简易银行账户管理系统
描述
创建一个简易的银行账户管理系统,该系统允许用户进行以下操作:开户、存款、取款、查询余额和销户。开发团队负责编写代码实现这些功能,而测试团队则需要编写测试用例来验证系统的正确性和健壮性。
开发团队要求
-
设计BankAccount类,包含以下属性:
- 账户号(accountId)
- 账户名(accountName)
- 余额(balance)
-
提供以下方法:
| 方法 | 说明 |
|---|---|
| openAccount(String accountName, double initialBalance) | 开户,返回账户号 |
| deposit(int accountId, double amount) | 存款,返回操作后的余额 |
| withdraw(int accountId, double amount) | 取款,返回操作后的余额,如果余额不足则返回错误信息 |
| getBalance(int accountId) | 查询余额 |
| closeAccount(int accountId) | 销户,返回操作结果 |
- 实现异常处理,确保在非法操作(如账户不存在、余额不足等)时能够抛出并处理异常。
测试团队要求
-
编写测试用例,覆盖以下场景:
- 正常开户、存款、取款、查询余额和销户流程
- 异常情况测试:如账户不存在时的取款、销户操作,余额不足时的取款操作等
- 边界条件测试:如开户时初始余额为负数,取款金额为负数等
-
**使用断言(Assertions)**来验证方法返回的结果是否符合预期
-
编写测试报告,记录测试结果和发现的缺陷
对战练习流程
- 开发团队在规定时间内完成系统开发
- 测试团队在开发团队完成后立即开始测试(也可以根据需求,与开发同步写测试脚本)
- 测试团队向开发团队报告发现的缺陷,开发团队需要在规定时间内修复
- 最终,双方共同评估系统的质量和测试的有效性