`
ldb19890624
  • 浏览: 243866 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

《软件测试的有效方法(第2版)》笔记(一)

 
阅读更多

《软件测试的有效方法(第2版)》笔记(一)
第一章 评估软件测试的能力和人员资格


1、软件开发过程:计划P、执行D、检查C、行动A。--PDCA循环
2、软件测试涉及的人员:软件客户、软件用户、开发人员、测试人员、信息技术管理人员、高级组织管理人员、审计员。
3、软件测试的多种角色:制造、创作车间、专业化过程。
4、缺陷:与期望的产品属性存在的差异。分两类:
(1)产品规格书中的缺陷;
(2)与客户/用户的期望不符。
另一种分法:
(1)错误;
(2)遗漏;
(3)超额。
故障:当缺陷引起了运行错误或对客户/用户产生了消极影响时。
××注意:至少90%的缺陷是由于过程问题引起的。
创建软件时产生缺陷的数量主要取决于过程是否完备,完备指过程中可以允许多大的变化。
风险:指不希望的事件发生的可能性。
5、软件测试中的“三步测试法”:
(1)确定当前测试能力的状态;
(2)确定改进目标;
(3)制订测试计划以达到测试目标。
6、质量保证协会QAI确定了与世界级软件测试组织普遍相关的八项标准:
(1)测试计划;
(2)对测试人员的培训;
(3)对测试工作的管理;
(4)用户对测试的满意程度;
(5)测试过程的使用;
(6)有效的测试实践;
(7)应用测试工具;
(8)对测试全过程的质量控制。
如果一组织能达到这八项标准的要求,就可以称他为世界级的软件测试组织。
7、评估现有测试过程的质量
实现过程:
(1)组建评估小组;
(2)完成评估调查问卷;
(3)创建Kiviat图;
(4)评估结果。
软件测试工程师认证CSTE
通用知识主题CBOK:五大类:
(1)一般技能;
(2)测试技巧/方法;
(3)测试计划;
(4)执行测试计划;
(5)测试分析的报告与改进。

第二章 制定软件测试策略
1、确定解决方法的有效性是解决问题的必要步骤。测试就是用来确定解决方法的技术。
三个方面:
(1)在软件系统开发生命周期的每个节点对软件有效性的证明;
(2)根据用户的需要和要求确定最终系统的有效性;
(3)通过使用样本测试数据执行软件来检查系统的行为。
问题的紧急程度决定了解决方案。明确测试需求。
2、风险:是引起损失的一种情况。系统在开发和安装阶段可能存在的策略风险是:
(1)可能得出不正确的结果;
(2)系统接受了未经授权的事务处理;
(3)计算机文件的完整性受到破坏;
(4)处理过程不可重建。
(5)失去处理的连续性;
(6)提供给用户的服务达不到满意的程度;
(7)系统安全性达不到标准;
(8)处理过程不符合组织原则或政府规定;
(9)系统结果不可靠;
(10)系统使用难度大;
(11)程序不可维护;
(12)系统不能移植到其它硬件或软件中;
(13)系统不能与其它计算机系统互连;
(14)性能不合格;
(15)系统操作难度大。
有效的测试方法就是明确和评价计算机系统的各种风险。
“太少的测试是犯罪,太多的测试是罪恶。”
测试中的问题产生的原因:
(1)没有定义测试目标;
(2)测试软件生命周期的错误阶段;
(3)使用无效的测试技术。
测试费用的有效性可用测试费用曲线来表示。
3、测试信息服务系统不仅仅是一类IT问题,还是一类组织问题。
一些技术的发展会导致测试方法的修改,如下:
(1)一体化;
(2)系统链接;
(3)多米诺骨牌效应;
(4)依赖电子商务;
(5)多用户。
4、建立测试原则 四项标准:
(1)测试的定义:定义一个清晰、扼要、明确的测试;
(2)测试系统:通过这一方法实现测试和强制测试;
(3)评价:信息服务管理将如何衡量和评价测试;
(4)标准:衡量测试的标准。
建立测试原则的方法:
(1)直接管理:一个或多个高级管理员制定的原则;
(2)信息服务一致原则:IT管理部门召集一些高级专家和有声望的人来参与原则的制定;
(3)用户会议:联合IT各部门管理用户的关键人员制定测试原则。
5、测试的结构化方法
测试过程要包括生命周期的每个阶段:
(1)需求——决定验证方法;确定需求是否恰当;生成功能测试数据;确定设计是否符合需求。
(2)设计——确定设计是否恰当;生成结构合功能测试数据;确定是否符合设计。
(3)编程——确定程序完成得是否恰当;生成程序的结构合功能测试数据。
(4)测试——测试应用系统。
(5)安装——把测试过的系统投入生产。
(6)维护——修改和重新测试。
在每个阶段都要完成的活动有:
(1)分析该阶段的产品结构是否适合于测试;
(2)根据该阶段的结构产生测试单元。
另外,在设计和编程阶段完成的活动:
(1)确定该阶段的结构是否符合前面阶段产生的结构;
(2)精炼或重新定义前面阶段生成的测试单元。
6、测试策略的两个组件是:
(1)测试因素:需要由测试策略确定的风险和问题;
(2)测试阶段:系统开发生命周期里需要测试的各阶段。
7、测试因素:正确性、文件完整性、合法性、审计跟踪、处理的连续性、服务水平、访问控制、符合性、可靠性、易用性、可维护性、可移植性、耦合、性能、易操作性。
8、制定测试策略 步骤:
(1)选择和分级测试因素;
(2)明确系统开发阶段;
(3)明确系统开发时的商业风险;
(4)把风险置于矩阵中。
9、创建测试策略样例:
(1)选择和分类测试因素;
(2)明确受到影响的阶段;
(3)联系每个阶段和因素,确定测试需要考虑的问题;
(4)定义测试策略。
10、测试方法论:与测试策略相统一,代表了测试应用系统的详细工作程序。工作程序用测试方法论立方体表示。

第三章 建立软件测试方法论
测试方法论是使测试策略得以实施的一套方法。依照需求恰当的使用测试策略矩阵。任务是决定测试、制定可行的测试方法,识别出风险。
1、测试目的:发现和消除软件的缺陷或者与预期结果的偏差。两类缺陷:
(1)与规格说明不符;
(2)与期望不符。
2、导致软件缺陷的原因:
(1)信息技术对需求的解释不正确;
(2)用户提出了错误需求;
(3)没有正确记录用户的需求;
(4)设计规格说明不正确;
(5)程序规格说明不正确;
(6)程序编码中有错误;
(7)数据输入错误;
(8)测试错误;
(9)纠错时出现错误;
(10)纠错条件导致另外的缺陷。
测试的费用主要取决于在项目生命周期的什么时期开始测试,越晚越贵。
测试应该从生命周期的第一个阶段开始,并贯穿于整个软件开发的生命周期。
生命周期测试:是对解决方案的持续测试,即使在软件开发计划完成后或者被测试的系统处于执行状态的时候,都不能中断测试。直到正式开始开发过程,生命周期测试才能开始。
3、四个测试技术:
(1)验证:确保系统遵循组织标准和规程,主要靠评审或一些不可执行的方法。
验证需要的评审有:
(1.1)需求评审:研究并讨论计算机系统的需求,以确保它能满足用户的需要及其可行性;
(1.2)代码走查:对程序源代码进行非正式的分析,以发现缺陷并且验证编码技术;
(1.3)代码审查:对程序源代码进行正式的分析,以发现为符合计算机系统设计规格说明所发生的设计缺陷;
(1.4)设计评审:研究并讨论计算机系统的设计,以确保它支持系统需求;
(1.5)回顾评审。
(2)确认:通过一系列可以看到和评价的测试来执行系统功能,以确保系统操作按照计划实现。
确认的测试有:
(2.1)单元测试:单独程序、模块或代码单元的测试;
(2.2)集成测试:相关的程序模块、代码单元测试;
(2.3)系统测试:对于整个计算机系统的测试;
(2.4)用户验收测试:对于计算机系统或系统某部分的测试,确保它们能配合系统工作,而无需考虑系统需求。
(3)功能测试:即黑盒测试。基本只能使用确认技术。
(4)结构测试:白盒测试。主要使用验证技术。
功能测试的优势:模拟实际系统的使用;进行没有系统结构的设想。
功能测试的不足:遗漏软件中潜在的逻辑错误;可能造成冗余测试。
结构测试的优势:可以测试软件的结构逻辑;测试时不用考虑是否完成了功能测试。
结构测试的不足:不能保证是否满足用户的需求;结构测试不可以模拟现实世界的情况。
两者结合才能确认整个系统。
4、工作流程:是一种方法,它用图示或文档的方式来说明指定的活动是如何完成的。
每一个工作流程由以下四个部分组成:输入、执行过程、检查过程、输出。
工作流程的概念可用作系统创建步骤的图示说明。
5、开发测试方法论中要考虑的八个问题
(1)获取和研究测试策略;
(2)确定开发项目的类型;
(3)确定软件系统的类型;
(4)确定项目的范围;
(5)确定战术风险;
(6)确定何时进行测试;
(7)建立系统测试计划;
(8)建立单元测试计划。
步骤如下:
(1)获取和研究测试策略;
(2)确定开发项目的类型;
项目类型:指开发的软件环境或方法论。
当环境变化大了,测试风险也会不同。
(3)确定软件系统的类型
软件系统的类型指该系统要完成的处理过程,一般有16种不同的软件处理类型:
(3.1)批处理:可以运行一般的批量处理;
(3.2)事件控制:由外部事件引发的实时处理数据;
(3.3)处理控制:从外部接收数据,根据收到的数据发出命令来控制某些行为;
(3.4)规程控制:控制其它软件;
(3.5)高级数学模型:类似于模拟和商业策略软件,但具有过多运用数学模型造成的复杂性;
(3.6)消息处理:管理输入输出消息,处理文本或者文本包中包含的信息;
(3.7)诊断软件:检测和隔离硬件错误,这些硬件存在于电脑或与其通信的硬件中;
(3.8)传感器和信号处理:类似于消息处理,但需更多的处理过程来分析输入数据,并使之转换成可用的数据处理格式;
(3.9)模拟:模拟一种环境、任务状况、其它硬件;从这些输入中得出对计算机程序或硬件最真实的评价;
(3.10)数据库管理:管理数据的存储和访问;
(3.11)数据采集:实时接收信息,并以某种形式保存数据,用作以后的处理;
(3.12)数据表示:格式化数据及转化数据;
(3.13)决策和计划辅助:使用人工智能技术提供一个专家系统来评价数据,为决策和政策制订者提供附加的信息和考虑;
(3.14)图形和图像处理:生成和处理计算机图像;
(3.15)计算机系统软件:为运行计算机程序提供服务;
(3.16)软件开发工具:为辅助软件开发提供服务;
(4)确定项目的范围:指包含在被测试的软件中的所有行为——可以理解的系统需求和规格说明的范围。
(5)确定战术风险 战术风险分为三类:
(5.1)结构化风险:应用系统及创建应用系统的方法中所涉及的风险;
(5.2)技术风险:创建和操作应用系统的技术所涉及的风险;
(5.3)规模风险:软件各方面的规模所设计的风险。
确定战术风险的步骤:
第一,理解风险和对风险的分级;
第二,确定被测试的软件系统中适当级值;
第三,计算和累计风险分数。
(6)确定何时进行测试
测试在项目的各个阶段都应该进行。在这些阶段的测试行为有:
A. 需求阶段行为:确定测试策略;确定需求是否恰当;创建功能测试条件。
B. 设计阶段行为:确定需求设计符合性;确定设计是否恰当;创建结构和功能测试条件。
C. 编程阶段行为:确定设计符合性;确定执行是否恰当;创建程序单元的结构和功能测试条件。
D. 测试阶段行为:确定测试计划是否恰当;测试应用系统。
E. 安装阶段行为:修改和重新测试系统。
(7)建立系统测试计划
测试计划要提供测试软件的背景信息、测试目标和风险,以及测试的业务功能和要完成的特殊测试。
测试计划类似于执行测试的路线图,它被分解成特殊测试和低级测试。
测试执行后,要测试结果生成测试报告。
(8)建立单元测试计划
把系统分成组件和单元来执行具体的处理,这些单元都要有自己的测试计划。根据软件对质量的要求程度,决定这些计划的复杂程度。
单元测试计划着重确定单元测试完成时间。

分享到:
评论

相关推荐

    软件测试基础知识笔记1

    #### 一、软件测试定义 软件测试是通过使用技术手段来验证软件是否满足其预定的功能性和非功能性需求的过程。它旨在发现软件中的缺陷或错误,确保软件产品的质量和可靠性。 #### 二、软件测试分类与阶段划分 1. **...

    软件测试(原书第2版)

    《软件测试(原书第2版)》是关于软件测试领域的权威著作,旨在深入探讨软件测试的基本原理,并提出在实际工作中应注意的关键问题。该书的第二版更新了最新的理论和实践,反映了软件测试领域的最新发展。 软件测试是...

    宏基笔记本摄像头测试软件

    标题中的“宏基笔记本摄像头测试软件”指的是专为宏基(Acer)品牌笔记本电脑设计的一款摄像头测试工具。这款软件主要用于验证和评估宏基笔记本内置的摄像头功能,确保其正常工作并提供良好的视频和图片质量。 在描述...

    笔记本电脑键盘检测软件Keyboard Test中文版

    【标题】:“笔记本电脑键盘检测软件Keyboard Test中文版”指的是专为笔记本用户设计的一款键盘功能检测工具,它能够帮助用户检查键盘上的每一个按键是否正常工作,确保输入的准确性和键盘的完整性。 【描述】:...

    教育精品资料软件评测师教程笔记之第4章软件测试过程与管理.doc

    【教育精品资料软件评测师教程笔记之第4章软件测试过程与管理】 软件测试是确保产品质量的关键环节,它包括了测试计划、设计、实施、评审和结论等多个阶段。这一章详细阐述了软件测试过程和管理的国际标准,遵循GB/...

    软件评测师考试学习笔记,Word版

    **软件质量与软件测试**:软件测试是确保软件质量的关键步骤之一,它通过查找软件中的错误来提高软件的质量。软件质量保证(QA)则侧重于通过预防、检查与改进的方式来确保软件的整体质量。测试更关注于产品的功能性...

    软件工程复试书学长笔记.pdf

    软件测试 - **基础知识**: 包括黑盒测试、白盒测试、灰盒测试等基本概念。 - **自动化测试工具**: 如Selenium、JUnit等。 - **性能测试**: 学习如何评估软件在高负载下的表现。 #### 4. 软件项目管理 - **项目计划...

    Go 学习笔记 第四版

    《Go学习笔记第四版》是一本深度探讨Go语言的书籍,专为想要深入理解Go语言特性和实战应用的读者设计。Go语言,又称Golang,是Google在2009年发布的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。其...

    高清-软件设计师书籍2-5版+笔记资料+历年真题解析

    这个压缩文件包含了从第2版到第5版的软件设计师书籍,以及配套的笔记和历年真题解析,为备考者提供了丰富的学习资源。 1. **软件设计师书籍**: - 软件设计师是信息技术领域的一个专业职称,对应于国家计算机技术...

    《软件工程基础》学习笔记

    《软件工程基础》是软件开发领域的入门书籍,它涵盖了软件工程的基本概念、原理、模型和实践方法。以下根据给定文件的内容,详细阐述涉及的知识点。 1. 软件发展的驱动力: - 计算需求:随着计算技术的不断进步,...

    Go 学习笔记 第四版 pdf

    根据提供的信息,我们可以总结出这份文档是关于Go语言学习笔记的部分内容,主要涵盖了Go语言的基础概念、语法结构、数据类型以及并发模型等关键知识点。以下是对这些知识点的详细解析: ### Go语言概述 Go(也称作...

    Go 学习笔记 高清

    - 第2章 函数:涵盖函数类型、多返回值、命名返回参数、变参、匿名函数与闭包、Defer、Panic、Recover以及Call Stack。 - 第3章 Array、Slices和Maps:介绍Go语言中数组、切片和字典的使用。 - 第4章 Structs:探讨...

    行业文档-设计装置-笔记本电脑合机休眠自动测试方法.zip

    在IT行业中,笔记本电脑的合机休眠自动测试方法是一项重要的质量控制环节,它涉及到硬件、操作系统、电源管理以及软件的协同工作。本测试方法旨在确保笔记本电脑在合上盖子(即“合机”)进入休眠模式后,能够正确...

    笔记本外接显示器解决方法

    在安装显卡驱动程序时,我们建议使用稳定性好的 WHQL 认证的驱动,一些测试版驱动甚至是第三方发布的驱动有可能会导致笔记本外接的显示器蓝屏、花屏等现象。 此外,一些笔记本电脑品牌也会提供外接显示器的若干种...

    测试学习笔记

    ### 测试学习笔记知识点概述...综上所述,本文档涵盖的内容非常广泛,从软件测试的基础概念到具体的测试技术和工具使用,以及相关的编程语言和版本控制等内容,旨在帮助读者全面了解软件测试领域的知识体系和技术要点。

    性能测试工具LoadRunner书籍(14本)目录知识点(思维导图加图).rar

    性能测试工具LoadRunner书籍(14本)目录知识点(思维导图加图).rar 根据如下14本性能测试、LoadRunner书籍收集整理: ...2019年《软件性能测试与LoadRunner实战教程(第2版)》 2020年《LoadRunner 12七天速成宝典》

    锐能微第三代单相计量芯片应用笔记v1.3

    8. 版本更新说明:文档中记录了应用笔记从2014年到2016年进行的多次更新,每一次更新都包含了若干项修改内容,例如HFConst计算公式的更改、相位校正计算公式规范的修改、SPI写/读操作程序示例的更改以及校表方法的...

    重构:改善既有代码的设计(第2版)学习笔记

    《重构:改善既有代码的设计(第2版)》是一本由马丁·福勒(Martin Fowler)编著的经典软件工程书籍,主要关注的是如何通过一系列微小的改变来逐步改进现有代码的质量,提升软件设计的可读性、可维护性和可扩展性。...

    软件工程(实践者的研究方法)课件

    《软件工程(实践者的研究方法)》是一本深入探讨软件开发过程、方法和技术的经典教材,其原书第6版进一步更新了内容,适应了当前快速发展的信息技术环境。课件是根据该书的内容编排,旨在帮助学生和从业者更好地...

Global site tag (gtag.js) - Google Analytics