1.按开发阶段划分
1.1单元测试
单元测试(unit testing)又称模块测试,针对软件设计中的最小单位程——序模块,进行正确性检查的测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
单元定义: C中指一-个函数,Java中 指一-个类,在图形化的软件中,单元一般指1个窗口,1个菜单。
1.什么时候进行单元测试
编码后,编译通过后进行。
2.由谁来做单元测试
白盒测试工程师或者开发工程师,最好不要白己做自己代码的测试。
3.单元测试的依据
源程序(代码+注释) +《详细设计文档》
4.单元测试的通过标准
程序通过所有单元测试用例
分支的覆盖率达到85%
语句的覆盖率达到100%
5.国内单元测试的现状
简单+没有单元测试计划、单元测试用例和代码覆盖率的统计。
6.如何进行单元测试
单元格测试主要用白盒测试,先静态地检查代码是否符合规范,然后动态运行代码,检查其实际运行结果,检查程序的运行结果是否正确是一个最基本的要求,还要关注容错处理,程序的边界值处理等。
1.2系统测试
系统测试(system testing):指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
目前系统测试主要由黑盒测试工程师在系统集成完毕后进行测试,前期主要测试系统的功能是否满足需求,后期主要测试系统运行的性能是否满足需求,以及系统在不同的软硬件环境中的兼容性等。
1.3验收测试
验收测试(acceptance testing):指按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。在系统测试的后期,以用户测试为主或有测试人员等质量保证人员共同参与的测试。
a测试:指的是指的是由用户,测试人员、开发人员等共同参与的内部测试。
B测试:指的是内测后的公测,即完全交给最终用户测试。
正式的验收测试
验收测试的重要性:验收签字,收钱。
2是否运行
2.1静态测试
静态测试(static testing),是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
1.代码测试:主要测试代码是否符合相应的标准和规范。
2.界面测试:主要测试软件的实际界面与常求中的说明是否相符
3.文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求。
4.工具:(Logiscope) Telelogic ,可以用作Java/C++等规范
2.2动态测试
动态测试(dynamic testing):是指实际运行被测程序,榆入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
动态测试方法:结构和正确性测试
动态测试工具:Robot、 QTP等
3是否查看源代码
3.1白盒测试
白盒测试(white-box testing):又称结构测试、透明盒测试、逻辑驱动测试或基于 代码 的测试。白盒测试是一种 测试用例设计 方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
3.2黑盒测试
黑盒测试(Black Box Testing):它是通过测试来检测每个功能是否都能正常使用。在测试中,把 程序 看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在 程序接口 进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部 逻辑结构,主要针对软件界面和软件功能进行测试。
3.2.1功能测试
功能测试(functional test):就是对产品的各功能进行验证,根据功能 测试用例 ,逐项测试,检查产品是否达到用户要求的功能
逻辑测试 界面测试 易用性测试 安装测试 兼容性测试
3.2.2性能测试
性能测试(performance testing):是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 负载测试 和 压力测试 都属于性能测试,两者可以结合进行。通过 负载测试 ,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。 压力测试 是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
一般性能测试 稳定性测试 负载测试 压力测试
4其他
4.1回归测试
回归测试(Regression Testing):是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低 系统测试 、维护升级等阶段的成本。
4.2冒烟测试
冒烟测试(smoke testing):是确定和修复 软件缺陷 的最经济有效的方法。 冒烟测试 设计用于确认代码中的更改会按预期运行,且不会 破坏 整个版本的稳定性。
4.3随机测试
随机测试(Ad-hoctesting):主要是根据测试者的经验对软件进行功能和性能抽查。