软件构造记录-测试

什么是测试

软件测试是提高软件质量的重要手段。

它是执行程序或应用程序的过程,目的是查找bug(error或其他缺陷),并验证软件产品适合使用,确认是否达到可用级别(用户需求)。

它关注系统的某一侧面的质量特性。

即使是最好的测试,也无法达到100%的无错误

residual defect rates 残留缺陷率(每1000行代码):

- 1-10:典型的工业软件。

- 0.1-1:高质量的验证。Java库可能达到这种正确性。

- 0.01-0.1:最好的,安全至上的验证。美国国家航空航天局和像Praxis这样的公司可以达到这个水平。

测试的特征

测试跟其他活动的目标相反:破坏、证错、“负能量”。

再好的测试也无法证明系统里不存在错误。

一个好的测试应该:

能发现错误

不冗余

最佳特性,多种测试方案中最好的

别太复杂也别太简单

测试等级

单元测试:验证一个特定的代码段的功能,通常在函数水平

集成测试:由多个程序员或编程团队创建的两个或两个以上的类,包,组件,系统的联合执行。

系统测试:测试一个完全集成的系统,验证系统满足其要求,在最终的配置上执行软件。

静态与动态测试(Static vs. Dynamic testing)

静态测试:用眼睛看,评审、走查、检查等
动态测试:使用测试用例集进行测试


测试与调试(Testing vs. Debugging)

测试:发现是否存在错误

调试:识别错误根源,消除错误

黑盒测试vs白盒测试

白盒测试可测试内部结构或通过查看源代码。
黑匣子测试将软件视为“黑匣子”,功能,而无需任何内部实现知识,看不到源代码。

为什么软件测试很难

穷举测试是不可行的:可能的测试用例的空间通常太大,无法面面俱到。

随意测试(“尝试一下,看看它是否有效”):不太可能发现bug,偶然测试没有意义。

随机或统计测试对软件不起作用。基于样本的统计数据对软件测试意义不大—软件与产品的巨大差异。

软件行为在离散输入空间中差异巨大:大多数正确,少数点出错;bug出现往往不符合特定概率分布。

测试无统计分布规律可循 。

测试用例

测试用例是什么? 测试用例:输入+执行条件+期望结果

好的测试用例:最可能发现错误,不重复不冗余,最有效,既不简单也不复杂。

测试优先的编程(Test-First Programming):

先写spec,再写符合spec的测试用例,最后写代码、执行测试、有问题再改、再执行测试用例,直到通过它。

不要把测试留到最后!

先写测试会节省大量的调试时间。

越早发现越容易纠正

更深入和更早的理解需求和设计

更早地暴露需求和设计的问题

可确保程序的可测试性

确保每个程序特征的测试都撰写完成

单元测试(Unit Testing)

针对软件的最小单元模型开展测试,隔离各个模块,容易定位错误和调试,隔离测试使模块调试更加容易,当一个模块的单元测试失败时,可以很容易发现该模块中的错误,而不需要在程序中的任何地方找。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值