软件工程软件产品质量要求与评价_软件质量保证(Quality Assurance)中常见的活动...

2ae3bcd5d9ff485127abf5c66aa7790a.png

质量保证QA关注在软件产品生成的整个过程,主要验证软件产品开发过程中相关实施过程的完整性、一致性和有效性,确保开发活动和测试活动等遵循正确的过程,为软件产品达到合适的质量级别提供信心。为了实现过程的可重用性和持续改进,组织往往会把过程进行标准化,例如:定义子过程、过程的里程碑点、过程的阶段输入和输出、每个时间点需要完成的工作等。软件产品随着生命周期不断增加和成型,想要修复其在早期引入的缺陷,时间和成本都将成倍增加。而质量保证QA的基本假设是过程质量决定了软件产品质量。当过程正确开展时,确保过程的每个阶段得到了良好的遵循,每个阶段引入的缺陷尽量在本阶段得到发现和修复,最大程度的实现缺陷的阶段遏制能力。同时,在当前阶段发现和修复的缺陷,有助于后续阶段的缺陷预防。另外,通过根本原因分析等技术消除在软件工作产品中引入缺陷的根本原因,或者在适当时候开展回顾会议以总结经验和教训,都有助于过程改进,从而可以在将来更好的实现质量保证。

对于软件开发项目而言,控制是十分重要的管理活动。软件质量保证(Software Quality Insurance,SQA)是在软件过程中的每一步都进行的“保护性活动”。SQA主要由基于非执行的测试(也称为评审)、基于执行的测试(即通常所说的测试)和程序正确性证明。软件评审是最为重要的SQA活动之一。它的作用是,在发现及改正错误的成本相对较小时就及时发现并排除错误。审查和走查是进行正式技术评审的两类具体方法。审查过程不仅步数比走审多,而且每个步骤都是正规的。由于在开发大型软件过程中所犯的错误绝大数是规格说明错误或设计错误,而正式的技术评审发现这两类错误的有效性高达75%,因此是非常有效的软件质量保证方法。
软件质量保证渗透到需求、设计、编码、发布、维护、配置管理、文档的各个环节,每一个环节工作做到位,都会减少软件质量风险。
如果公司比较大,那么QA是一个专门的岗位,是区别于测试的,测试的重点是在找软件BUG,而QA的重点是发现过程中的质量问题,寻求改进方法和优化流程,避免以后犯同类错误。好的QA一定是一个资深的设计高手,否则只能做到文档稽核、走走流程、意义不大。

4fc41b3c2134f0752d67527fcd048aad.png
软件质量保证技术,主要包括两类方法:一是事后控制,以调试、测试、技术复审等以不出质量缺陷为目的技术方法,其主要形式是找出缺陷所在;一种是事前控制,主要形似是以预防为主,通过标准化、过程管理等如CMM,ISO以控制质量缺陷为目的的管理方法。以技术方法解决问题有一定的局限性,而标准化的指定只能告诉做什么,而不是告诉怎么做,而相对于“事后活动”,质量保证中更重要的是“事先预防”。因此,软件的质量保证也应该构筑以用户满意为中心,能防患于未然的质量保证体系。 尽管软件质量越来越受重视,也出现了不少旨在保证质量、指导软件开发的标准和过程模型(如瀑布模型、RUP模型、CMM等),但这些标准、方法在软件质量保证上只提供了原则性的指导,人们在展开软件开发时普遍感到缺乏得心应手的工具。因此,顺沿着软件工程提出的思路和SCOR模型给我们的启示,我们借用在生产质量领域中成熟的质量控制保证技术和管理观念如QFD、FMEA等方法应用到软件产品中去。
软件质量保证(SQA)是一种应用于整个软件过程的活动,SQA小组的职责是辅助软件团队实现高质量的软件产品。其活动内容包括以下几个方面。
①为项目准备SQA计划。
②参与开发项目的软件过程描述,而非负责开发项目的软件过程描述。
③评审各项软件工程活动,以验证其是否符合定义的软件过程。
④审核指定的软件工作产品,以验证是否符合定义的软件过程中的相应部分。
⑤确保软件工作及工作产品中出现的偏差已文档化,并且按照文档化的规程进行了处理。
⑥记录所有不符合规范的部分,并报告给高层管理者。
⑦协调变更控制和变更管理,并帮助收集和分析软件度量信息。
软件质量不是SQA完全负责,软件开发中有许多参与者负有保证软件质量的责任,包括软件工程师、项目管理者、客户、销售人员和SQA的成员。SQA小组充当客户在公司内部的代表,必须以客户的观点来看待软件。SQA小组的职责是辅助软件工程小组得到高质量的最终产品,为此制定了一组有关质量保证中的计划、监督、记录、分析及报告的SQA活动,这些活动由一个独立的SQA小组执行(或推动)。软件工程师采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来考虑质量问题,这不是SQA的工作。
软件测试与软件质量(QA)的区别
质量保证(QA):主要工作是通过预防,检查与改进来保证软件质量。它所关注的是软件质量的检查与测量。着眼软件开发活动中的过程、步骤及产物,而不是对软件进行剖析进而找出问题。
软件测试:测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程中的产物——开发文档和源代码进行走查,运行,以找出问题,报告质量。测试人员也必须假设软件存在问题,所以所做的操作都是为了找出更多的问题,而不仅仅验证每一件事是正确的。

96af537df3b73903cdfa0ed460486eaf.png
通过质量控制和质量保证活动,发现质量工作中的薄弱环节和存在问题,再采取针对性的质量改进措施,进入新一轮的质量管理PDCA循环,以不断获得质量管理的成效。

4f21aaf8e9aef5bc86d660e3f58e776a.png

9a118ef2f8fa53b09bedee02a29098f6.png

软件测试模型是什么?

0)瀑布模型

What is the Waterfall Model?
Waterfall model is a sequential model divided into different phases of software development activity. Each stage is designed for performing the specific activity during the SDLC phase. Testing phase in waterfall model starts only after implementation of the system is done.
Testing is done within the SDLC.

1) V模型

仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段 ;

忽视了测试对需求分析,系统设计的验证,一直到后期的验收测试才被发现。(缺陷)

eba12adaaad415f167f0e6bdf4ed48a0.png
What is V- Model?
V- model is an extension of the waterfall model. It is pronounced as the "vee" model. Unlike the waterfall model, In V-model, there is a corresponding testing phase for each software development phase. Testing in V-model is done in parallel to SDLC stage.
Testing is done as a subproject of SDLC.

480e104cfa7f224391d3699515205313.png

2) W模型

测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。(缺陷)

测试的活动与软件开发同步进行;测试的对象不仅仅是程序,还包括需求和设计; 尽早发现软件缺陷可降低软件开发的成本。(优点)

e324cbe91f3b995c055861bc992b5081.png
Paul Herzlich introduced the W-Model. In W Model, those testing activities are covered which are skipped in V Model.
The ‘W’ model illustrates that the Testing starts from day one of the of the project initiation.
If you see the below picture, 1st “V” shows all the phases of SDLC and 2nd “V” validates the each phase. In 1st “V”, every activity is shadowed by a test activity. The purpose of the test activity specifically is to determine whether the objectives of that activity have been met and the deliverable meets its requirements. W-Model presents a standard development life-cycle with every development stage mirrored by a test activity. On the left hand side, typically, the deliverable of a development activity (for example, write requirements) is accompanied by a test activity test the requirements and so on.

5da37d82b9c950da8be29ae3b2ba2287.png
Fig 1: W Model

dd14d64ff74f4cbdbc07f537536949d1.png
Fig 2: W Model
Conclusion– V model only shows dynamic test cycles, but W models gives a broader view of testing. the connection between the various test stages and the basis for the test is clear with W Model (which is not clear in V model).

3) X模型

X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。

606b50647c924bbb060f00e0680c9807.png

  X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执 行程序进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。 由图中可见,X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。但 这样可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。

4) H模型

H模型中, 软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行。

2355d57cc26b36730114a8d3f77c742b.png
H模型测试活动独立存在,贯穿整个产品周期

这个示意图演示了在整个生产周期中某个层次上的一次测试“微循环”。图中标注的其它流程可以是任意的开发流程,例如设计流程或者编码流程。也就是说, 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。

H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。H模型指出软件测试要尽早准备, 尽早执行。不同的测试活动可以是按照某个次序先后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展

H模型示意图

44ee12a24217cd7471e3e9ae17a467c7.png

H模型的优点:
  >开发的H模型揭示了软件测试除测试执行外,还有很多工作;
  >软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行;
  >软件测试活动可以尽早准备、尽早执行,具有很强的灵活性;
  >软件测试可以根据被测物的不同而分层次、分阶段、分次序的执行,同时也是可以被迭代的。

H模型的缺点:
  >管理型要求高:由于模型很灵活,必须要定义清晰的规则和管理制度,否则测试过程将非常难以管理和控制;
  >技能要求高:H模型要求能够很好的定义每个迭代的规模,不能太大也不能太小;
  >测试就绪点分析困难:测试很多时候,你并不知道测试准备到什么时候是合适的,就绪点在哪里,就绪点的标准是什么,这就对后续的测试执行的启动带来很大困难;
  >对于整个项目组的人员要求非常高:在很好的规范制度下,大家都能高效的工作,否则容易混乱。例如:你分了一个小的迭代,但是因为人员技能不足,使得无法有效完成,那么整个项目就会受到很大的干扰。

软件质量保证过程通过计划制订、实施和完成一组活动提供保证,这些活动保证项目生命周期中的软件产品和过程符合其规定的需求。 软件质量保证计划定义了用于保证为特定产品开发的软件满足用户需求并在项目的约束内具有最高的质量的手段。
验证与确认过程使用能够定位缺陷并便于以后改正的测试技术直接处理软件产品质量问题。 验证与确认过程确定某一开发和维护括动的产品是否符合活动的需求,尾终的软件产品是否达到其意图并满足用户需求。验证过程试图确保活动的输出产品已经被正确制造,即活动的输出产品满足前面活动施加的规范说明;确认过程则试图确保建造了正确的产品,即产品满足其特定的目的。
评审与审计过程包括:管理评审、技术评审、检查、走查、审计等。管理评审的目的是监控进展,决定计划和进度的状态,确认需求及其系统分配,或评价用于达到目标适应性的管理方法的有效性。它们支持有关软件项目期间需求的变更和其他变更活动。
技术评审的目的是评价软件产品。以确定其对使用意图的适合性,目标是识别规范说明和标准的差异,并向管理提供证据,以表明产品是否满足规范说明并遵从标准,而且可以控制变更。检查的目的是检测和识别软件产品异常。一次检查通常针对产品的一个相对小的部分。发现的任何异常都要记录到文档中,并提交。软件审计的目的是提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的独立评价。审计是正式组织的活动,识别违例情况,并产生一个报告,采取更正性行动。

相关资料:

郑文强Tester:质量保证QA与质量控制QC​zhuanlan.zhihu.com
b97119a34f199a0551fca8f14f784957.png
讴歌:浅谈如何保证软件质量目标【专题】​zhuanlan.zhihu.com
60f09e49457070b813989543704b3c8d.png
JerryWang:SAP成都研究院姚瑶:软件质量保证工作的变迁​zhuanlan.zhihu.com
b2459474631890d128fa34cf5e2b0362.png
谭老师:浅谈质量管理体系——质量保证(QA)篇​zhuanlan.zhihu.com
e494539288c36704c64ecda6c340ad51.png
怎么把质量保证(QA)的工作做好?​www.zhihu.com
7a64702291cdf537a1a01c27e7a2f6ac.png
李育英:软件测试专业术语分享~​zhuanlan.zhihu.com
质量保证与质量控制的概念和区别是什么?特别是在环境监测领域内。​www.zhihu.com
4bca06a1923cf59b3b76d55db3516a71.png
微信号zlrqbj3:如何打造一流的质量保证部门?​zhuanlan.zhihu.com
ce6e42da530cba050f7e2a6ab42f5146.png
软件质量保证的实践​www.sohu.com
a98c27e8535729291d876f9ed3485cf5.png
软件质量保证_百度百科​baike.baidu.com
16f7ae3a53ebfdb3999b90f5f5c25e4e.png
V Model to W Model | W Model in SDLC Simplified​softwaretestingtimes.com
a274caee273d29e95285486611e916a5.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

普诺飞思公布发明者社区,启发基于事件视觉技术的创新

2021 年 12 月 15 日,全球领先的神经拟态视觉传感公司普诺飞思(Prophesee)正式对外公开其发明者社区,展示基于事件的 Metavision 技术的工作及技术创新成果。该发明者社区创建于 2014 年,由来自各行业的研究人员、学者…

揭秘!业界创新的代码仓库加密技术

简介: 原理与演示。 01 / 什么是代码加密? 云端加密代码服务是云效团队的自研产品,是目前国内率先支持代码加密的托管服务,也是目前世界范围内率先基于原生Git实现加密方案的代码托管服务。 通过在云端对托管在云效Codeup的代码…

360 政企安全集团基于 Flink 的 PB 级数据即席查询实践

简介: Threat Hunting 平台的架构与设计,及以降低 IO 为目标的优化与探索。为什么以及如何使用块索引。 本文整理自 360 政企安全集团的大数据工程师苏军以及刘佳在 Flink Forward Asia 2020 分享的议题《基于 Flink 的 PB 级数据即席查询实践》&#xf…

支持mysql的报表开发工具_你不知道的mysql的3W法,内附超好用的报表工具

WHAT? 什么是MySQL?MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。WHY?为什么需要MySQL工具?MySQL现已经成为大多数中小企…

中文巨量模型“源1.0”的学习优化方法

最近,浪潮人工智能研究院发布了中文巨量模型“源1.0”,参数量达2457亿,超越美国OpenAI组织研发的GPT-3。“源1.0”在语言智能方面表现优异,获得中文语言理解评测基准CLUE榜单的零样本学习(zero-shot)和小样…

阿里集团业务驱动的升级 —— 聊一聊Dubbo 3.0 的演进思路

简介: 阿里云在 2020年底提出了“三位一体”理念,目标是希望将“自研技术”、“开源项目”、“商业产品”形成统一的技术体系,令技术的价值可以达到最大化。Dubbo 3.0 作为三位一体架构的首推方案,在集团内被寄予了厚望。它完美融…

淘宝小部件:全新的开放卡片技术!

简介: 淘宝的开放技术目前主要有两种形态,第一种是小程序,第二种是今天的主角小部件。它是基于小程序技术体系,面向标准化、轻量化、高性能的开放卡片场景。本文我们将通过技术设计策略、核心技术设施、业务场景接入、技术演进路线…

hadoop上传文件java_hadoop入门之通过java代码实现将本地文件上传到hadoop的文件系统...

第一步:首先搭建java的编译环境。创建一个Java Project工程,名为upload。第二步:选中所需的Jar包。选中JRE System Library 选择BuildPath Configure Build Path 选择hadoop相应的jar包。通过Add External JARS --〉Hadoop-0.20.2下所有的jar…

外卖和快递行业数据_抢人大战愈演愈烈,东莞再现用工荒!不只流向外卖、快递等行业...

12月初,距离过年只有两个月的时间。按照往年惯例,这并不是一个大肆招人的好时机。然而世界工厂中国,一场抢人大战却于此时低调地打响,在东莞,不少工厂亲身上阵,在厂区附近的大街小巷拉满横幅,贴…

HIRO 部署新一代可扩展边缘微型数据中心

边缘计算对于充分发挥人工智能 (AI)、机器学习和物联网 (IoT) 的全部潜能至关重要。这些技术正在融入我们生活的方方面面:自动驾驶、智能楼宇、机器人、供应链管理和医疗保健。 何为边缘计算? 边缘计算作为速度更快的(中间层)数…

阿里数据中台底座的12年建设实践

简介: 在当下如火如荼的金融行业中台建设浪潮中,不少金融机构对于中台建设仍存诸多迷思,中台建设将走向何方?数据资产到底该如何管理?阿里巴巴的中台建设之路应该能为金融机构带来借鉴。 日前,在阿里云举办…

Hologres揭秘:如何支持超高QPS在线服务(点查)场景

简介: 本期我们将揭秘Hologres如何支持超高QPS在线服务(点查)场景。 Hologres(中文名交互式分析)是阿里云自研的一站式实时数仓,这个云原生系统融合了实时服务和分析大数据的场景,全面兼容Post…

请写一个java程序实现线程连接池功能_写一个java程序实现线程连接池的功能

线程池:import java.util.linkedlist;public abstract class manager {private string mthreadpoolname null;private int mthreadpoolmaxsize 1;private linkedlist workers new linkedlist();public manager() {}public manager(string name, int poolmaxsize) {mthreadpo…

shell 提取sql 的字段名表名_Mysql 常用SQL语句集锦(仅学习)

基础篇//查询时间,友好提示 $sql "select date_format(create_time, %Y-%m-%d) as day from table_name";//int 时间戳类型 $sql "select from_unixtime(create_time, %Y-%m-%d) as day from table_name";//一个sql返回多个总数 $sql "…

告别“大小周”、回到二三线,程序员“内卷”时代终结?

作者 | 郑丽媛出品 | CSDN(ID:CSDNnews)相信许多人都有这样一种感觉:工作之后,对于时间的概念似乎减弱了,只会在恍惚间瞄到日历,才惊觉:一年竟又已临近尾声。这一年,我们…

MySQL 8.0 Server层最新架构详解

简介: 本文基于MySQL 8.0.25源码进行分析和总结。这里MySQL Server层指的是MySQL的优化器、执行器部分。我们对MySQL的理解还建立在5.6和5.7版本的理解之上,更多的是对比PostgreSQL或者传统数据库。然而从MySQL 8.0开始,持续每三个月的迭代和…

产品解读 | 敏捷版数据库场景 一站式快速构建企业全场景数据库管理平台

简介: Gartner 的报告显示预计到2022年将有75%数据库将采用云数据库,与此同时,IDC预计到2024年传统部署数据库市场将达到13亿美元,企业数字化转型升级,积极拥抱开源、云原生数据库成为重要趋势,也是必然选择…

核弹级漏洞,把 log4j 扒给你看!

作者 | 轩辕之风O来源 | 编程技术宇宙相信大家这两天应该被这么一条新闻刷屏了:这个漏洞到底是怎么回事?核弹级,真的有那么厉害吗?怎么利用这个漏洞呢?我看了很多技术分析文章,都太过专业,很多非…

外部工具连接SaaS模式云数据仓库MaxCompute实战——商业BI分析工具篇

简介: MaxCompute 是面向分析的企业级 SaaS 模式云数据仓库,以 Serverless 架构提供快速、全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,帮助企业和大数据开发者经济…

挑战程序设计竞赛_我系首次参加第六届中国大学生程序设计竞赛网络预选赛

点击上方蓝字关注 「龙外信息工程系」讲述有温度的故事 传递有态度的思想2020年9月20日12时至17时,第六届中国大学生程序设计竞赛网络赛预选赛在杭州电子科技大学OJ成功举办,黑龙江外国语学院(信息工程系)参赛队与来自清华大学、上海交通大学、复旦大…