什么是QA?

转载自:开心糖果的夏天  链接:https://www.jianshu.com/p/a348da2b155b

 

百度之:QA(QUALITY ASSURANCE)中文意思是“品质保证”,其在ISO8402。1994中的定义是“为了提供足够的信任表明实体能够满足品质要求,而在品质管理体系中实施并根据需要进行证实的全部有计划和有系统的活动”。

为什么说是管理呢?

因为QA结合了管理,分析和测试三大行业的知识。公司的研发进度,产品研发初期的标准制定及产品后期的研发都需要QA的参与,缺一不可。QA可以有效的控制研发的进度和每个环节的质量。不管任何的产品,都是以适合人使用为前题的。在产品初期制定设计标准的时候,QA能够站在消费者的角度来看待这个产品,让产品更人性化。设计阶段,QA成为一个测试者,验证每一个环节的质量,是否达到了设计标准所规定的。用当局者迷,旁观者清来形容再贴切不过了。QA就是这个旁观者。任何产品不可能十全十美,出了问题,设计者不可能一一来查找问题,因为很难有单独一个人完成整个产品设计,这时候QA就是一个分析师,查找在哪部分出了问题,节约研发的时间,解决不必要的麻烦。任何的公司都有自己的产权,而QA能很好的保护公司的产权。健全的公司,QA有很大的权力控制公司的所有技术资料。任何设计工程师不可以私自给客户公司的技术资料,这些管理都是由QA来完成的。

成为一个成熟的QA需要经过三个阶段的成长期。

首先,先让自己成为一个优秀的测试者。

有灵活的头脑,用逆向思维来思考如何做测试。做为一个测试者,还需要有良好的表达能力,要能将自己看见的现象描述清楚。有些人天生就对文字表达不擅长,但没关系,描述bug是有一定规则的。以下提供一个经常使用的格式:
  测试环境,软件版本,硬件版本,测试时间,此项测试的申请人。记录这些的目的是为了快速准确的找到相对应的人与开发环境。方便问题重现。bug是只出现在一个版本上,还是所有的版本都会出现,出现的几率是多少,大概出现在哪个产品模块。
  将操作步骤写清楚。此点并不容易描写清楚,给个建议,你不需要用太多麻烦的描述,只需要列出每一步做了什么,用最简单的语言描述你当时所做的操作,最好用列表式,用数字排列出步骤的先后顺序。
  列出问题点,只需要写出现象,不需要做过多解释,这样更容易让看报告的人明白。
   如果你做到了用逆向思维方式不约束的头脑去测试,用超强的记忆力,记录下自己所做的步骤,用敏锐的观察力去发现每一个不起眼的异常,用简单清楚的语言描述bug,那么你就是一名优秀的测试者了。

在成为一名优秀的测试者后,不要满足喔,你还没成为真正的QA,你还需要具有分析问题的能力。

这个需要时间和精力来完成,没有捷径,只有努力才可以达到。但也是有方向的,向大家指个方向。QA需要了解大量的专业知识,除了要让自己了解公司所有的规格标准技术资料外,更应该让自己成为一个博学者。每个人能力有限,博学不代表要精通,但至少要知晓相关知识的大概。QA的分析能力与经验有相当大的关连。QA需要长时间来积累自己的经验,积累经验也有要领的。每次出现一个问题,都要去问为什么,为什么问的越多,经验就越多,你会在为什么中不知不觉的成长。一般五年是QA的一个阶段,五年内,QA需要默默的学习,积累扎实的基本功和经验,如果你做到了,五年后,你将发现,你成了奇缺人材。

最后一点要说的是管理。

QA需要管理自己内部的资料,也需要管理整个研发团队的。首先要做到的是,QA需要有正直的人品,不要因为任何的外界的因素而改变自己对公司产品的严格要求,要勇敢地说不,对不合格产品严格地打回去重新做。其次,QA需要有完善的体系来管理工作。每家公司各不相同,但我认为需要以下几个方面体系:
  工作记录。此测试是何人完成的,何人申请的,进度如何,完成时间,要严格控制记录,如果出了问题方便找到相关的人,不是为了让谁去担这个责任,是为了能更快的解决问题。当然也有对测试者的约束力,要让每一个QA知道,要对公司负责。我通常采用一个工作记录表格,个人认为还有一个好处是给QA和其他部门的同事看。当QA全部在忙,研发工程师们可以内部自己调整case的重要性,暂时pause或者delay某个任务,调整工作,让QA的工作更有效率。
  Test Case管理系统。这个需要一个小型数据库,将每一个测试项目详细记录下来,测试者可以将自己的经验变成文字写在里面,让后来者可以为之所用,提高QA团队的整体力量。每一个Test Case都必须根据公司的设计规格书和行业标准来编写,通过此,测试者也可以更了解公司产品的标准。
  Bug管理系统。这个系统可以便于QA上报bug,研发工程师能很快的去解决,也可以帮QA控制产品的研发进度,push研发工程师按进度解决问题。也可以根据此来制定每一个版本的release时间表。
  Code mangerment. 一般的公司都有这种工具,就不需要我来特别说明了,通常用的是Perforce和CVS。说明一点的是,有些公司对code管理比较乱,客户打个电话code就release出去了。不成熟的产品出去了,会让客户觉得这家公司的产品为什么如此差劲。所以如果要对公司好,就一定不可以随便开放权限。健全公司的做法通常release全部由QA发布,最后再由相对应的客户服务经理发给客户。

 

### 软件开发QA 的具体含义和职责 在软件开发生命周期中,QA(Quality Assurance,质量保证)是一个至关重要的角色。它不仅涉及测试活动,还包括一系列旨在提高产品质量的过程和实践。 #### 1. **QA 的定义** QA 是指通过预防、检测和纠正缺陷来确保产品满足客户需求的一系列系统化活动。其目标不仅仅是发现错误,而是建立一套流程以减少错误的发生概率[^1]。 #### 2. **QA 的主要职责** - **制定质量标准和流程** QA 团队负责定义项目的质量标准,并确保这些标准在整个生命周期中得到遵循。这可能包括编写测试计划、设计文档审查以及创建测试用例[^2]。 - **参与需求评审** 在项目初期阶段,QA 成员通常会参与到需求评审会议中,确保需求清晰、可验证且无歧义。这种早期介入有助于降低后期返工的风险[^3]。 - **执行全面的测试** 尽管 SDET 或 Tester 主要专注于具体的测试任务,但 QA 更关注整体的质量保障体系。这意味着除了功能测试外,还需要考虑性能测试、安全测试、兼容性测试等多个维度[^4]。 - **推动持续改进** 基于每次发布后的反馈数据,QA 应该主动寻找优化现有流程的机会,比如引入新的工具链或者调整资源配置方案等措施提升效率并降低成本。 - **与其他团队协作沟通** 有效的跨职能合作对于达成高质量成果至关重要。因此,作为桥梁连接起开发者、产品经理以及其他利益相关方之间顺畅的信息交流也是不可忽视的一部分责任所在。 #### 3. **代码示例:自动化脚本支持 QA 测试** 为了更高效地完成某些重复性强的任务,许多现代企业鼓励采用自动化手段辅助人工操作。下面展示了一个简单的 Python 单元测试框架例子: ```python import unittest class TestStringMethods(unittest.TestCase): def test_upper(self): self.assertEqual('foo'.upper(), 'FOO') def test_isupper(self): self.assertTrue('FOO'.isupper()) self.assertFalse('Foo'.isupper()) if __name__ == '__main__': unittest.main() ``` 此段代码展示了如何利用 `unittest` 模块构建基本单元测试案例集,从而帮助验证特定函数行为是否符合预期结果。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值