软件测试基础(一)
2023-12-18 16:01:59发布 浏览555次 信息编号:88831
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
软件测试基础(一)
文档术语
文档的正确性
文档完整性
文档一致性
文档易用性
5.可用性测试(用户体验测试)
易用性(Ease of use)是交互的适应性、功能性和有效性的集中体现。 也称为用户体验测试。
6. 业务测试
业务测试是指测试人员将系统的整个模块连接起来运行,模拟真实用户的实际工作流程。 测试定义以满足用户需求的功能的过程。
7. 接口测试
界面测试(简称UI测试)测试用户界面的功能模块布局是否合理,整体风格是否一致,各个控件的放置是否符合客户的使用习惯。 此外,还测试界面是否易于操作、导航是否易于理解。 页面元素的可用性,界面中的文字是否正确,命名是否统一,页面是否美观,文字与图片的结合是否完美等。
8、安装测试
安装测试是指:测试程序的安装和卸载。 最典型的就是APP的安装和卸载。
9. 内存泄漏测试
内存泄漏的检测: 1、不同的程序可以使用不同的方法来检查内存泄漏,也可以使用一些专门的工具来检查内存问题,比如……,等,有些开发工具本身就有内存问题检查机制。 确保程序员在编写和编译程序时打开这些功能。
2.通过扫码分析工具检查
5. 基于测试实施的组织
1. Alpha测试(Alpha)
Alpha测试是用户在开发环境中进行的测试,也可以是公司内部用户在模拟实际运行环境中进行的测试。
alpha 测试的目的是评估软件产品(即功能、本地化、可用性、可靠性、性能和支持)。
2.贝塔测试(Beta)
Beta 测试是一种验收测试。 Beta 测试由软件的最终用户在一间或多间客房进行。
alpha 测试和 beta 测试的区别:
(1)测试地点不同:Alpha测试是指邀请用户到开发者所在地进行测试,而Beta测试是指在一个或多个用户所在地进行测试。
(2)Alpha测试的环境由开发者控制,用户数量相对较少,时间相对集中。 Beta测试环境不受开发者控制,用户数量比较多,时间不集中。
(3) Alpha测试先于Beta测试进行。 一般软件产品都需要进行大规模的beta测试,测试周期也比较长。
3.第三方测试
开发人员和用户之间的组织测试。
6.按照是否手动执行来划分
1. 手动测试( )
手动测试涉及人们一一输入用例,然后观察结果。 它对应于机器测试,是一种比较原始但必要的方法。
优点:自动化测试无法取代探索性测试和没有既定结果的发散思维测试。
缺点:执行效率慢、体积大、容易出错。
2. 自动化测试( )
所谓自动化测试,就是在预设条件下运行系统或应用程序并评估运行结果。 (前提条件包括:正常情况和异常情况)。 简单来说,自动化测试就是将人类驱动的测试行为转化为机器执行的过程。
自动化测试包括:测试自动化、性能测试自动化、安全测试自动化。 (一般我们所说的自动化是指功能测试的自动化)
自动化测试按照测试对象来划分,还可以分为界面测试、UI测试等。界面测试的ROI(产出投入比)高于UI测试。
实施自动化的步骤:
(1)功能测试完成,版本基本稳定
(2)根据项目特点,选择适合项目的自动化工具并搭建环境
(3)从手动测试中提取测试用例,并将其转换为自动化测试的用例
(4)利用工具和代码自动构造输入并自动检测输出结果是否符合预期。
(5) 生成自动测试报告
(6) 持续改进和脚本优化
七、按测试区域划分
1. 国际测试
软件国际化和软件本地化是为全球不同地区的用户开发软件系统的两个过程。 本地化测试和国际化测试就是针对此类软件产品的测试。 由于软件的全球化和软件外包行业的兴起,软件本地化和国际化测试已成为一个独特的测试领域。
本地化和国际化测试在很多方面与其他类型的测试不同。 以下是本地化和国际化测试的一些要点。
1、本地化软件的外观与原版是否有明显差异,外观是否一致、无锯齿。
2、所有界面元素是否已本地化,包括对话框、菜单、工具栏、状态栏、提示信息(包括声音提示)、日志等。
3、不同屏幕分辨率下界面是否正常显示。
4、是否存在不同的字体大小,字体设置是否合适。
5、日期、数字格式、货币等是否能适应不同国家的文化习俗。 例如,中文是年、月、日,而英文是月、日、年。
6、排序方式是否考虑到不同语言的特点。 例如,中文按第一个字符的拼音顺序排序,而英文则按第一个字母排序。
7. 如果不同国家使用不同的计量单位,软件是否可以适配和转换。
8、软件能否在不同类型的硬件上正常运行,特别是在当地市场上销售的流行硬件上。
9、软件在其他操作系统的本地版本上是否可以正常运行。
10、在线帮助和文档是否已翻译,翻译后的链接是否正常。 文本翻译是否正确、恰当,是否存在语法错误。
软件本地化和国际化测试是翻译行业和软件测试行业相结合的一种测试类型。 它要求测试人员具备一定的翻译能力、语言文化以及作为测试人员的基本技能。
2. 本地化测试
之前我们一起学习的测试都是本地化测试。
图二,
2.1. 黑盒、白盒和灰盒测试
黑盒测试:了解产品的功能设计规范,可以进行测试来证明每个实现的功能是否满足要求。
白盒测试:产品内部工作流程已知,可以进行测试,证明内部每项操作是否符合设计规范,所有内部部件是否经过检查。
灰盒测试:介于白盒测试和黑盒测试之间。 可以这样理解。 灰盒测试重点关注输出对输入的正确性,同时也重点关注内部性能。 然而,这个重点并不像白盒测试那么详细和细致。 完整,只是通过一些有代表性的现象、事件、标志来判断内部运行状况。 有时输出是正确的,但内部实际上是错误的。 这种情况很常见。 如果每次都通过白盒测试来操作,效率会很低,所以需要采用这样的灰盒方法
2.2. 静态和动态测试
静态测试:是指在不实际运行被测软件的情况下,静态检查程序代码、界面或文档中可能存在的错误的过程。
动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果是否与预期结果相符的过程。
2.3:功能测试和性能测试
功能测试:是黑盒测试的一部分,检查实际软件的功能是否满足用户的需求。
功能测试可以细分为逻辑功能测试、接口测试、可用性测试、安装测试和兼容性测试。
逻辑功能测试:测试应用程序是否符合逻辑。 例如,您应该在登录之前先注册一个帐户,然后您才能查看我的购物车。
界面测试:窗口大小、按钮大小、点击按钮会弹出什么样的提示框、是否有滚动条、下拉菜单是否有显示内容……
可用性测试:从软件使用的合理性和便利性角度检查软件系统,例如软件窗口的长宽比是否合适、颜色是否顺眼、字体大小是否合适等
安装测试:
兼容性测试:硬件兼容性测试和软件兼容性测试
硬件兼容性:例如软件是否与PC和笔记本电脑兼容
软件兼容性测试:例如软件是否兼容
性能测试
时间性能:软件特定事务的响应时间。 例如,从点击登录按钮到成功(失败)登录的响应时间在浏览器中很常见,ANR(不是应用程序无响应)
空间性能:软件运行时消耗的系统资源,如内存、CPU消耗
一般性能测试:软件在没有任何压力的情况下正常运行的测试
稳定性测试:也称为可靠性测试,是指不断运行被测系统,检查系统在运行过程中的稳定性。
负载测试:让被测系统在其所能承受的压力范围内连续运行,以测试系统的稳定性。 (测试负载)
压力测试:不断增加被测系统的压力,直至系统不堪重负,用于测试系统所能承受的最大压力。 (测试强度)
2.4 回归、烟雾、随机测试
回归测试
意味着在测试新版本的软件时,会重复执行之前版本的测试用例。 比如1.0版本有bug,2.0版本则重新测试1.0中的bug。
冒烟测试
是指在对一款软件进行系统性的大规模测试之前,验证软件的基本功能是否实现、是否可测试。
在正式测试新版本之前,测试团队首先指派一到两名测试人员对软件的主要功能进行测试。 如果软件没有实现,则会被发回开发团队重新开发。 这样可以节省大量的时间和人力成本。
随机测试
意味着测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作并发现一些边际误差。
2.5 单元测试、集成测试、系统测试和验收测试
单元测试
单元测试(unit)是指对软件中最小的可测试单元的检查和验证。 至于单元测试中unit的含义,一般来说,其具体含义要根据实际情况来确定。 例如,在C语言中,单元指的是一个函数,在Java中,单元指的是一个类,在图形软件中,它可以指一个窗口或一个菜单。 等待。
一般来说,单元是被测的最小的人为指定的功能模块。
单元测试:一段代码完成后,由白盒测试工程师或开发人员进行测试。 例如,Java中的单元测试称为junit测试。
目前大多数公司的单元测试都是开发人员简单地编译和调试自己的程序,没有相应的单元测试计划。
单元测试方法:首先静态观察代码是否符合规范,然后动态运行代码检查运行结果。
例如:模块接口测试
应测试通过被测模块的数据流
调用被测模块时的输入参数是否与模块形参的个数、属性、顺序相匹配
当被测模块调用子模块时,检查输入子模块的参数在数量、属性和顺序上是否与子模块的形式参数匹配。
标准函数输出的参数个数、属性、顺序是否正确。
各个模块中全局变量的定义是否一致。
模块通过外部设备进行输入/输出操作时,检查文件属性是否正确、open、close语句是否正确、指定的I/O格式描述是否与I/O语句匹配; 缓冲区容量是否与记录长度匹配,以及缓冲区容量是否与记录长度匹配。 文件之前是否打开过,文件读写后是否关闭过,I/O错误是否进行过处理。
驱动模块:相当于被测模块的主程序,接收测试数据,并将这些数据传输给被测模块,最后输出实际结果。
存根模块:代替被测试模块而调用的子模块。
集成测试
集成测试是单元测试的下一阶段。 它是指将被测试的单元模块组装成系统或子系统然后进行测试,重点测试不同模块的接口部分。
当连接各个模块时,经过各个模块接口的数据将会丢失。
一个模块的功能是否会对另一模块的功能产生不利影响
每个子功能组装完成后,能否实现预期的父功能?
是不是全局数据结构有问题?
单个模块产生的误差会累积放大吗?
系统测试和验收测试
集成测试完成后,进行系统测试和验收测试。
系统测试:是指对整个软件系统进行整体测试,包括测试功能、性能以及软件运行的软硬件环境。
系统测试是在整个系统集成后由黑盒测试人员进行的。 前期主要测试系统的功能是否满足要求。 后期主要测试系统运行的性能是否满足要求,以及系统在不同软硬件环境下的兼容性。
验收测试:以用户为中心的测试,涉及软件开发人员和质量保证人员
8. 测试用例*(思维导图)
提醒:请联系我时一定说明是从星空网上看到的!