博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
近期待整理的资料
阅读量:5783 次
发布时间:2019-06-18

本文共 5952 字,大约阅读时间需要 19 分钟。

hot3.png

Learning Python testing

 

单元测试的艺术

 

作者第一次项目失败的原因:编写的测试过于脆弱, 名字不够清楚,还有的测试互相依赖。

单元测试是代码(通常是方法),它调用其他代码,检验假定的正确性。如果假定错误的,单元测试失败,反之成功。

SUT system under test,被测系统,也有 CUT(class under test or code under test)的说法。

单元调用系统公共方法到产生结果之间的部分。结果可以是:返回值(非void)、系统的状态或行为改变、不受控制的第三方系统调用。

单元测试的范围可以小到一个方法,大到多个类。

好的单元测试:

自动化,可重复执行;
很容易实现;
长久性;
一键运行;
运行速度很快;
结果应该是稳定;
能完全控制被测单元;
完全隔离;
失败时的信息能帮助问题定位。

任何测试,如果它运行速度不快,结果不稳定,或者要用到被测试单元的真实依赖(时间、网络、数据库、线程或随机数产生器),就认为它是集成测试。

测试驱动开发:http://osherove.com/blog/2007/10/8/the-various-meanings-of-tdd.html

 

Pragmatic Unit Testing in Java 8 with JUnit -2015.pdf

 

调试时间是多少、定位bug时间、重新验证代码正确性。

assertEquals的精度。
自定义断言,暂不涉及。

 

 

 

至67页。

真实对象属性具有不可确定的行为(产生不可预测的结果、如股票行情)。

真实对象很难被创建(比如支付接口)
真实对象运行速度很慢
真实对象涉及用户界面
测试需要询问真实对象是如何被调用的(比如验证回调函数的调用)
真实对象还未就绪

使用接口描述对象
实现接口
mock中实现接口

好的测试 A-TRIP
自动化Automatic: 调用测试自动化和检查结果自动化。
彻底的Thorough:    注意BUG群集现象
可重复的Repeatable:
独立的Independent
专业的Professional: 像开发一样写测试代码。

修正bug时改进测试、引入bug证明测试,比如TDD。

 

 

 

 

 

Learn Android Studio - 2015.pdf

1,Android Studio简介

安装JDK

仿真(emulation)比模拟(simulation)更接近真实。x86_64的仿真需要硬件加速,没有硬件加速的请使用armeabi。创建虚拟机的参考:http://phonearena.com/。其他推荐Genymotion。

连手机的USB驱动可以参考:developer.android.com/tools/extras/oem-usb.html#Drivers。可能需要adb start-server,驱动也可能要重启才能生效。

2,浏览Android Studio

切换TAB: Alt+Right-Arrow | Ctrl+Right-Arrow 或 Alt+Left-Arrow | Ctrl+Left-Arrow keys

Marker Bar: 告警、编译错误、未提交内容、查找结果、书签位置。

Project Tool Window三种模式: Project, Packages和Android,默认为Android。Android和Project比较常用,Android会隐藏一些目录。右键点击菜单的重要选项:Copy Path, File Path及Show in Explorer。

Structure Tool Window:用于文件内导航。

Favorites Tool Window:逻辑分组文件。F11 (F3 on Mac)创建的书签和单击gutter创建的断点也在这里。
TODO Tool Window:
Commander Tool Window
The Main Menu Bar
The Toolbar
The Navigation Bar
The Status Bar:
    点击Toggle Margins button隐藏边框,移动到上面显示上下文菜单。
    message area显示并发执行信息,单击 message area打开事件。
    Editor cursor position:显示行列数,单击可以指定要去的行和列。
    line separator area:换行格式,Git会自动转换CRLF为LF。单击可以选择。
    text format area:编码格式,单击可以选择。
    file access indicator area: 单击可以选择文件写权限。
    The Highlighting Level:点击高亮模式。默认为Inspections,关注错误和告警。其他选项有Syntax和None。
    
通用操作:
    Selecting Text:双击、左键拖拉、Shift+Down-Arrow或Shift+Up-Arrow、三次左键选择行,Ctrl+A | Cmd+A、Ctrl+W | Alt+Up-Arrow选择整个单词。
    Undo and Redo:Ctrl+Z| Cmd+Z and Ctrl+Shift+Z | Cmd+Shift+Z,记录300次。
    Finding Recent Files:View ➤ Recent Files或Ctrl+E | Cmd+E。默认50个,可以在 File ➤ Settings ➤ Limits ➤ Editor ➤ Recent Files Limit设定。
    Traversing Recent Navigation Operations:  Ctrl+Alt+Left-Arrow | Cmd+Alt+Left-Arrow or Ctrl+Alt+Right-Arrow| Cmd+Alt+Right-Arrow。
    Cutting, Copying, and Pasting:
        Command PC Keys Mac Keys
        Cut Ctrl+X Cmd+X
        Copy Ctrl+C Cmd+C
        Paste Ctrl+V Cmd+V
        Extended Paste Ctrl+Shift+V Cmd+Shift+V
        Copy Path Ctrl+Shift+C Cmd+Shift+C
        Copy Reference Ctrl+Alt+Shift+C Cmd+Alt+Shift+C
        
至39页末尾。
3,在Android Studio中编程:
    查找类:Ctrl+N | Cmd+O
    显示行数:Help ➤ Find Action. Type show line numbers
    http://im.myoas.com:10703/g1/M00/38/48/rBBmYVcW_FaASS1kAAE2qCbSJUA560.png?w=1306&h=636&s=79528
    代码折叠的快捷方式:
    
    展开     Ctrl+加号
    折叠    Ctrl+减号
    全部展开 Ctrl+Shift+加号
    全部折叠    Ctrl+Shift+减号    
    折叠开关    Ctrl+点
    
    相关配置:Settings ➤ Editor ➤ Code Folding
    
    
代码完成:    
    
默认代码完成,输入时自动发生。 
基本代码完成,类似于默认代码完成,显示Javadoc窗口
智能型代码,显示Javadoc并提供相关建议。
循环展示 针对已有单词。

Default None 可用上下箭头选择。

Basic Ctrl+Space Ctrl+Space B
SmartType Ctrl+Shift+Space Ctrl+Shift+Space
Cyclic Expand Word(前向)    Alt+/ Alt+/
Cyclic Expand Word(后向)Alt+Shift+/ Alt+Shift+?
到50页。

4,代码重构

右键菜单有Refactor选项。可以改变name、Signature、Migration(改变返回的数据类型等)、Move(有三种方法)、Copy、Safe Delete、Extract(Variable、Constant、Field、Parameter、Method)

高级重构:

    Push Members Down and Pull Members Up
    Replace Inheritance with Delegation
    Encapsulate Fields
    Wrap Method Return Value
    Replace Constructor with Factory Method
    Convert Anonymous to Inner
    
5,Reminders Lab: Part 1    

git clone https://bitbucket.org/csgerber/reminders.git

导入git: VCS ➤ Import into Version Control ➤ Create Git Repository

新增文件到git, Ctrl+Alt+A | Cmd+Alt+A 或者右键-> git 添加。

Ctrl+K | Cmd+K 显示提交窗口。

构建UI

    

 

Jenkins Continuous Integration Cookbook, 2nd Edition - 2015.pdf

插件:( https://wiki.jenkins-ci.org/display/JENKINS/Publish+Over+SSH+Plugin

Maven基于profile区分环境。

 https://wiki.jenkins-ci.org/display/JENKINS/Promoted+Builds+Plugin 可用于哪些版本需要测试部测试。

 
 maven构建过程介绍:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference
 
 创建maven模板( http://Maven.apache.org/guides/introduction/introduction-to-archetypes.html 后者直接创建 pom.xml
 
 绘图插件:( https://wiki.jenkins-ci.org/display/JENKINS/Plot+Plugin  https://wiki.jenkins-ci.org/display/JENKINS/
Analysis+Collector+Plugin   http://docs.codehaus.org/display/SONAR/Jenkins+Plugin

执行测试的组件: Sloccount plugin ( https://wiki.jenkins-ci.org/display/JENKINS/

SLOCCount+Plugin ) and task scanner plugin ( https://wiki.jenkins-ci.org/
display/JENKINS/Task+Scanner+Plugin ). 前者依赖  static analysis utilities。

环境变量处理:EnvFile

plugin ( https://wiki.jenkins-ci.org/display/JENKINS/Envfile+Plugin )
and the EnvInject plugin ( https://wiki.jenkins-ci.org/display/JENKINS/
EnvInject+Plugin ).

读取属性: ( http://mojo.codehaus.org/properties-

maven-plugin/ ).

JSP编译:( http://www.eclipse.org/jetty/documentation/current/jetty-jspc-

maven-plugin.html

部署:Maven Wagon plugin ( http://mojo.codehaus.org/wagon-maven-plugin/

aptly-named Deploy plugin ( https://wiki.
jenkins-ci.org/display/JENKINS/Deploy+Plugin ).

编程规范参考: http://www.oracle.com/technetwork/java/codeconventions-150003.pdf

汇总报告: https://wiki.jenkins-ci.org/display/JENKINS/Violations

Analysis Collector plugin ( https://wiki.jenkins-ci.org/display/JENKINS/Analysis+Collector+Plugin )

软件度量
https://en.wikibooks.org/wiki/Introduction_to_Software_Engineering/Quality/Metrics

yum -y install sloccount

html: ( https://wiki.jenkins-ci.org/display/JENKINS/Unicorn+Validation+Plugin
( https://wiki.jenkins-ci.org/display/JENKINS/Plot+Plugin

JavaNCSS plugin ( https://wiki.jenkins-ci.org/display/JENKINS/

JavaNCSS+Plugin ).

Sonar plugin ( http://docs.codehaus.org/display/SONAR/

Jenkins+Plugin ).

Redis本质 - 2015

作者博客:

https://github.com/hltbra
https://github.com/dayvson

 

审稿;

http://blog.jupo.org/

 

 

转载于:https://my.oschina.net/u/1433482/blog/677230

你可能感兴趣的文章
Uva 839 Not so Mobile
查看>>
30款超酷的HTTP 404页面未找到错误设计
查看>>
程序猿必备 MyEclipse2013-2014系列
查看>>
Windows 无法启动MongoDB服务 错误1067:进程意外终止
查看>>
在图里, 你看到了什么? 5秒内看到的话, 你很牛
查看>>
java中ArrayList 、LinkList区别
查看>>
Spring ’14 Wave Update: Installing Dynamics CRM on Tablets for Windows 8.1
查看>>
利用rand7()构造rand10()
查看>>
MySQL 备份与恢复
查看>>
吃午饭前,按书上的代码写会儿--Hunt the Wumpus第一个版本
查看>>
easyui中combobox的值改变onchang事件
查看>>
Eclipse魔法堂:任务管理器
查看>>
一周自学动态站点设计
查看>>
eclipse中查看某个方法(函数)被谁调用
查看>>
poj万人题
查看>>
Android-Universal-Image-Loader
查看>>
Java从零开始学四(数据类型)
查看>>
Android 从硬件到应用:一步一步向上爬 4 -- 使用 JNI 方法调硬件驱动
查看>>
windows 如何查看端口占用情况?
查看>>
根据ImageView的大小来压缩Bitmap,避免OOM
查看>>