
软件测试基础
文章平均质量分 87
软件测试
高自期许
欢迎大家找我交流
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
八、逻辑覆盖
不要让你的弱点妨碍你的优势。有两种互补的逻辑测试方法。第一种被称为,这种覆盖只考虑逻辑表达式的含义而不管表达式的构成。语义逻辑覆盖的优点在于即使谓词被写成一种表面不同但是具有等价语义的形式,依然可以产生相同的测试用例。第二种被称为,这种覆盖专门根据逻辑表达式的构成来生成测试用例。语法逻辑覆盖的优势在于可以处理一些当开发者不正确地构建表达式时发生地特殊情况。研究发现语法逻辑覆盖通常可以检测到更多的故障,但是这种测试准则相对复杂而且其使用成本可能会很高。原创 2023-09-21 00:24:01 · 536 阅读 · 0 评论 -
七、图覆盖
有向图是许多覆盖准则的基础。边的初始节点有时被称为前驱节点,终止节点被称为后继节点路径是一个节点序列。一条长度可能为0的路径p,它起始于N0中的某个节点,终止于Nf中的某个节点。在有些图中,所有的测试路径都起始于一个节点且终止于一个节点。这些图就被称为单入/单出图,或是SESE图。测试路径的极小集合被定义为如果从这个集合中拿走任意的测试用例,这个集合便不能满足我们的准则。原创 2023-09-19 23:44:10 · 668 阅读 · 0 评论 -
六、输入空间划分
工程师借助先行者的想法来为后知后觉者建造产品。从本质上来说,所有的测试都是从待测软件的输入空间中选择元素。而输入空间划分技术的特点是根据程序输入的逻辑关系来直接划分输入空间。我们将定义为输入参数可能拥有的全部测试值。根据待分析的软件工件的种类,输入参数可以是方法参数和非局部变量(在单元测试中)、代表程序当前状态的对象(当测试类时或在集成测试中)或是用户对程序的输入(在系统测试中)。划分覆盖的基本思想中,假设覆盖任一区块的测试用例和覆盖其他区块的测试用例一样有效。原创 2023-09-13 21:20:49 · 365 阅读 · 0 评论 -
五、基于准则的测试设计
因为我们不可能使用所有的输入来测试,所以我们利用覆盖准则决定使用哪些测试输入。覆盖准则背后的原理是划分输入空间使单个测试用例发现的故障数最大化。从实际角度来说,覆盖准则也提供了有用的规则来决定什么时候停止测试。测试需求是软件工件中测试用例必须满足或覆盖的指定元素。如果目标是覆盖程序中的所有决定(分支覆盖),那么每个决定都将导致两个测试需求,一个需求决定复制为假,另一个需求决定赋值为真。如果每个方法必须被调用至少一次(调用覆盖),每个方法都生成一个测试需求。覆盖准则就是系统性地生成测试需求的办法。原创 2023-09-12 17:21:13 · 205 阅读 · 0 评论 -
四、测试优先
单个开发者犯的错误将会很快被发现,更重要的是全组的开发者会马上知晓有分歧的设计决定。持续集成和持续交付:敏捷方法强调持续集成和持续交付,在每个迭代结束时,都会将系统的最新版本进行集成和交付,同时也会进行相应的测试,确保系统的稳定性和可用性。传统的开发将成功定义为“预算内准时交付”,但是敏捷方法首先关注在开发的初期就要有可执行的电信,其次才是生产不同的、可能会比最先想象还要优质的产品。在最广义的层面上,敏捷方法只关乎最后的关键结果:可运行的软件,对随时的改动反应迅速,有效的开发小组和满意的客户。原创 2023-09-11 16:30:19 · 160 阅读 · 0 评论 -
三、测试自动化
测试自动化就是将测试实例化后加载到可执行的测试脚本中的过程。下面是其完整定义。使用软件来控制测试用例的执行,实际输出和预期输出的比较、先验条件的设置,以及其他的测试控制和测试报告功能。软件测试成本高而且耗费巨大人力,所以软件测试的一个重要目标就是尽可能地实现自动化。测试自动化不仅可以降低测试地成本,而且可以减少人为地错误,同时使回归测试变得更加容易。我们只需要一个按键,回归测试中地测试用例集就可以反复地运行下去。软件工程师有时候需要区分和。核心任务直接用来解决问题,而辅助任务斌不是解决问题必须要做的。原创 2023-09-10 20:43:52 · 223 阅读 · 0 评论 -
二、模型驱动测试设计
完全改正软件是不可能到达的,其原因是可以以形式化的方式来表述的而且是富有哲理的。聪明的软件工程师不再追求软件的完全正确,而是试着评判软件的行为来决定其是否为可接受的。**包括可靠性、安全性、可维护性、安保性、还有效率。**这比验证软件是正确的要复杂的多。MDTD过程把测试分成一系列的小任务,从而简化测试用例的生成。然后测试设计师在高层次的抽象等级上使用数学化的工程结构来设计测试用例,这样做可以独立于软件内部细节、独立于设计所基于的软件工件、也独立于测试自动化和测试执行。原创 2023-09-07 19:08:29 · 853 阅读 · 0 评论 -
一、为什么测试软件
举例来说,[2, 7, 0]返回1是正确的,[0, 7, 2]返回0是不正确的。如果一个状态与预期不符合,那么它就是错的,如果整体不符合预期,即使在这个状态中每个变量值单独考虑是对的,这个状态依然是错的。循环初始化和循环判断条件是分开的,在每一次循环的末尾,循环增量(“i++”)才会被执行。地消除故障,越到开发晚期发现和修复故障的代价越大,我们不可能做到完美,但是在单元测试或是更早的时候每消除一个故障都是在省钱。第3级:测试的目的不是要证明一些具体的成功或是失败,而是减少使用软件的风险。原创 2023-09-06 22:04:43 · 169 阅读 · 0 评论