软件分为系统软件、应用软件,支持软件
软件分为单机和分布式软件
分布式的软件架构有两种,
CS(client server)架构:需要安装客户端的(eg:qq)
BS架构:没有客户端的(只需安装一个浏览器与数据库交换数据如论坛)。
软件测试的定义:
- 软件测试是为了发现错误而运行程序的过程。
- 使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试的目的
- 软件测试是程序的执行过程,目的在于发现错误。
- 通过分析错误,发现当前所采用的软件过程缺陷,改进软件过程。
- 通过对测试业务的深入了解,对新产品的改进提出有意义的建议。
- 验证产品符合质量标准。
软件测试的必备素质
- 沟通能力
- 责任心
- 懂得尊重
- 探索精神
- 洞察力
- 自信力
软件测试工程师的必备技能
- 测试知识
- 编程技能
- 数据库知识
- 网络知识
软件测试的分类
按测试技术划分,分为黑盒测试和白盒测试
黑盒测试:黑盒测试是指不基于内部设计和代码的任何知识,而基于需求和功能性的测试,黑盒测试也也称功能测试或数据驱动测试。
黑盒测试依据:需求规格说明书。
黑盒测试的优点:能够站在用户的立场上进行测试。
黑盒测试的缺点:不能测试程序内部的特定部位,如果需求规格说明书有误,则无法发现。白盒测试:白盒测试是基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试。白盒测试也称结构测试或逻辑驱动测试。
白盒测试依据:程序内部结构。
白盒测试的优点:能够对程序内部的特地部位进行覆盖测试。
白盒测试的缺点:无法检验程序的外特性,无法对未实现规格说明的程序内部欠缺部分进行测试。
按照测试阶段分类划分
-
单元测试:又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。
单元测试的目的:
- 验证单元代码和详细设计文档的一致性。
- 发现在编码过程中引入的错误。
- 减少开发人员的调试代码时间。
- 大幅度减少后期缺陷的数量。
-
集成测试:是在单元测试的基础上,将所有模块按照概要设计要求(如根据流程图)组装成为子系统或系统而进行的测试。
集成测试的目的
- 验证各个子模块组合起来,能否达到预期要求的功能。
- 验证一个模块的功能是否会对另一个模块的功能产生不利的影响。
-
系统测试:是将通过集成测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。
系统测试的目的
- 验证软件产品是否满足用户需求。
系统测试的分类(不止这些,常见的分类而已)
- 性能测试:对产品的各个功能进行验证,检查产品是否达到了用户要求的功能。
- 性能测试:通过自动化工具模式正常、峰值及异常负债条件,检查系统各项性能指标是否满足需求。
- 安全性测试:验证应用程序的安全级别和识别潜在安全性缺陷。
- 易用性测试:测试用户在使用软件时,软件交互的适应性、功能性和有效性。
- 兼容性测试:测试软件在不同的平台、不同的网络环境、不同的应用软件之间能否友好的运行。
- 验收测试
软件开发模型
软件开发模型:是指软件开发全部过程、活动和任务的结构框架。它能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务。
瀑布模型:计划->需求分析->设计->编码->测试->运行.维护(从上到下)(当前活动接受上一项活动的工作结果)(当前活动的工作结果需要进行验证)。
缺点:由于开发模型是线性的,增加开发风险,早期的错误可能要等到开发后期的阶段才能发现。V模型:
用户需求->需求分析->概要设计->详细设计->编码->单元测试->集成测试->系统测试->验收测试
。敏捷模型:先把最重要的功能做出来,然后将新功能迭代在新版本上,不断增加软件内容。
软件测试流程
需求分析和讨论->编写测试计划->测试设计->测试执行->缺陷管理->测试报告。
测试用例的设计方法
- 等价类划分法:一种最典型的黑盒测试方法,把程序的输入划分成若干个部分,从每个部分中选取少数代表性数据作为测试用例,每一类的代表性数据在测试中的作用等价于这一类中的其他值。
- 设计测试用例:设计一个测试用例,使他能够尽量覆盖尚未覆盖的有效等价类,重复该操作,从而使所有有效等价类均被覆盖,设计一个测试用,使它能够覆盖一个无效等价类,重复该操作,从而使所有无效等价类均被覆盖。
- 在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类、两个无效等价类。
- 在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,可以确立一个有效等价类、一个无效等价类。
- 在输入条件是一个布尔量(不是这个就是那个)的情况下,可以确定一个有效等价类、一个无效等价类。
- 在规定了输入数据的一组值(假定N个),并且程序要求对每一个输入值分别处理的情况下,可以确定N个有效等价类和一个无效等价类
- 在规定了输入数据必须遵守的规则的情况下,可以确定一个有效等价类,若干个无效等价类。
2. 边界值分析法:一种与等价类划分相关的黑盒测试方法,错误隐藏在角落里,问题聚集在边界上。
- 应当选取正好等于、刚刚大于或刚刚小于边界值作为测试数据,重点测试最后一个肯定合法的数据和刚刚超过边界的非法数据,通常和等价类划分一起使用,产生一套完整的测试用例。
- 如果输入条件对取值范围进行了界定,则应对边界内部以及恰巧超出边界外的值来作为测试用例。
- 如果对取值的个数进行了界定,则应当分别以最大个数、最小个数、比最大个数大1或小1、比最小个数大1或小1作为测试用例。