软件质量

关于软件质量保障初探

冷暖自知 提交于 2019-11-30 05:49:41
博文软件质量保障初探 软件质量这个词非常广泛,在不同语境下有不同的含义。下面是国际标准组织最近的定义: "Capability of software product to satisfy stated and implied needs under specified conditions." "The degree to which a software product meets established requirements; however, qualitydepends upon the degree to which those established requirements accurately representstakeholder needs, wants, and expectations. 这两个定义都强调了软件要符合用户以及利益相关者的需求,有多种方式可以来剖析软件的质量,关于这方面的学术论文也不少,在这本书中,我们知道:   软件=程序+软件工程 那么,我们可以嵌套这个公式:   软件质量 = 程序质量+软件工程质量 程序的质量体现在软件外在功能的质量。各种功能还有很多特征需要衡量,例如,网站显示查询的结果的速度;订票网站能并发处理业务的吞吐量;支持在线用户的数 量。程序还有其他的方面,例如用户的体验的质量,国际化的质量和安全的质量。

第二十章 软件质量概述

…衆ロ難τιáo~ 提交于 2019-11-30 05:38:05
本章从构建的角度来审视保障软件质量的技术。 软件质量的特性 正确性; 可用性; 效率; 可靠性; 完整性; 适应性; 精确性; 健壮性; 可维护性; 灵活性; 可以执行; 可重用性; 可读性; 可测试性; 可理解性 改善软件质量的技术 软件质量目标; 明确定义质量保证工作; 测试策略; 软件工程指南; 非正式技术复查; 正式技术复查; 外部审查。 开发过程 对变更进行控制的过程; 结果的量化; 制作原型。 不同质量保障技术的相对效能 缺陷检测率; 找出缺陷的成本; 修正缺陷的成本 什么时候进行质量保证工作 在开工之前,这一工作就应当添加到项目计划中,在项目进行中作为技术脉络的一部分,并且应该作为项目的街书店,当整个工作结束的时候检验产品的质量。 软件质量的普遍原理 软件质量的普遍原理就是改善质量以降低开发成本。 核对表:质量保证计划 [ ] 是否确定出对项目至关重要的特定质量特性了? [ ] 是否让其他人意识到项目的质量目标了? [ ] 是否能够区分质量的外在特性和内在特性? [ ] 是否考虑过某些特性与其他特性相互制约或相互促进的具体方式? [ ] 在软件开发的每一个阶段,项目是否要求针对不同错误类型使用不同的错误检测技术? [ ] 项目计划中是否有计划有步骤地保证了软件在开发各阶段的质量? [ ] 是否使用了某种质量评估方法,并且由此确定质量是改善了还是下降了? [ ]

软件测试导论

纵饮孤独 提交于 2019-11-30 03:37:06
软件测试基础 需要学习的内容 了解软件生命周期 了解什么是软件测试 了解软件测试的目的 了解缺陷 研发组织和流程 1、什么是软件测试? 测试软件的bug;提升软件质量;验证软件的正确性;测试软件是否符合需求;测试软件是否符合客户隐形需求。 软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误的衡量软件质量,并对其是否满足设计要求进行评估的过程 2、软件测试的目的 1、找到软件的bug 2、证明软件可用 3、预防bug 测试的目的体现3个阶段 项目早期:开发对项目还不够熟悉,测试主要找致命或严重的bug 项目中期:整个项目比较稳定,测试证明软件是否可用 项目末期:软件的质量基本OK,可通过外部测试或者bug大少出找遗漏的bug 以下是软件生命周期 1,项目计划   项目计划是由谁来写的?项目经理(PM)   项目计划什么时候写的?项目启动之前写   项目计划里面包含的主要内容:who人员(做项目由哪些人) when时间(什么时间段做什么事情) what什么事情(做研发这个项目我们要做哪些事情) 2/需求分析   需求分析师由需求分析师来分析,需要分析客户具体想要的软件功能.界面以及不想要的比如错误处理等等 3/设计   设计是由系统架构是来设计的,需要输出需求规格说明书(SRS),概要说明书(HLD) 4/编码   编码是由谁来编的?开发工程师,要输出详细设计说明书

软件测试基础问答

僤鯓⒐⒋嵵緔 提交于 2019-11-29 20:54:37
问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决。 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;根据用户的一般使用习惯,来确认是否是缺陷;与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。 问:给你一个网站,你如何测试?首先,查找需求说明、网站设计m等相关文档,分析测试需求。 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试设计测试用例:功能性测试可以包括,但不限于以下几个方面: 链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。 提交功能的测试。 多媒体元素是否可以正确加载和显示。 多语言支持是否能够正确显示选择的语言等。 界面测试可以包括但不限于一下几个方面:页面是否风格统一,美观页面布局是否合理

软件体系结构2

安稳与你 提交于 2019-11-29 13:55:35
软件体系结构2 软件体系结构概述 软件体系结构包括构件(Component)、连接件(Connector)和约束(Constraint)或配置(Configuration)三大要素。 软件需求与架构 需求是指明必须实现什么规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。 与客户打交道的主要目的是:一是获取需求,而是签订合同 软件需求流程 需求的分类:业务需求,用户需求,系统需求,功能需求,非功能需求,设计约束 质量属性: 开发期质量:可扩展性,可复用性,可维护性等; 运行期质量:正确性,健壮性,性能,可靠性,容错性,易用性,安全性,可移植性,兼容性。 需求工程结构图 开发者对待需求工程的态度可分"被动型"、"主动型"和"领先型"三种。 获取需求 需求从哪里来:人,物,系统 获取需求的方法:面谈,问卷,会议… 面谈问题基本上可以分为两种类型:开放式问题和封闭式问题 面谈结构:金子塔型,漏斗型,菱形 用例描述了 用户 和 系统 之间的交互 用例模型描述全部的系统功能性行为 二维需求矩阵 约束需求:业务环境因素+使用环境因素+构建环境因素+技术环境因素 ER图中包含三个图形符号:实体,属性,联系 需求分析的主要成果:软件需求规格说明书(Software Requirement Specification, SRS) 需求确认包含两个重要工作:"需求评审"和"需求承若

软件测试之性能测试,自动化测试,接口测试

我是研究僧i 提交于 2019-11-29 11:42:37
软件测试的上升道路只有写代码嘛,像那些性能测试,接口测试,自动化测试? 国外软件测试和软件开发人员的配比是1:1,而国内则是1:4甚至更少,可见国内对于软件测试人员的需求量是巨大的。而现在越来越多国内的软件公司认识到了软件质量的重要性,所以持续不断地在扩招软件测试人员。目前国内软件测试行业每年约新增20万岗位,但因为大部分IT院校尚未开设软件测试专业,所以每年企业和学校培养的测试人才还不足需求的1/10。所以从事软件测试行业,拥有一份工作并不是一件难事。 另外软件测试行业注重的是经验的积累,所以年龄大了并不会因为脑力体力跟不上而被迫转行,反而会“越老越吃香”。另外在职业发展上,软件测试岗位也是十分有前途的,积累了一定经验过后,甚至会比软件开发岗位更容易转到产品经理岗位。因为软件测试工程师会从多方位考虑问题,注重细节。另外如果专心钻研技术,有了几年经验后就可以从初级测试工程师晋升为中级或高级测试工程师。 软件测试除了有前途外,也很有“钱途”,软件测试并不像软件开发那么累,需要经常加班熬夜。测试工程师只要按时按量完成好工作就可以,相对来讲较轻松。但是软件测试行业的薪水并不比软件开发低,如果你会用简单的代码编写脚本,做自动化测试,那么你的薪资待遇还会更高。 不一定要 ,比如说后期转产品经理呀,要不然就做管理层 来源: https://www.cnblogs.com/cs1188/p

285.软件体系结构评估概述

送分小仙女□ 提交于 2019-11-29 10:29:56
7.1.1 评估关注的质量属性   软件体系结构的设计是整个软件开发过程中关键的一步。对于当今世界上庞大而复杂的系统来说,如果没有一个合适的体系结构而要有一个成功的软件设计几乎是不可想象的。   不同类型的系统需要不同的体系结构,甚至一个系统的不同子系统也需要不同的体系结构。体系结构的选择是一个软件系统设计成败的关键。但是,怎样才能知道为软件系统所选用的体系结构是否恰当?如何确保按照所选用的体系结构能顺利地开发出成功的软件产品呢?要回答这些问题,需要使用专门的方法对软件体系结构进行分析和评估。   体系结构评估可以只针对一个体系结构,也可以针对一组体系结构。在体系结构评估过程中,评估人员所关注的是系统的质量属性,所有评估方法所普遍关注的质量属性有以下几个。   1.性能   性能是指系统的响应能力,即要经过多长时间才能对某个事件作出响应,或者在某段时间内系统所能处理的事件的个数。经常用单位时间内所处理事务的数量或系统完成某个事务处理所需的时间来对性能进行定量的表示。性能测试经常要使用基准测试程序(用以测量性能指标的特定事务集或工作量环境)。   2.可靠性   可靠性是软件系统在应用或系统错误面前、在意外或错误使用的情况下维持软件系统的功能特性的基本能力。可靠性是最重要的软件特性,通常用它衡量在规定的条件和时间内,软件完成规定功能的能力。可靠性通常用平均失效等待时间(Mean

【软件测试】测试基础内容和方法总结

本小妞迷上赌 提交于 2019-11-29 07:53:46
文章目录 一个测试活动完整的过程 测试计划工作的目的、测试计划文档的内容包括什么? 测试用例通常包括那些内容? 测试人员在软件开发过程中的任务是什么? 软件测试分为几个阶段,各阶段的测试策略和要求是什么? 单元测试 请回答集成测试和系统测试的区别,以及它们的应用场景主要是什么? 你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎么解决? 请问你觉得测试项目具体工作是什么? 软件测试方法 黑盒测试 边界值分析法 因果图法 判定表法 白盒测试 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 条件组合覆盖 性能测试 性能测试类型 负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,知道系统的某项或多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等 压力测试:压力测试是评估系统处于或超过预期负载时系统的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。 恢复测试 强度测试 疲劳强度测试 每一阶段测试基于的文档 一个测试活动完整的过程 项目立项前测试人员不需要提供任何工件 项目经理 通过和客户交流,完成 需求文档 ,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。 项目经理通过综合开发人员、测试人员以及客户的意见,完成 项目计划 。然后SQA进入项目

测试基础面试题

安稳与你 提交于 2019-11-29 07:03:21
1.你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?   1. 将问题提交到缺陷管理库里面进行备案 2. 要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷; 根据用户的一般使用习惯,来确认是否是缺陷;   3. 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;   4. 合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。   等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。 2. 给你一个网站,你如何测试?   首先查找需求说明,网站设计等相关文档,分析测试需求   制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;性能测试;数据库测试;安全性测试;兼容性测试   测试用例设计: 功能性测试 : 连接测试,连接是否能够正常跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回 提交功能的测试 多媒体功能能否正常加载和显示 多语言支持是否能够正常的显示选择的语言等 界面测试 : 1. 页面是否风格统一,美观 2. 页面内容是否合理,重点内容和热点内容是否突出 3.

我对敏捷软件测试的理解与实践

 ̄綄美尐妖づ 提交于 2019-11-28 19:28:22
转载本文需注明出处:微信公众号EAWorld,违者必究。 引言: 随着敏捷软件研发过程的引入,敏捷测试也开始成为研发团队的重点关注对象。在行业内,有些企业正在做敏捷测试的尝试,有些也取得了不错的效果。 随着普元研发管理体系(iPALM)的不断演进,敏捷的开发过程加速了产品的市场响应。在普元DevOps平台的助力下,开始把质量构建进产品而不是在生产出来之后再进行测试。在软件产品部整体团队的群策群力下,敏捷的软件测试模式在研发过程中运行非常成功,测试团队也积累了一些宝贵的经验,很高兴有机会拿出来与大家一起分享。 目录: 1.对敏捷软件测试的理解 2.敏捷软件测试的核心价值 3.敏捷软件测试的经验分享 4.总结 1.对敏捷软件测试的理解 敏捷测试的定义 Wikipedia对敏捷测试的定义: Agile testing is a software testing practice that follows the principles of agile software development.1 译文:敏捷测试是一种遵循敏捷软件开发原则的软件测试实践。 这是通过一种敏捷的做事方法,可以让团队协作更紧密、工作效率更高,确保以可持续的速度频繁地交付客户所期望的业务价值。 敏捷测试与传统测试的区别 传统模式是把软件开发分为软件需求、软件开发(设计&编码)、软件测试、软件发布等阶段