一、 软件测试定义
软件测试是软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。
二、 软件测试分类
按照软件测试用例的设计方法,软件测试可分为黑盒测试和白盒测试。黑盒测试就是日常所说的功能测试,黑盒测试方法主要包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。白盒测试方法就是日常的性能测试、自动化测试,主要有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。
按照从是否执行程序的角度划分,测试方法又可分为静态测试和动态测试。静态测试包括代码检查、静态结构分析、代码质量度量等。动态测试由3部分组成:构造测试实例、执行程序和分析程序的输出结果。
按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、确认测试、系统测试和验收测试
三、 软件测试的目的
软件测试需考虑测试内容为系统功能、用户界面、系统性能、加载测试、强化测试、容量测试、配置测试、安装测试。
软件测试生命周期为测试计划、测试设计、测试开发、测试执行、缺陷跟踪、测试评估
黑盒测试即为功能测试,就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。黑盒测试试图发现以下类型的错误:功能错误或遗漏、界面错误、数据结构或者外部数据库访问错误、性能错误、初始化或终止错误。
白盒测试即为性能、自动化、接口类测试。通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序不同地方设立检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致
四、 软件测试实际融合使用
如何在实际软件项目中最大化使用黑盒/白盒测试,包括在某个时间或者节点需要加入某种测试,以保障软件质量。
软件版本开始评审之前,测试团队需对产品需求内部初步了解,并在产品评审会议上完成对产品输出的详解和疑难确认,此阶段为关键节点,以保障后续测试工作的需求一致性。黑盒/白盒测试用例、脚本编写,自动化脚本用例编写范围,都需经过团队内部人员的评审确认。自动化测试脚本分为主业务接口自动化脚本和UI自动化脚本。测试用例、自动化脚本可在测试版本提测前,用于开发版本自测,以提高提测版本的质量;在每一轮版本提测后,测试人员先进行冒烟测试和自动化主流程业务的脚本执行,以确保具备测试人员进入测试的条件。
压力测试压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。压力测试对压测接口选择有相应的数据考量,选择访问量相对较高的页面接口。编写压测脚本,制定压测标准。
版本封板前,需进行一轮全业务的冒烟测试和自动化脚本测试,避免因修复Bug而导致新bug产生。然后针对当前版本做一轮压力测试,以评估当前版本代码接口等是否存在异常或者优化空间。
当版本代码正式发布到生产环境后,由于环境的改变,需再次进行一轮全业务的冒烟测试和自动化脚本测试。如在验证生产环境代码过程中,有更改代码行为,则必须执行一次自动化脚本。在最终版本彻底发布成功后,需再次执行一次自动化脚本和压力测试。
生产环境日常巡检监控也是重要的环节;可快速发现生产环境异常,并快速解决;避免影响真实用户使用。可使用相应工具,将现有的自动化脚本集成到平台,并做定时服务,定时执行。
产品、平台定位不同,软件测试方案也会根据自身标准来改变,其目的均是结合标准软件测试来找到和总结出最适合自我产品的测试方案。软件测试方案在产品不同的成熟度阶段也会随之改变,产品和团队在成熟稳定,测试方案也在持续优化中。壮大的软件测试方案是在不同场景、阶段、环境下,都有较成熟、应对的准则
五、 总结
软件测试的目的就是确保软件的质量、确认软件以正确的方式做了你所期望的事情,还要给开发人员提供信息,以方便其为风险评估做相应的准备,重要的是他要贯穿在整个软件开发的过程中,保证整个软件开发的过程是高质量的。
软件测试是在软件设计及程序编码之后,在软件运行之前进行最为合适。考虑到测试人员在软件开发过程中的寻找Bug、避免软件开发过程中的缺陷、关注用户的需求等任务,所以作为软件开发人员,软件测试要嵌入在整个软件开发的过程中,比如在软件的设计和程序的编码等阶段都得嵌入软件测试的部分,要时时检查软件的可行性,但是作为专业的软件测试工作,还是在程序编码之后,软件运行之前最为合适。