Monday, January 19, 2009

Lattice or Effective Software Test Automation

Lattice: Multivariate Data Visualization with R

Author: Deepayan Sarkar

R is rapidly growing in popularity as the environment of choice for data analysis and graphics both in academia and industry. Lattice brings the proven design of Trellis graphics (originally developed for S by William S. Cleveland and colleagues at Bell Labs) to R, considerably expanding its capabilities in the process. Lattice is a powerful and elegant high level data visualization system that is sufficient for most everyday graphics needs, yet flexible enough to be easily extended to handle demands of cutting edge research. Written by the author of the lattice system, this book describes it in considerable depth, beginning with the essentials and systematically delving into specific low levels details as necessary. No prior experience with lattice is required to read the book, although basic familiarity with R is assumed.

The book contains close to150 figures produced with lattice. Many of the examples emphasize principles of good graphical design; almost all use real data sets that are publicly available in various R packages. All code and figures in the book are also available online, along with supplementary material covering more advanced topics.

Table of Contents:
Preface     vii
Introduction     1
Multipanel conditioning     2
A histogram for every group     2
The Trellis call     3
Kernel density plots     4
Superposition     5
The "trellis" object     6
The missing Trellis display     7
Arranging multiple Trellis plots     7
Looking ahead     7
A Technical Overview of lattice     13
Basic usage     13
The Trellis formula     13
The data argument     14
Conditioning     14
Shingles     15
Dimension and physical layout     16
Aspect ratio     19
Layout     20
Fine-tuning the layout: between and skip     24
Grouped displays     24
Annotation: Captions, labels, and legends     26
More on legends     26
Graphing the data     28
Scales and axes     28
The panel function     30
The panel function demystified     31
Return value     33
Visualizing Univariate Distributions     35
Density Plot     35
Large datasets     37
Histograms     39
Normal Q-Q plots     40
Normality and the Box-Cox transformation     42
Other theoretical Q-Q plots     43
The empirical CDF     44
Two-sample Q-Q plots     44
Box-and-whisker plots     47
Violin plots     47
Strip plots     50
Coercion rules     52
Discrete distributions     53
A note on the formula interface     54
Displaying Multiway Tables     55
Cleveland dot plot     55
Bar chart     57
Manipulating order     61
Bar charts and discrete distributions     63
Visualizing categorical data     65
Scatter Plots and Extensions     67
The standard scatter plot     67
Advanced indexing using subscripts     71
Variants using the type argument     75
Superposition and type     79
Scatter-plot variants for large data     82
Scatter-plot matrix     84
Interacting with scatter-plot matrices     86
Parallel coordinates plot     87
Trivariate Displays      91
Three-dimensional scatter plots     91
Dynamic manipulation versus stereo viewing     95
Variants and panel functions     96
Surfaces and two-way tables     98
Data preparation     99
Visualizing surfaces     102
Visualizing discrete array data     105
Theoretical surfaces     110
Parameterized surfaces     111
Choosing a palette for false-color plots     113
Finer Control
Graphical Parameters and Other Settings     119
The parameter system     119
Themes     120
Devices     120
Initializing a graphics device     121
Reading and modifying a theme     122
Usage and alternative forms     125
The par.settings argument     125
Available graphical parameters     126
Nonstandard settings     129
Non-graphical options     131
Argument defaults     131
Making customizations persistent     131
Plot Coordinates and Axis Annotation     133
Packets and the prepanel function     133
The scales argument     134
Relation     134
Axis annotation: Ticks and labels     135
Defaults     138
Three-dimensional displays: cloud() and wireframe()     139
Limits and aspect ratio     140
The prepanel function revisited     140
Explicit specification of limits     141
Choosing aspect ratio by banking     143
Scale components and the axis function     144
Components     144
Axis     148
Labels and Legends     151
Labels     151
Legends     152
Legends as grid graphical objects     152
The colorkey argument     155
The key argument     156
The problem with settings, and the auto.key argument     158
Dropping unused levels from groups     159
A more complicated example     159
Further control: The legend argument     161
Page annotation     162
Data Manipulation and Related Topics     165
Nonstandard evaluation     165
The extended formula interface     166
Combining data sources with make.groups()     170
Subsetting     173
Dropping of factor levels     176
Shingles and related utilities      177
Coercion to factors and shingles     182
Using shingles for axis breaks     183
Cut-and-stack plots     184
Ordering levels of categorical variables     187
Controlling the appearance of strips     193
An Example Revisited     198
Manipulating the "trellis" Object     201
Methods for "trellis" objects     201
The plot(), print(), and summary() methods     202
The update() method and trellis.last.object()     206
Tukey mean-difference plot     208
Specialized manipulations     210
Manipulating the display     211
Interacting with Trellis Displays     215
The traditional graphics model     215
Interaction     216
Viewports, trellis.vpname(), and trellis.focus()     216
Interactive additions     217
Other uses     223
Extending Trellis Displays
Advanced Panel Functions     229
Preliminaries     229
Building blocks for panel functions     229
Accessor functions     231
Arguments     232
A toy example: Hypotrochoids and hypocycloids     232
Some more examples     235
An alternative density estimate     235
A modified box-and-whisker plot     237
Corrgrams as customized level plots     238
Three-dimensional projections     241
Maps     242
A simple projection scheme     244
Maps with conditioning     245
New Trellis Displays     247
S3 methods     248
S4 methods     249
New functions     251
A complete example: Multipanel pie charts     252
References     255
Index     259

Books about: Bereich-Guide zum Verstehen des Menschlichen Fehlers

Effective Software Test Automation: Developing an Automated Software Testing Tool

Author: Kanglin Li

"If you'd like a glimpse at how the next generation is going to program, this book is a good place to start."
—Gregory V. Wilson, Dr. Dobbs Journal (October 2004)

Build Your Own Automated Software Testing Tool

Whatever its claims, commercially available testing software is not automatic. Configuring it to test your product is almost as time-consuming and error-prone as purely manual testing.

There is an alternative that makes both engineering and economic sense: building your own, truly automatic tool. Inside, you'll learn a repeatable, step-by-step approach, suitable for virtually any development environment. Code-intensive examples support the book's instruction, which includes these key topics:

• Conducting active software testing without capture/replay

• Generating a script to test all members of one class without reverse-engineering

• Using XML to store previously designed testing cases

• Automatically generating testing data

• Combining Reflection and CodeDom to write test scripts focused on high-risk areas

• Generating test scripts from external data sources

• Using real and complete objects for integration testing

• Modifying your tool to test third-party software components

• Testing your testing tool

Effective Software Test Automation goes well beyond the building of your own testing tool: it also provides expert guidance on deploying it in ways that let you reap the greatest benefits: earlier detection of coding errors, a smoother, swifter development process,and final software that is as bug-free as possible. Written for programmers, testers, designers, and managers, it will improve the way your team works and the quality of its products.

No comments:

Post a Comment