| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 软件测试开发基础 -> 正文阅读 |
|
[开发测试]软件测试开发基础 |
1、软件测试的六个原则1、 所有测试的标准都是建立在用户需求之上。所有的测试工作都应该建立在满足客户需求的基础上,从客户角度来看,最严重的错误就是软件无法满足要求。有时候,软件产品的测试结果非常完美,但却不是客户最终想要的产品,那么软件产品的开发就是失败的,而测试工作也是没有任何意义的。因此测试应依照客户的需求配置环境,并且按照客户的使用习惯进行测试并评价结果。 2、软件项目一启动,软件测试就已经开始,即软件测试应尽早介入。软件的错误存在于软件生命周期的各个阶段,因此应该尽早开展测试工作,把软件测试贯穿到软件生命周期的各个阶段中,这样测试人员能够尽早地发现和预防错误,降低错误修复的成本。尽早地开展测试工作有利于帮助测试人员了解软件产品的需求和设计,从而预测测试的难度和风险,制订出完善的计划和方案,提高测试的效率。 3、穷尽测试是不可能的。由于时间和资源的限制,进行完全(各种输入和输出的全部组合)的测试是不可能的测试人员可以根据测试的风险和优先级等确定测试的关注点,从而控制测试的工作量,在测试成本、风险和收益之间求得平衡。 4、遵循GoodEnough原则。GoodEnough原则是指测试的投入与产出要适当权衡。 5、缺陷存在集群现象,二八原则:20%的模块中存在80%的缺陷。 6、杀虫剂现象。避免缺陷免疫。 我们都知道虫子的抗药性原理,即一种药物使用久了,虫子就会产生抗药性。而在软件测试中,缺陷也是会产生免疫性的。同样的测试用例被反复使用,发现缺陷的能力就会越来越差;测试人员对软件越熟悉越会忽略一些看起来比较小的问题,发现缺陷的能力也越差,这种现象被称为软件测试的“杀虫剂”现象。它主要是由于测试人员没有及时更新测试用例或者是对测试用例和测试对象过于熟悉,形成了思维定式。 要克服这种情况,就要不断对测试用例进行修改和评审,不断增加新的测试用例,同时,测试人员也要发散思维,不能只是为了完成测试任务而做一些输入和输出的对比。 另外: 7、测试用例是设计出来的,不是写出来的。 8、第三方进行测试会更客观,更有效。 9、需求阶段应定义清楚产品的质量标准。 10、软件测试计划是做好软件测试工作的前提。 11、始终保持“质量第一”的觉悟,当时间和质量冲突时,时间要服从质量。 2、软件测试的分类软件开发阶段划分: 1)、单元测试: 2)、集成测试: 3)、系统测试: 4)、验收测试: 测试技术划分: 1)、白盒测试: 白盒测试方法: 六种覆盖方法中,覆盖准则由弱到强依次是语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖。 其中, 语句覆盖是使得程序中每个语句至少被执行一次; 判定覆盖是使得程序中的每个分支至少都通过一次; 条件覆盖是使得判定中的每个条件获得各种可能的结果; 判定/条件覆盖是使得判定中的每个条件取到各种可能的值,并使每个判定取到各种可能的结果; 条件组合覆盖是使得每个判定中条件的各种可能组合都至少出现一次; 路径覆盖,覆盖程序中所有可能的执行路径,包括循环、条件组合,分支选择。 2)、黑盒测试: 黑盒测试方法: 不关心程序内部逻辑,只根据程序功能说明来设计测试用例;分为:等价类划分法,边界值分析法和错误推测法,因果图法,决策表法,场景法。
3)、灰盒测试: 被测试软件是否实际运行划分: 1)、静态测试: 对于代码测试:主要测试代码是否符合相应的标准和规范; 测试实施组织划分: 1)、开发方测试: 2)、用户测试: 3)、第三方测试 压力测试 是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等 静态测试 不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。 确认测试 检验所开发的软件是否满足了需求规格说明中确定了的各种功能和性能需求,以及软件配置是否完全和正确。一般在系统测试前。 确认测试主要指的是一个阶段,但是无论怎样,都与可靠性、安全性等不冲突,因为不是一个纬度,即在确认测试阶段即可以做可靠性测试,也可以做安全测试(当然这些类型测试最好放在系统测试阶段) 国际标准中没有对于确认测试的定义,就连软件测试的定义都没有绝对统一的,所以对其理解应该本着从传统概念提出到不断演化的柔性理解,而不是死认定义。 目的在于检查系统对非法侵入的防范能力,验证安装在系统内的保护机构是否确实能够对系统进行保护,使之不受各种干扰。 (1) 用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议 用户认证安全的测试要考虑问题:
数据库安全考虑问题:
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环 境下进行的受控测试,Alpha 测试不能由程序员或测试员完成。 β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在 测试现场,Beta 测试不能由程序员或测试员完成。 兼容性测试 检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。 兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。 兼容和配置测试的区别在于,做配置测试通常不是Clean OS(比较纯净的系统环境,除OS和基本驱动外无其他应用程序。类似于安全模式的最基本启动环境)下做测试,而兼容测试多是在Clean OS的环境下做的。 恢复测试 主要目的是检查系统的容错能力。通过采用多种人工干预方式使系统失效,检验系统的恢复能力。 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 22:30:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |