TA的每日心情 | 奋斗 2024-5-6 17:37 |
---|
签到天数: 1137 天 连续签到: 1 天 [LV.10]测试总司令
|
单元测试,又可以称为模块测试或组件测试,是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。
总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。通常,单元测试主要由开发人员自己完成。通过编码验证和检查,属于白盒测试范围。无论是代码覆盖还是路径、条件、组合等交错匹配,还是最初的一个检验阶段。
我认为,LZ这里给出的QA其实应该称之为:Tester。
在单元测试阶段后,测试人员可以做的工作实在太多了。整个测试才刚刚开始。按测试目的来说,包含传统测试过程中的静态测试、集成测试、系统测试、验收测试,做得好些的项目/程序/产品,也可以进行非功能性测试、维护测试等。
这里简单说明一下:
1. 最基本的静态测试,可以分析程序/网站/项目上一些静态链接,检查页面图片、文本、超链接等资源的有效性。
2. 集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为系统。这时可以发现的问题是:
——在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;
——一个模块的功能是否会对另一个模块的功能产生不利的影响;
——各个子功能组合起来,能否达到预期要求的父功能;
——全局数据结构是否有问题;
——单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。
当然,在单元测试的同时可进行集成测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统。子系统的集成测试特别称为部件测试,它所做的工作是要找出集成后的子系统与系统需求规格说明之间的不一致。
3.系统测试,是将通过确认的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。这主要就是黑盒测试了。参考文档即软件需求规格说明书。任何与需求不一致的地方,就是问题。
4.验收测试,也可以称为确认测试。主要是看系统是否满足了用户的需求,而不仅仅是满足软件需求规格说明书。毕竟,我们的系统/项目/产品,最终用户满意才是王道。那对于任何用户提出的意见、需求变更、模块改进等,都属于这个阶段产生的问题。
5.非功能性测试,除去功能测试外,在GB/T 16260标准质量特性中的其他几大特性,可靠性,易用性,效率,可维护性,可移植性等,有条件的当然都需要测试。对于系统/项目/产品的质量好坏,功能方面只是个基本,高效、稳定、安全的系统才是用户喜欢的。这里不多说了。
6.维护性测试,这里的维护性测试特指用户验收通过后,给予的技术支持和保障,任何后续需要帮助、解释、说明的部分,都属于测试范围。
综上,在开发人员完成单元测试后,其实测试才刚开始。所以,绝大部分缺陷问题理所当然会在软件测试生命周期各个阶段暴露出来。这才是测试工作的本质和重点。
以上纯属个人愚见,不足之处,望大家指正。 |
|