目录
测试的分类
1.按测试对像划分
⭐1.界面测试
2.可靠性测试
3.容错性测试
4.文档测试
⭐5.兼容性测试:
⭐6.易用性测试:
⭐7.安装卸载测试
⭐8. 安全测试:
⭐9.性能测试
10.内存泄漏测试
2.按是否查看代码划分
1.黑盒测试(Black-box Testing)
2.白盒测试(White-box Testing)
1.白盒测试优缺点
2.白盒测试和黑盒测试哪个好
3.灰盒测试(Gray-Box Testing)
3.按开发阶段划分
1.单元测试(Unit Testing)
2.系统测试(System Testing)
3.系统测试
4.回归测试(Regression Testing)
5.冒烟测试(smoke testing)
6.验收测试(Acceptance Testing)
4.按测试实施组织
1.α测试(Alpha Testing)
2.β测试(Beta Testing)
α测试与Beta测试的区别:
3.第三方测试
5.按是否运行划分
1.静态测试(Static testing)
2.动态测试(Dynamic testing)
6.按是否手工划分
1.手工测试(Manual testing)
2.自动化测试(Automation Testing)
7.按测试地域划分
什么是软件国际化?
1.国际化测试
2.本地化测试
测试的分类
1.按测试对像划分
⭐1.界面测试
- 验证界面内容显示的完整性,一致性,准确性,友好性。比如界面内容对屏幕大小的自适应,换行,内容是否全部清晰展示;
- 验证整个界面布局和排版是否合理,不同板块字体的设计,图片的展示是否符合需求;
- 对界面不同控件的测试,比如,对话框,文本框,滚动条,选项按钮等是否可以正常使用,有效和无效的状态是否设计合理;
- 界面的布局和色调符合当下时事的发展
思考:常见的界面错误有哪些?重叠,截断,文字不合理自动换行等。
2.可靠性测试
如果可用性达到99.99%,对于一个全年不间断(7*24的方式)运行的系统,意味着全年(252600min)不能正常工作的时间只有52min,不到一个小时。如果可用性达到99.999%,意味着全年不能正常工作的时间只有5min。
3.容错性测试
- 输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃。 比如数据级测试,校验测试,环境容错性测试,界面容错性测试
- 灾难恢复性测试。
- 通过各种手段,让软件强制性地发生故障,然后验证系统已保存的用户数据是否丢失,系统和数据 是否能尽快恢复。
4.文档测试
在实际的测试中,最常见的是用户文件的测试,例如:手册说明书等。也会有一些公司对需求文档进行测试,来保证需求文档的质量。
- 文档的术语
- 文档的正确性
- 文档的完整性
- 文档的一致性
- 文档的易用性
⭐5.兼容性测试:
⭐6.易用性测试:
⭐7.安装卸载测试
⭐8. 安全测试:
- 输入域,如输入恶性或者带有病毒的脚本或长字符串;
- 代码中的安全性问题,如SQL/XML注入
- 不安全的数据存储或者传递
- 数据文件,邮件文件,系统配置文件等里面有危害系统的信息或者数据;
- 有问题的访问控制,权限分配等
- 假冒ID:身份欺骗
- 篡改,对数据的恶意修改,破坏数据的完整性
⭐9.性能测试
- 资源泄露(客户端卡)
- 资源瓶颈
- 线程死锁,线程阻塞
- 查询速度慢或效率低
- 受外部系统影响越来越大
10.内存泄漏测试
- 分配完内存之后忘了回收。
- 程序写法有问题,造成没办法回收(如死循环造成无法执行到回收步骤)。
- 某些API函数的使用不正确,造成内存泄露。
- 人工静态法:代码走读,人工查找未被回收的内存。
- 自动工具法:借助相应测试内存泄漏的工具,如Visual Leak Detector,记录每次内存分配,清楚告诉用户内存是如何泄漏的。
2.按是否查看代码划分
1.黑盒测试(Black-box Testing)
- 不需要了解程序内部的代码以及实现,不关注软件内部的实现。
- 从用户角度出发设计测试用例,很容易的知道用户会用到哪些功能,会遇到哪些问题,锻炼测试人员的产品思维
- 测试用例是基于软件需求开发文档,不容易遗漏软件需求文档中需要测试的功能。
2.白盒测试(White-box Testing)
1.白盒测试优缺点
2.白盒测试和黑盒测试哪个好
不分好坏,只要符合当前业务,能够保障质量的软件测试方法,就是好的测试
3.灰盒测试(Gray-Box Testing)
3.按开发阶段划分
1.单元测试(Unit Testing)
- 测试阶段:编码后或者编码前(TDD)
- 测试对象:最小模块
- 测试人员:白盒测试工程师或开发工程师
- 测试依据:代码和注释+详细设计文档
- 测试方法:白盒测试
- 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
Java如何进行单元测试?
2.系统测试(System Testing)
- 测试阶段:一般单元测试之后进行
- 测试对象:模块间的接口
- 测试人员:白盒测试工程师或开发工程师
- 测试依据:单元测试的模块+概要设计文档
- 测试方法:黑盒测试与白盒测试相结合
- 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
3.系统测试
新买手机都会有一个合格标签,在出厂前手机厂会所某型号的手机上的所有功能全部测试一遍。包括手机硬件本身,手机上自带的APP。
- 测试阶段:集成测试通过之后
- 测试对象:整个系统(软、硬件)
- 测试人员:黑盒测试工程师
- 测试依据:需求规格说明文档
- 测试方法:黑盒测试
- 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
4.回归测试(Regression Testing)
接着上边的美颜功能不可用的例子,拿去维修点进行了维修,拿到手机后第一件事情是先看美颜功能修好了没有,第二事情就是看看手机的其它常用功能是否正常。
5.冒烟测试(smoke testing)
6.验收测试(Acceptance Testing)
- 测试阶段:系统测试通过之后
- 测试对象:整个系统(包括软硬件)。
- 测试人员:主要是最终用户或者需求方。
- 测试依据:用户需求、验收标准
- 测试方法:黑盒测试
- 测试内容:同系统测试(功能...各类文档等)
4.按测试实施组织
1.α测试(Alpha Testing)
新手机购买回来,参与测试的人是购买者,使用的场所及环境已不再是手面厂商的环境及场所
2.β测试(Beta Testing)
新手机购买回来,参与测试的人是购买者,使用的场所及环境已不再是手面厂商的环境及场所
Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个场所进行。
α测试与Beta测试的区别:
- 测试的场所不同:Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。
- Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。beta测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。
- alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。
3.第三方测试
5.按是否运行划分
1.静态测试(Static testing)
所谓静态测试( static testing )就是 不实际运行 被测软件,而只是 静态地检查程序代码、界面或文档 中可能存在的错误的过程。不以测试数据的执行而是对测试对象的分析过程 ,仅通过分析或检查源程序的设计、内部结构、逻辑、代码风格和规格等来检查程序的正确性。
2.动态测试(Dynamic testing)
动态测试( dynamic testing ),指的是 实际运行被测程序,输入相应的测试数据,检查实际输出结果 和预期结果是否相符 的过程,所以判断一个测试属于动态测试还是静态的,唯一的标准就是看是否运行程序。
6.按是否手工划分
1.手工测试(Manual testing)
优点:自动化无法替代探索性测试、发散思维结果的测试。缺点:执行效率慢,量大易错。
2.自动化测试(Automation Testing)
- 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
- 自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。
- 自动化测试按照测试对象来分,还可以分为接口测试、UI测试等。接口测试的ROI(产出投入比)要比UI测试高。
自动化实施步骤:1.完成功能测试,版本基本稳定2.根据项目特性,选择适合项目的自动化工具,并搭建环境3.提取手工测试的测试用例转化为自动化测试的用例4.通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期5.生成自动测试报告6.持续改进,脚本优化。
7.按测试地域划分
什么是软件国际化?
是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,使创建不同语言版本时,不需要重新设计源程序代码的软件工程方法。
1.国际化测试
软件的国际化和软件的本地化是开发面向全球不同地区用户使用的软件系统的两个过程。而本地化测试和国际化测试则是针对这类软件产品进行的测试。由于软件的全球化普及,还有软件外包行业的兴起,
- 1、本地化后的软件在外观上与原来版本是否存在很大的差异,外观是否墼齐、不走样。
- 2、是否对所有界面元素都进行了本地化处理,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音的提示)、日志等。
- 3、在不同的屏幕分辨率下界面是否正常显示。
- 4、是否存在不同的字体大小,字体设置是否恰当。
- 5、日期、数字格式、货币等是否能适应不同国家的文化习俗。例如,中文是年月日,而英文是月日年。
- 6、排序的方式是否考虑了不同语言的特点。例如,中文按照第一个字的汉语拼音顺序排序,而英文按
- 照首字母排序。
- 7、在不同的国家采用不同的度量单位,软件是否能自适应和转换。
- 8、软件是否能在不同类型的硬件上正常运行,特别是在当地市场上销售的流行硬件上。
- 9、软件是否能在Windows或者其他操作系统的当地版本上正常运行。
- 10、联机帮助和文档是否已经翻译,翻译后的链接是否正常。正文翻译是否正确、恰当, 是否有语法错误。