程序测试

第四次作业——结对作业

不羁岁月 提交于 2019-11-27 10:34:18
链接 在学习通上注明结对的成员对: 1班胡晓松-1班高健 结对成员的博客连接: https://www.cnblogs.com/maxilong/p/11729323.html 代码复审 代码复审核查表(高健) 由一班胡晓松完成 1.概要部分 1)代码符合需求和规格说明吗符合? 是 2)代码设计是否考虑周全? 周全 功能和要求相符 3)代码可读性如何? 一般 4)代码容易维护么? 容易 5)代码每一行都检查过了吗? 是 2.设计规范部分 1)设计是否遵循从已知的设计模式或项目中常用的模式? 是 2)有没有硬编码或字符串/数字等存在? 是 3)代码有没有依赖于某平台,是否会影响将来的移植? 否 4)4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? 是 5)5.有没有无用的代码可以清除? 否 3.代码规范部分 1)修改的部分符合代码标准和风格嘛? 是 4.具体代码部分 1)有没有对错误进行处理?对于调用外部函数,是否检查了返回值或处理了异常? 否 2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 0 3)边界条件如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 否 在分支中填入跳转语句 4

Python 异常处理

我们两清 提交于 2019-11-27 10:28:35
python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理: 本站Python教程会具体介绍。 断言(Assertions):本站Python教程会具体介绍。 python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 OverflowError 数值运算超出最大限制 ZeroDivisionError 除(或取模)零 (所有数据类型) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败 OSError 操作系统错误 WindowsError 系统调用失败 ImportError 导入模块

细谈测试---我的启示录

╄→гoц情女王★ 提交于 2019-11-27 08:17:33
小时候对测试不很重视,比如让你做一件事,你会考虑其风险,别的因素吗。当你埋头只顾自己写软件代码,发布软件,就完事啦。但事实并非如此,对方说你的网站有漏洞,或者软件注册码容易破解,这些你并不知道。跟客户打交道,客户不是说做完项目就完事啦,往往要一个月维护。或者测试一下。意外的情况也很多,这些你绝对没想到。软件的bug如何产生的,在你写之前就产生。人的思维并非绝对的。往往是相对的,人们总喜欢自以为是,"I,M GOOD......"但测试离不开实践,不犯错误是不可能的。 软件测试就像给人诊断 软件测试 的过程其实很像给人看病的过程 首先,你看到一个人的症状的时候,就是看到了这个bug, 然后通过这个bug可以联想到某种病 通过对于这个种病的联想 你可以查看有关这种病的关联性bug是否在这个人的身上也都存在, 如果这种病的关联性的bug都存在 那么就可以很肯定的说,这个人是得了这个病。 。。。。 当修复了这个bug之后, 你应该把有关这个病的所有bug都验证一遍, 并且最好把全身都检查一遍,以确保没有影响到整个人 软件测试就像是向上帝祷告 你究竟有罪没有,牧师有时会问你有没有罪,求上帝宽恕 按照上帝说:“世人皆有罪,唯有上帝是洁净的” 软件产品代码bug,是存在的。 软件测试就像测试人生 如,一个故事----我为什么没升职 到公司 工作 快三年了,比我后来的同事陆续得到了 升职 的机会

Shell脚本编写

我与影子孤独终老i 提交于 2019-11-27 07:03:46
1. 什么是 Shell 脚本 Shell脚本是利用 shell 的功能所写的一个程序 program,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式、管线命令与数据流重导向等功能,以达到我们所想要的处理目的。 Shell 脚本可以简单的被看成是批处理文件, 也可以被说成是一个程序语言,且这个程序语言由于都是利用 shell 与相关工具指令, 所以不需要编译即可执行,且拥有不错的除错 (debug) 工具,所以,shell可以帮助系统管理员快速的管理好主机。 2.Shell 脚本特性 自动化常用命令 追踪与管理系统的重要工作 简单入侵检测功能 连续指令单一化 简易的数据处理 跨平台支持与学习历程较短 3.创建 shell 脚本 第一步:使用文本编辑器(vim)来创建文本文件 第一行必须包括shell 声明序列:#! #!/bin/bash (告诉系统执行的时候要调用什么解释器) 添加注释 注释以# 开头 (# 都是批注用途,加在#后面的数据都被当做批注文字) 第二步:运行脚本 给予执行权限,在命令行上指定脚本的绝对或相对路径 直接运行解释器,将脚本作为解释器程序的参数运行 例:计算/etc/passwd文件中的第10个用户和第20个用户的ID之和 #!/bin/bash #Filename:ID.sh 文件名:ID.sh

08_如何编写一个程序测试单例模式是否是线程安全的?

我的梦境 提交于 2019-11-27 04:48:10
开启多个线程来分别获取单例,然后打印它们所获取到的单例的hashCode值。若它们获取的单例是相同的(该单例模式的实现是线程安全的),那么它们的hashCode值一定完全一致;若它们的hashCode值不完全一致,那么获取的单例必定不是同一个,即该单例模式的实现不是线程安全的,是多例的。 public class TestThreads extends Thread { @Override public void run ( ) { // 对于不同单例模式的实现,只要更改相应的单例类名及其公有静态工厂方法名即可 int hash = Singleton1 . getSingleton1 ( ) . hashCode ( ) ; System . out . println ( hash ) ; } } public class Test { public static void main ( String [ ] args ) { Thread [ ] threads = new Thread [ 10 ] ; for ( int i = 0 ; i < threads . length ; i ++ ) { threads [ i ] = new TestThreads ( ) ; } for ( int i = 0 ; i < threads . length ; i ++ )

软件测试-测试分类

非 Y 不嫁゛ 提交于 2019-11-27 00:45:59
软件测试-测试分类 一、按软件测试阶段: a. 单元测试 b. 集成测试 c. 系统测试 d. 验收测试 1、单元测试 单元测试的原则: 1、尽可能保证部没测测试用例相互独立 2、一般由代码的编写人员来实施 单元测试的优点: 1、能尽早发现缺陷 2、有利于重构 3、可以简化集成 单元测试的缺陷 1、不可能穷尽测试,即测试用例不可能覆盖所有的执行路径,不可能捕捉到所有的错误 2、每一行代码需要3-5行测试代码来完成测试 单元测试框架 xUnit,比如:JUnit 例:eclipse->new->Java project->(finish)->右键项目->properties->Java Build Path->Add library->选择JUnit->next->选择Junit版本->finish 选中需要测试的类,在上右键->new->junit test case(勾选setUp()和tearDown() )->next( 选择需要测试类中待测试的方法 ) -> finish() 2、集成测试 在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块,子系统或者系统的过程中各部分工作是否达到或者实现相应3技术指标及要求的活动。 集成测试实施方案 1、BIg Bang(一次性集成/大爆炸):把大部分开发模块耦合起来,形成一个完整的软件系统

软件测试的艺术(读书笔记5)

心已入冬 提交于 2019-11-26 23:55:18
下面开始本书第三部分的读书笔记部分 第三部分 软件测试中的人工测试方法   包括第3章 代码检查、走查与评审 第3章 代码检查、走查与评审   1、代码检查和代码走查   代码检查和代码走查是一种人工测试方法,这种测试技术在编码之后计算机测试之前使用,要求人们组成一个小组来阅读和检查程序,可以有效的在项目早期发现错误,并改正错误。代码检查和代码走查有以下的相同点: 三到四人的小组对程序进行审核 成员包括:代码作者、协调人、其他程序专家、测试专家 目标是发现错误而非改正错误 与使用计算机的测试互补   1.1 代码检查   代码检查是以组为单位阅读代码,有一系列的规程和错误检查技术。   1)代码检查小组   通常包括四个人:协调人、代码作者、其他程序设计人员、测试专家。   协调人职责:1.分发材料、安排进程;2.记录发现的错误;3.确保错误随后的改正。   代码作者职责:逐条讲解程序代码的逻辑结构。   其他程序设计人员:提问题,并判断程序是否存在错误。   测试专家:熟悉软件测试,并知道大部分的常见编码错误。   2)检查议程与注意事项   a) 代码评审之前:协调人将程序清单和设计规范分发给其他成员   b) 代码评审时:     1.编码人员对程序进行讲解;     2.其他程序人员提问题,并参考常见编码错误列表分析程序;     3.协调人确保会议高效进行;   c)

TCP异常关闭研究分析

大憨熊 提交于 2019-11-26 23:14:24
版权声明:本文由谢代斌原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/108 来源:腾云阁 https://www.qcloud.com/community 研究测试TCP断开和异常的各种情况,以便于分析网络应用(比如tconnd)断网的原因和场景,帮组分析和定位连接异常掉线的问题,并提供给TCP相关的开发测试人员作为参考。 各个游戏接入都存在一定的掉线问题,而且有的游戏项目的掉线比例还比较高,现在互娱自研游戏的网络接入基本上都用的是tconnd和ProtocalHandler组件(该组件请参考附件的《TSF4G_ProtocalHandler开发指导手册》),因此参与其掉线原因分析和研究。 在参与A项目的掉线问题研究分析过程中,tconnd增加了玩家每个连接的流水日志和ProtocalHandler增加了每个连接的Qos上报日志,通过这些日志记录了每一次连接的断开原因和相关统计数据,其中包括了连接异常断开时TCP的底层错误码。 通过对tconnd的流水日志和ProtocalHandler的Qos日志进行统计分析,发现连接异常断开时TCP的错误码大部分是“ 104: Connection reset by peer ”(Linux下)或“ 10054: An existing connection was

SHELL脚本编程基础

扶醉桌前 提交于 2019-11-26 21:27:56
编程基础 Linus:Talk is cheap, show me the code 程序 程序:算法+数据结构 数据:是程序的核心 数据结构:数据在计算机中的类型和组织方式 算法:处理数据的方式 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令 编程语言:人与计算机之间交互的语言 低级编程语言: 机器:二进制的0和1的序列,称为机器指令。与自然语言差异太大,难懂、难写 汇编:用一些助记符号替代机器指令,称为汇编语言 如:ADD A,B 将寄存器A的数与寄存器B的数相加得到的数放到寄存器A中 汇编语言写好的程序需要汇编程序转换成机器指令 汇编语言稍微好理解,即机器指令对应的助记符,助记符更接近自然语言 高级编程语言: 编译:高级语言-->编译器-->机器代码-->执行 C,C++ 解释:高级语言-->执行-->解释器-->机器代码 shell,python,php,JavaScript,perl 编程基本概念 编程逻辑处理方式: 顺序执行 循环执行 选择执行 shell编程:过程式、解释执行 编程语言的基本结构: 各种系统命令的组合 数据存储:变量、数组 表达式:a + b 语句:if shell脚本基础 shell脚本: 包含一些命令或声明

软件测试的艺术(读书笔记4)

放肆的年华 提交于 2019-11-26 19:33:35
下面继续本书第二部分的读书笔记部分 第二部分 软件测试基础   包括第4章 测试用例设计;第5章 单元(模块)测试;第6章 更高级别的测试 第6章 更高级别的测试(包括第7章 可用性测试)   1、为什么要进行更高级别的测试?   回答更高级别测试是什么之前,需要知道软件产品开发周期模型,可以归纳为7个步骤:      1.需求:由最终用户转换的一系列书面的需求   2.目标:通过同用户评估可行性和成本,将用户需求转换为具体的目标   3.产品规格说明:将目标转换为一个可以与最终用户交互的产品规格说明   4.系统设计:将规格说明进行系统设计,并将系统分割为单独的程序、部件或子系统。   5.程序结构设计:定义模块功能,模块层次结构及模块间接口,对程序结构进行设计   6.模块接口规格说明:设计规格说明,定义每个模块的接口和功能   7.代码:将模块接口规格说明转换为模块的源码   以上7个步骤之间,都包括信息的沟通、理解和转换,如果两个步骤之间的信息沟通和转换发生错误和偏差,程序中都会出现软件错误。而为了减少这种信息沟通和转换时发生的错误,需要在开发周期的不同阶段采用不同的测试方法(更高级别的测试),避免沟通和信息转换的不一致现象的发生。   在这些开发阶段采用的不同的测试方法,包括:模块测试、集成测试、功能测试、系统测试、验收测试、安装测试和可用性测试等。      2