Hi
user
Admin Login:
Username:
Password:
Name:
"White Box Debugging" - Debugger für Unittests nutzen
--client
pyconde
--show
pyconde2012
--room saal1a 1425 --force
Next: 8 dev --+ qual --+ prod
show more...
Marks
Author(s):
Reinhard Wobst
Location
Saal 1A
Date
oct Wed 31
Days Raw Files
Start
14:30
First Raw Start
14:13
Duration
00:30.0:00
Offset
0:16:01
End
15:00
Last Raw End
15:05
Chapters
00:00
0:19:11
Total cuts_time
22 min.
https://2012.de.pycon.org/programm/schedule/sessions/57/
raw-playlist
raw-mp4-playlist
encoded-files-playlist
host
archive
public
mp4
svg
png
assets
release.pdf
Vortrag_White_Box_Debugging_Debugger_für_Unittests_nutzen.json
logs
Admin:
episode
episode list
cut list
raw files day
marks day
marks day
image_files
State:
---------
borked
edit
encode
push to queue
post
richard
review 1
email
review 2
make public
tweet
to-miror
conf
done
Locked:
clear this to unlock
Locked by:
user/process that locked.
Start:
initially scheduled time from master, adjusted to match reality
Duration:
length in hh:mm:ss
Name:
Video Title (shows in video search results)
Emails:
email(s) of the presenter(s)
Released:
has someone authorised pubication
Unknown
Yes
No
Normalise:
Channelcopy:
m=mono, 01=copy left to right, 10=right to left, 00=ignore.
Thumbnail:
filename.png
Description:
markdown
"White Box Testing" ist das Testen von internen Zuständen zur Laufzeit, während ubliche Unittests in der Regel nur Funktionen rufen. Man kann aber mittels eines Debuggers White Box Testing durchführen - ein Pythonskript erlaubt dies fur Python mit pdb wie auch für C/C++ - Programme mit gdb. Unittests sind ohne Frage unerlässlich, aber oft aufwändig zu programmieren und beschränkt aussagefähig, da in der Regel nur einzelne Funktionen oder Module als Black Box getestet werden können. Nicht selten ist sogar gesonderter Code notwendig, um sinnvolle Tests zu ermöglichen. Aussagekräftiger und naheliegender wären Tests auf Werte mitten im Code, doch solch eine Funktionalität bietet bisher nur die assert-Anweisung, die bei Fehlern mit einem wenig aussagekräftigen Abbruch endet. Die Idee des Python-Skripts "wbd" ("white box debugging") ist, aus Kommentaren im Quelltext Konfigurationsfiles für Debugger zu erzeugen, so dass an bedingten Breakpoints Tests stattfinden. Beim Fehler landet man gleich im Debugger und kann die Umgebung analysieren. Das funktioniert derzeit für Pythonskripte und C/C++-Programme und ist auch gut als Hilfsmittel beim Debuggen selbst einzusetzen.
Comment:
production notes
File "/usr/lib/python2.7/httplib.py", line 935, in putheader hdr = '%s: %s' % (header, '\r\n\t'.join([str(v) for v in values])) UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 93: ordinal not in range(128) "White Box Testing" ist das Testen von internen Zuständen zur Laufzeit, während übliche Unittests in der Regel nur Funktionen rufen. Man kann aber mittels eines Debuggers White Box Testing durchführen - ein Pythonskript erlaubt dies für Python mit pdb wie auch für C/C++ - Programme mit gdb. Unittests sind ohne Frage unerlässlich, aber oft aufwändig zu programmieren und beschränkt aussagefähig, da in der Regel nur einzelne Funktionen oder Module als Black Box getestet werden können. Nicht selten ist sogar gesonderter Code notwendig, um sinnvolle Tests zu ermöglichen. Aussagekräftiger und naheliegender wären Tests auf Werte mitten im Code, doch solch eine Funktionalität bietet bisher nur die assert-Anweisung, die bei Fehlern mit einem wenig aussagekräftigen Abbruch endet. Die Idee des Python-Skripts "wbd" ("white box debugging") ist, aus Kommentaren im Quelltext Konfigurationsfiles für Debugger zu erzeugen, so dass an bedingten Breakpoints Tests stattfinden. Beim Fehler landet man gleich im Debugger und kann die Umgebung analysieren. Das funktioniert derzeit für Pythonskripte und C/C++-Programme und ist auch gut als Hilfsmittel beim Debuggen selbst einzusetzen. <?xml version='1.0' encoding='UTF-8'?> <ns0:entry xmlns:ns0="http://www.w3.org/2005/Atom" xmlns:ns1="http://schemas.google.com/g/2005" xmlns:ns2="http://search.yahoo.com/mrss/" xmlns:ns3="http://gdata.youtube.com/schemas/2007" xmlns:ns4="http://purl.org/atom/app#"><ns0:category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video" /><ns0:category label="Education" scheme="http://gdata.youtube.com/schemas/2007/categories.cat" term="Education" /><ns0:id>http://gdata.youtube.com/feeds/api/videos/26tmYQk2vI8</ns0:id><ns0:author><ns0:name>PyConDE</ns0:name><ns0:uri>https://gdata.youtube.com/feeds/api/users/PyConDE</ns0:uri></ns0:author><ns0:content type="text" /><ns0:updated>2012-11-02T10:20:55.000Z</ns0:updated><ns0:published>2012-11-02T10:20:55.000Z</ns0:published><ns1:comments><ns1:feedLink countHint="0" href="https://gdata.youtube.com/feeds/api/videos/26tmYQk2vI8/comments?client=cfkarsten" rel="http://gdata.youtube.com/schemas/2007#comments" /></ns1:comments><ns2:group><ns2:keywords /><ns2:description type="plain" /><ns2:title type="plain">"White Box Debugging" - Debugger für Unittests nutzen</ns2:title><ns3:duration seconds="0" /><ns2:content duration="0" expression="full" isDefault="true" medium="video" type="application/x-shockwave-flash" url="https://www.youtube.com/v/26tmYQk2vI8?version=3&f=user_uploads&c=cfkarsten&d=Aarb2r5skm2_yNTuKEinXdAO88HsQjpE1a8d1GxQnGDm&app=youtube_gdata" ns3:format="5" /><ns2:thumbnail height="360" time="00:00:00" url="http://i.ytimg.com/vi/26tmYQk2vI8/0.jpg" width="480" /><ns2:thumbnail height="90" time="00:00:00" url="http://i.ytimg.com/vi/26tmYQk2vI8/1.jpg" width="120" /><ns2:thumbnail height="90" time="00:00:00" url="http://i.ytimg.com/vi/26tmYQk2vI8/2.jpg" width="120" /><ns2:thumbnail height="90" time="00:00:00" url="http://i.ytimg.com/vi/26tmYQk2vI8/3.jpg" width="120" /><ns2:category label="Education" scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Education</ns2:category><ns2:category scheme="http://gdata.youtube.com/schemas/2007/developertags.cat">pyconde</ns2:category><ns2:category scheme="http://gdata.youtube.com/schemas/2007/developertags.cat">pyconde2012</ns2:category><ns2:category scheme="http://gdata.youtube.com/schemas/2007/developertags.cat">ReinhardWobst</ns2:category><ns2:player url="https://www.youtube.com/watch?v=26tmYQk2vI8&feature=youtube_gdata_player" /></ns2:group><ns0:title type="text">"White Box Debugging" - Debugger für Unittests nutzen</ns0:title><ns4:control><ns4:draft>yes</ns4:draft><ns3:state name="processing" /></ns4:control><ns0:link href="https://www.youtube.com/watch?v=26tmYQk2vI8&feature=youtube_gdata" rel="alternate" type="text/html" /><ns0:link href="https://gdata.youtube.com/feeds/api/videos/26tmYQk2vI8/responses?client=cfkarsten" rel="http://gdata.youtube.com/schemas/2007#video.responses" type="application/atom+xml" /><ns0:link href="https://gdata.youtube.com/feeds/api/videos/26tmYQk2vI8/ratings?client=cfkarsten" rel="http://gdata.youtube.com/schemas/2007#video.ratings" type="application/atom+xml" /><ns0:link href="https://gdata.youtube.com/feeds/api/videos/26tmYQk2vI8/complaints?client=cfkarsten" rel="http://gdata.youtube.com/schemas/2007#video.complaints" type="application/atom+xml" /><ns0:link href="https://gdata.youtube.com/feeds/api/videos/26tmYQk2vI8/related?client=cfkarsten" rel="http://gdata.youtube.com/schemas/2007#video.related" type="application/atom+xml" /><ns0:link href="https://gdata.youtube.com/feeds/api/users/pyconde/uploads/26tmYQk2vI8?client=cfkarsten" rel="self" type="application/atom+xml" /><ns0:link href="https://gdata.youtube.com/feeds/api/users/pyconde/uploads/26tmYQk2vI8?client=cfkarsten" rel="edit" type="application/atom+xml" /></ns0:entry>
2012-10-31/14_13_59.dv
Apply:
14:13:59 - 14:30:54 ( 00:16:55 )
S:
14:13:59 -
E:
14:30:54
D:
00:16:55
show more...
vlc ~/Videos/veyepar/pyconde/pyconde2012/dv/saal1a/2012-10-31/14_13_59.dv :start-time=00.0 --audio-desync=0
Raw File
Cut List
14:13:59
seconds: 0.0
Wall: 14:13:59
Duration
00:16:55
14:30:54
seconds: 0.0
Wall: 14:13:59
Comments:
mp4
mp4.m3u
dv.m3u
Split:
Sequence:
:
delete
2012-10-31/14_30_55.dv
Apply:
14:30:55 - 14:50:06 ( 00:19:11 )
S:
14:30:55 -
E:
14:50:06
D:
00:19:11
show more...
vlc ~/Videos/veyepar/pyconde/pyconde2012/dv/saal1a/2012-10-31/14_30_55.dv :start-time=00.0 --audio-desync=0
Raw File
Cut List
14:30:55
seconds: 0.0
Wall: 14:30:55
Duration
00:19:11
14:50:06
seconds: 0.0
Wall: 14:30:55
Comments:
mp4
mp4.m3u
dv.m3u
Split:
Sequence:
:
delete
2012-10-31/14_50_06.dv
Apply:
14:50:06 - 14:53:33 ( 00:03:27 )
S:
14:50:06 -
E:
14:53:33
D:
00:03:27
show more...
vlc ~/Videos/veyepar/pyconde/pyconde2012/dv/saal1a/2012-10-31/14_50_06.dv :start-time=00.0 --audio-desync=0
Raw File
Cut List
14:50:06
seconds: 0.0
Wall: 14:50:06
Duration
00:03:27
14:53:33
seconds: 0.0
Wall: 14:50:06
Comments:
mp4
mp4.m3u
dv.m3u
Split:
Sequence:
:
delete
2012-10-31/14_53_33.dv
Apply:
14:53:33 - 15:05:21 ( 00:11:48 )
S:
14:53:33 -
E:
15:05:21
D:
00:11:48
show more...
vlc ~/Videos/veyepar/pyconde/pyconde2012/dv/saal1a/2012-10-31/14_53_33.dv :start-time=00.0 --audio-desync=0
Raw File
Cut List
14:53:33
seconds: 0.0
Wall: 14:53:33
Duration
00:11:48
15:05:21
seconds: 0.0
Wall: 14:53:33
Comments:
mp4
mp4.m3u
dv.m3u
Split:
Sequence:
:
delete
Rf filename:
root is .../show/dv/location/, example: 2013-03-13/13:13:30.dv
Sequence:
get this:
check and save to add this
2012-10-31/14_13_59.dv
2012-10-31/14_30_55.dv
2012-10-31/14_50_06.dv
2012-10-31/14_53_33.dv
Veyepar
Video Eyeball Processor and Review