复习完软件测试后,我想总结一下软件测试的方法:
1.黑盒测试:
黑盒测试,它是通过测试来检测每个方法是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在d对程序功能进行测试,它只检查程序功能是否按照规约正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于外部外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
在Java中我们用junit4来实现黑盒测试,通过比较方法的实际输出结果于预期结果来判断方法是否实现了我们想要实现的功能。
2.白盒测试:
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
Java中我们可以通过静态检查来看代码是否符合规范,是否存在隐藏的缺陷,同时判断一下代码的复杂度;也可以通过运行我们写的测试用例来进行代码动态覆盖率检查。在大型软件开发过程中,还可能有专人进行代码评审。
不同于以上两种测试方法,下面的测试时根据测试对象的大小进行分类的,分别是单元测试,
3.单元测试:
单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
我们在课上布置的实验中,写的测试基本上都是单元测试,对类的方法进行逐一测试,如果达不到我们想要的功能就要对方法进行改进,消除bug。
4.集成测试:
集成测试是单元测试后软件测试过程的第二个层次。在此测试中,软件的单元或单个组件在组中进行测试。集成测试级别的重点是在集成组件或单元之间交互时暴露缺陷。单元测试使用模块进行测试,这些模块在集成测试中进行组合和测试。该软件使用许多软件模块开发,这些软件模块由不同的编码器或程序员编码。集成测试的目标是检查所有模块之间通信的正确性。
5.系统测试
系统测试是将已经继承好的软件系统,作为计算机系统的一个元素,与计算机硬件、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的集成测试和确认测试。系统测试的目标是:通过与系统的需求规格说明进行比较,检查软件是否存在与系统规格说明不符合或与之矛盾的地方,从而验证软件系统的功能和性能等满足规格说明所制定的要求。
由于集成测试于系统测试我们没有进行具体的实践,我暂时了解还不太深,需要再以后的学习中加深印象。在这三种测试中,我们可以灵活运用黑盒白盒测试来对软件进行测试,以达到我们的目的。
还有一种测试是回归测试,它是在单元测试、集成测试和系统测试间的一个测试策略
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
我们在编写程序是也要养成测试优先的编程策略,通过测试,我们可以明确需求,对规约有更深刻的了解,这在我们具体实现方法的时候也会有很大的帮助。
参考文献: