Software testing is an investigation conducted to provide stakeholders with information about the qua
|
|
January 16 · Issue #17 · View online
Email digest of dylanninin
|
|
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. – Wikipedia
|
|
|
Doing Terrible Things To Your Code
Code itself was rarely the problem, but what I clearly had no idea about is testing my code.
I slowly, painfully learned that the truly difficult part of coding is dealing with the thousands of ways things can go wrong with your application at any given time - most of them user related.
When the author just graduated from college, he had a very interesting experience with his first colleague: A key turning point in every professional programmer’s working life is when you release you are your own worst enemy, and the only way to mitigate that threat is to embrace it. Hopefully, every newbie will go through this purgatory in time, although more will never do.
|
Testing, for people who hate testing / fuzzy notepad
I love having tests. I hate writing them.
It’s tedious. It’s boring. It’s hard, sometimes harder than writing the code. Worst of all, it doesn’t feel like it accomplishes anything.
So I usually don’t do it. I know, I know. I should do it. I should also get more exercise and eat more vegetables.
A nice post about testing, mainly on how to get the right attitude - hating testing less; and then on what to test, how to test and some troublesome cases, but most of all at last: Just test something. Going from zero tests to one test is an infinite improvement.
|
Design for Testability - Made of Bugs
When designing a new software project, one is often faced with a glut of choices about how to structure it. What should the core abstractions be? How should they interact with each other?
In this post, I want to argue for a design heuristic that I’ve found to be a useful guide to answering or influencing many of these questions:
Optimize your code for testability
A design heuristic: good architectures do not happen by accident; they happen by design. Design for testability will benefit you a lot: you get good tests and better code.
|
测试的道理 - 正义的花生
我也写测试,但我的测试方式比“测试教条主义者”们的方式聪明很多。在我心目中,代码本身的地位大大的高于测试。我不忽视测试,但我不会本末倒置,过分强调测试,我并不推崇测试驱动开发(TDD)。我知道该测试什么,不该测试什么,什么时候该写测试,什么时候不该写,什么时候应该推迟测试,什么时候完全不需要测试。因为这个原因,再加上高强的编程能力,我多次完成别人认为在短时间不可能完成的任务,并且制造出质量非常高的代码。 现在我就把这些自己领悟到的关于测试的道理总结一下,其中有一些是鲜为人知或者被误解的。 听一听王垠讲述测试的道理和观点,主要呼吁大家理性对待测试,而非盲目、教条、本末倒置。
|
|
Alpine Linux Introduction Tutorial · johnpfeiffer
Alpine Linux is a minimalist secure linux distro.
In security terms less “footprint” often means less vectors of attack and less complexity to analyze for vulnerabilities.
Alpine Linux is becoming a preferred base OS for many foundational official Docker Images (python, php, ruby, nginx, redis, haproxy, go) since downloading many large Docker Images (aka Deploying Docker Containers) can saturate the network at scale.
The latest alpine image is around 4MB, which is much smaller than debian or ubuntu. Last few days, I’ve worked out a customized api called giflossy about GIF lossy compression for qiniu, which is based on alpine docker image and some existed utilities.
|
File crash consistency and filesystems are hard
I haven’t used a desktop email client in years. None of them could handle the volume of email I get without at least occasionally corrupting my mailbox. Pine, Eudora, and outlook have all corrupted my inbox, forcing me to restore from backup. How is it that desktop mail clients are less reliable than gmail, even though my gmail account not only handles more email than I ever had on desktop clients, but also allows simultaneous access from multiple locations across the globe? Distributed systems have an unfair advantage, in that they can be robust against total disk failure in a way that desktop clients can’t, but none of the file corruption issues I’ve had have been from total disk failure. Why has my experience with desktop applications been so bad? As an application developer, writing to files safely is hard enough that it should be done via some kind of library and/or database, not by directly making syscalls.
|
|
GitHub - c4pt0r/fwd: yet another dual reverse proxy
周一早上突然发现不用上班,早起憋了俩小时写了个小程序 fwd,一个双重 TCP 反向代理。因为家里的 IOT 设备太多,光树莓派就好几个,还有各种插头什么的,都躲在路由后边太浪费了,正好手上又有一个闲置的 VPS 和公网 IP,正好利用起来。代码渣,能用就好 #我当然知道有 ssh 隧道这样的东西,偶尔手痒而已#
Implemented with golang by Dongxu_Huang, the CTO & Co-founder of PingCAP.
|
|
Basic Message Queue with Redis | Flask (A Python Microframework)
For all your queuing needs there is Flask-Celery but if you just want a very basic queue functionality to get started you can build yourself something on top of redis very easily. A tiny message queue, with a decorator to easily queue your long running jobs and a daemon to execute these coming jobs one by one. That’s it. There’re so many message queue; if you want a lightweight one, rq will be an alternative, which is inspired by this snippet.
|
Pub/Sub – Redis
SUBSCRIBE, UNSUBSCRIBE and PUBLISH implement the Publish/Subscribe messaging paradigm where (citing Wikipedia) senders (publishers) are not programmed to send their messages to specific receivers (subscribers). Rather, published messages are characterized into channels, without knowledge of what (if any) subscribers there may be. Subscribers express interest in one or more channels, and only receive messages that are of interest, without knowledge of what (if any) publishers there are. This decoupling of publishers and subscribers can allow for greater scalability and a more dynamic network topology. Pub/Sub is a very import and practical feature of Redis, but be aware of its database scope and message ordering.
|
|
ruby - Why is sum so much faster than inject(:+)? - Stack Overflow
For an integer range :
-
Enumerable#sum returns (range.max-range.min+1)*(range.max+range.min)/2
-
Enumerable#inject(:+) iterates over every element.
It’s easy to understand the short answer, but the theory under the hood is interesting.
|
|
别瞎忙活了,小程序不适合你 keso怎么看
1月9日,在iPhone正式发布10周年的这一天,微信小程序如期而至。正如乔布斯说Apple重新发明手机一样,微信团队选择在这一天上线酝酿了一年之久的小程序,既是向史上最伟大的“工具”之一的iPhone致敬,也暗含着重新发明点什么的意味。
没有场景就没有小程序,这正是目前大多数已推出的小程序的命门所在——它们没有合适的触发场景。 近来最热火朝天的当属小程序,不对,应该是产品、运营、媒体等等,颇有第二春迟迟到来之感。 喜欢追潮流、评热点的你,今天小程序了吗?
|
Did you enjoy this issue?
|
|
|
|
If you don't want these updates anymore, please unsubscribe here.
If you were forwarded this newsletter and you like it, you can subscribe here.
|
|
|