1. 软件开发流程:项目调研、需求分析、软件设计、程序编码、软件测试、运行维护。
2. 软件测试 定义:利用测试工具按照测试方案和流程对产品进行功能和性能测试,使用人工或自动手段来运行某个系统的过程,目的在于检验是否满足规定的需求,确认预期结果与实际结果之间的差别。
3. 软件测试
黑盒测试 注重于测试软件的性能需求,测试者完全不考虑程序的内部结构和特性,只需要知道程序输入或输出之间的关系或程序功能。
白盒测试 注重对程序内部的结构。需要测试人员对被测试程序的内部结构非常清楚,从程序的内部逻辑结构入手,来判定实际情况是否和预期的状态一致。
回归测试 当程序代码被修改后,重新进行测试,以确认修改没有引发的错误或导致其他代码产生错误。
单元测试 软件开发过程中最低级别的测试,也是最小粒度的测试。主要测试程序中的某个功能或代码块。单元测试的工作一般由程序员来承担。
4. 单元测试
概述:
单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试中,软件的独立单元将与程序的其他部分相隔离的情况下进行测试。单元测试不仅仅是作为无错编码的一种辅助手段在一次性的开发过程中使用,单元测试必须是可重复的,无论是在软件修改、或是移植到新的运行环境的过程中。因此,所有的测试都必须在整个软件系统的生命周期中进行维护。
为什么要使用单元测试:
我们编写代码时,一定会反复调试保证它能够编译通过。如果是编译没有通过的代码,没有任何人愿意交给自己的老板。但是代码通过编译,也只是说明了它的语法正确,我们却无法保证它的语义也一定正确,没有任何人可以轻易承诺这段代码的行为一定是正确的。幸运的是,单元测试会为我们的承诺做保证。编写单元测试就是用来验证这段代码的行为是否与我们期望的一致。有了单元测试,我们可以自信的交付自己的代码,而没有任何后顾之忧。
单元测试越早越好,早到什么程序?在实际工作中,可以不必过分强调先什么后什么,重要的是高效和感觉舒适。从经验来看,先编写产品函数的框架,然后编写测试函数,针对产品函数的功能编写测试用例,然后编写产品函数的代码,每写一个功能点都运行测试,随时补充测试用例。所谓先编写产品函数的框架,是指先编写函数空的实现,有返回值的随便返回一个值,编译通过后再编写测试代码,这是,函数名、参数表、返回类型就可以确定下来了,所编写的测试代码以后需要修改的可能性就比较小了。
单元测试与其他测试不同,单元测试可看作是编码工作的一部分,应该由程序员完成,也就是说,经过了单元测试的代码才是已完成的代码,提交产品代码时也要同时提交测试代码,测试部门可以做一定程序的审核。
单元测试不仅仅是作为无错编码一种辅助手段在一次性开发过程中使用。单元测试必须是可以重复使用的。无论是在软件修改,或是移植到新的运行环境的过程中。因此,所有的测试都必须在整个软件系统的生命周期中进行维护。
单元测试的优点:
(1)它是一种验证行为
程序中的每一个功能都是测试来验证它的正确性。它为以后的开发提供支援,就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不必担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障,这样,我们就可以更自由的对程序进行改进。
(2)它是一种设计行为
编写单元测试将使我们从调用者观察、思考,特别是先写测试,迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。
(3)它是一种编写文档的行为
单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。
(4)它具有回归性
自动化的单元测试避免了代码出现回归,编写完成之后,还可以随时随地的快速运行测试。
单元测试的范畴:
如果要给单元测试定义一个明确的范畴,指出哪些功能是属于单元测试,这似乎很难,但下面讨论的四个问题,都是单元测试所需要做的工作。
1.它的行为和我期望的一致吗?
这是单元测试最根本的目的,我们就是用单元测试来验证它所做的就是我们所期望的。
2.它的行为一直和我期望的一致吗?
编写单元测试,如果只测试代码的一条正确路径,让它正确走一遍,并不是真正的完成。软件开发是一个很复杂的工程。在测试某段代码是否与你的期望一致时,你需要确认,在任何情况下,这段代码是否都和你的期望一致:比如参数很可疑、硬盘没有剩余空间、缓冲区溢出、网络掉线的时候。
3.单元测试说明我的意图吗?
单元测试能够帮助我们充分了解代码的用法,从效果上而言,单元测试就像是能执行的文档。说明了你用各种条件调用代码,你所期望这段代码完成的功能。
4.我们可以依赖单元测试吗?
不能依赖的代码是没有多大用处的。既然单元测试是用来保证代码的正确性,那么单元测试也一定要值得依赖。
单元测试的过程:
通常,我们将单元测试的过程分为计划、设计、执行、评审等几个步骤。
(1)计划:单元测试计划需要明确测试目标,包括测试对象,测试需求,测试工具等。
(2)设计:单元吃的设计主要是完成方案和模型的确认。
(3)执行:根据单元测试方案和用例对单元进行测试,验证测试的结果并记录测试过程中出现的错误。
(4)评审:对单元测试的结果进行评估,生成单元测试报告。
功能点测试:主要测试模块是否正确实现了规定的功能,有无遗漏的功能。这里有一个功能覆盖的概念。因为被测试模块可能包括多个功能点,在做测试时,设计的测试用例要覆盖这些功能点,以保证这些功能点都经过测试,一般需求功能覆盖率为100%。
覆盖率测试:在单元测试一般要求统计语句覆盖率和分支覆盖率,同时要求测试所有的关键路径,需要指出的是,在特殊情况下语句和分支覆盖率很难达到100%,这时需要对没有运行的语句和分支给出原因。
模块接口测试:是指通过被测试模块的数据流进行测试,包括对模块接口,包括参数列表、调用子模块的参数、全程数据、文件输入和输出操作都必须检查。
内部数据流的内容主要是设计测试用例检查数据类型说明、初始化、缺省值等方面的问题,还要查询全程数据对模块的影响。
本文出自 “10281302” 博客,谢绝转载!