[Hamara-devel] testing and QA, maybe something to think about when fund-rasing as well
shirish
shirish at hamaralinux.org
Tue Jun 16 15:26:08 BST 2015
Hi all,
First of all, I hope everybody has gone through yesterday's IRC logs so
that everybody is on the same page. As soon as I get some more details
of the product and share it with Vikas, somebody from the team would
have to go and talk to them (probably a month from now) . As you are
geographically so much closer situated to them it would make more sense
for somebody on the team to talk to them rather than me. It doesn't make
sense for me to come all the way over there when you guys can easily
talk to them.
While I was talking to him it did struck me that we haven't talked about
QA and testing at all apart from some passing references by Aparna about
using testopia we haven't really discussed anything.
In the GNU/Linux world there are all kinds of tests that you could do
for an application, library or whatever.
For instance, there is this :-
https://github.com/linux-test-project/ltp
This is more towards the kernel rather than the desktop but the idea
remains the same. There is lot to be gained there as in expertise but
also quite a bit of investment as in time.
I am sure people are aware of tools like gdb where people can use to get
stacktraces when crashes happen but also use them to step through a
program using breakpoints. There are similar tools for almost all the
languages and bindings which perform similar task.
There is also valgrind where you can see if the memory is leaking
somewhere but again needs lot of time, energy and of course a somewhat
beefier system so that you can use the program and see if there is a
memory leak, report it. Again lot of time and patience is needed.
There is also the non-free phoronix-test-suite which also does similar
activity as well
─[$] aptitude show phoronix-test-suite
Package: phoronix-test-suite
State: installed
Automatically installed: no
Version: 5.2.1-1
Priority: optional
Section: non-free/utils
Maintainer: Debian QA Group <packages at qa.debian.org>
Architecture: all
Uncompressed Size: 2,637 k
Depends: php5-cli, php5-gd
Description: comprehensive testing and benchmarking platform
The Phoronix Test Suite is the most comprehensive testing and
benchmarking platform available for the Linux operating system. This
software is designed to effectively carry out both qualitative and
quantitative benchmarks in a clean, reproducible, and easy-to-use
manner. The Phoronix Test Suite consists of a lightweight processing
core (pts-core) with each benchmark consisting of an XML-based profile
with related resource scripts. The process from the benchmark
installation, to the actual benchmarking, to the parsing of important
hardware and software components is heavily automated and completely
repeatable, asking users only for confirmation of actions.
Homepage: http://www.phoronix-test-suite.com/
It again needs a somewhat beefier machine, the only downer is the
results are limited to phoronix.com
I am sure people might have heard of black-box testing where you have
sort of random tests happening on the product or system, both the input
and output would be fuzzy but at times pretty useful.
Such kind of tools have also come to the FOSS world as well. See for e.g. :-
[$] aptitude show fuzz
Package: fuzz
State: not installed
Version: 0.6-14
Priority: optional
Section: devel
Maintainer: Jari Aalto <jari.aalto at cante.net>
Architecture: amd64
Uncompressed Size: 82.9 k
Depends: libc6 (>= 2.12)
Description: stress-test programs by giving them random input
The fuzz generator is designed to attack certain kinds of software and
expose one particular kind of bug common in software. This is the
situation where the programmer implicitly makes some assumptions about
the data stream that the program will be parsing. If the data stream is
substantially different then the program might not be able to deal with it.
Homepage: http://freshmeat.net/projects/fuzz
I will share an example of a tool I use from time to time :-
[$] dpkg -l youtube-dl
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture
Description
+++-==============================-====================-====================-=================================================================
ii youtube-dl 2015.06.04.1-1 all
downloader of videos from YouTube and other sites
It's a command-line tool to download videos or/and audio from youtube
and others.
I use it to download videos as just like wget if it gets disconnected I
can resume it.
Anyways, I use perhaps 5-10% of the different options the application
can do. Now while that part gets tested there are many within which
might bit-rot, become stale or something. For e.g. there are something
like 60-70 sites from which youtube-dl can download and about 10 odd
ways in which the audio and video can download. You can see the
permutations and combinations that are and can be there.
With a bit of luck, the tool may find if something is broken. Again
there would be significant time investment for learning, understanding,
testing and seeing if something comes out of it.
Just like documentation, testing and QA have been neglected because of
many reasons :-
a. It is boring, not lot of "action"
b. Requires significant time without anything to show
c. Have to also be able to distinguish false positives and tell upstream
about those so it's fixed in the next version/s.
There are many many more tools which look at the problem/issue from
various angles.
I do hope that if and when we do fund-raising we also think of testing
and QA, budget for it as well as talk about it in fund-raising as well.
And I haven't even got into auditing which is a different ball-game
altogether.
Once we have the alpha, these tools can come into play and people can
use it to see what works, what breaks and generally have a feel for tools.
Look forward to feedback.
--
Regards,
Shirish Agarwal,
Community Lead,
Hamaralinux.org
More information about the Hamara-devel
mailing list