Software Testing Foundations, 4th Edition – Updated study guide for Certified Tester Exam – #bookreview

Software Testing Foundations, 4th Edition

A Study Guide for the Certified Tester Exam

Andreas Spillner, Tilo Linz, Hans Schaefer

(Rocky Nook - paperback, Kindle

 

Worldwide, more than 300,000 software testers now have certifications recognized by the International Software Testing Qualifications Board (ISTQB).

“The ISTQB Certified Tester qualification scheme has three steps,” the authors note. “The basics are described in the Foundation Level curriculum (syllabus). Building on this is the Advanced Level certificate, showing a deeper knowledge of testing and evaluation. The third level, the Expert Level, is intended for experienced professional software testers and consists of several modules about different special topics.”

This newly updated study guide covers subjects on the Certified Tester Exam at the Foundation Level. The major topics are:

  • Fundamentals of Testing
  • Testing in the Software Life Cycle
  • Static Test
  • Dynamic Analysis – Test Design Techniques
  • Test Management

Appendices cover standardized test plans, offer exercises for each chapter that follow the introduction, and provide a glossary of terms, many of which are recognized by the ISTQB.

“Testing has no tradition for using standardized terminology,” the writers caution. “Thus, the test plan should contain an explanation of the testing terms used in the project. There is a high danger that different people will have different interpretations of testing terms. For example, just ask several people involved in the project for the definition of the term load testing.”

The three writers point out that “[t]he Certified Tester Foundation Level syllabus version 2011 forms the basis of this book . A few updates to the syllabus, which is due to be released in 2015, are noted in the book. The respective national boards may create and maintain additional national versions of the syllabus. These may contain minor deviations from the English original, such as, for example, references to local standards. The national boards coordinate and guarantee mutual compatibility of their curricula and exams. In this context, the responsible board is the International Software Testing Qualifications Board.”

Whether you plan to seek formal ISTQB certifications or just up your game as a software tester, Software Testing Foundations can be an excellent how-to guide. Many aspects of software testing–a complex and often underappreciated field–are covered. Overall, the book is well-organized and written clearly, and its illustrations, while somewhat sparse, are adequate to the task.

Si Dunn

 

Play for Java – Good intro to the Play 2 Java web framework – #programming #bookreview

Play for Java

Nicolas Leroux and Sietse de Kaper

(Manning, paperback)

 

“There are,” co-author Nicolas Leroux writes, ” many Java web frameworks, but most of them have a key flaw: they try to hide the web behind an abstraction layer, rather than embracing it. That is the most important difference between Play and most other Java web frameworks (Servlets, we’re looking at you!).”

His writing partner, Sietse de Kaper,  adds: “Play ‘gets it.’ For ‘it,’ in this case, a lot of things can be substituted. Play ‘gets’ HTTP and the web in general, how developing web application works, what makes a nice and clean API, and more. This was clear from the early Play 1 beta versions, and that’s why we’ve used it on many projects since 1.0 came out. It didn’t disappoint. Now, with Play 2, Play continues to improve web development for the Java platform.”

Their new book from Manning is nicely written, adequately illustrated and structured properly to help newcomers get started with Play and with basic web application development. Play for Java also can help experienced web app developers quickly get up to speed quickly with this powerful development platform.

You start by creating and modifying the ubiquitous “Hello world!” application. Then you spend the remaining chapters developing, expanding and enhancing a warehouse management application, one designed to meet specific requirements within a made-up company. “Enterprise applications usually live inside the IT department and are usually hosted within the organization,” Leroux and de Kaper explain. Indeed, businesses may have several or many enterprise applications serving specific purposes, and those apps often do not communicate with each other.

As both writers note: “Web developers are used to interacting with their applications through the browser. With Play, you can also use the console to interact with your web application’s development environment and build system. This is important for both quick experiments and automating things.”

The web app framework Play is, indeed, fun to play with–and work with. For example, it is very good at showing you exactly (ona browser screen) where you have made a keystroke mistake or other blunder in your code. And the words  “Compilation error” on the screen display can’t be missed. Indeed, they can be read from across a room. (Fortunately, in my office, so no one sees them but me.)

If you decide to download Play and give it a try, be sure you (1) have Java installed correctly and (2) know how to set PATHs correctly on your Windows, Linux, or Mac machine. (I had a lingering Java glitch in one of my machines, and I nearly flung a Windows 7 PC into a wall in frustration. But I finally found the problem and fixed it, and Play immediately popped to life as shown in the book. Meanwhile, Play installed smoothly on a Windows 8.1 machine and an ex-XP PC now running Ubuntu.) 

The authors show how to use Play with three IDEs: Eclipse, NetBeans and IntelliJ. Or, if you prefer, you can stick with the Play console and a text editor such as Notepad++ (my current favorite). And they repeatedly emphasize that (1) you should not worry that their Java framework called Play actually is written in Scala and (2) you will encounter some bits of Scala while working with template files.

“Any template language has structures you need to know to build your templates, and Scala templates are no different,” they explain. “Once you know what you have to do to, for example, iterate over a collection or insert a variable value somewhere, you know all you have to know to use that feature. You don’t have to think of it as Scala if you don’t want to. Think of it as another template language.” (Actually, Scala is not scary at all once you’ve spent a little time with it or taken an online class.)

Play supports the optional use of some compiled assets, and “[o]ut of the box, Play 2 comes with support for LESS, CoffeeScript, and Google’s Closure compiler,” the co-authors note.

According to Playframework.org, Play is built on Akka and offers “a lightweight, stateless, web-friendly architecture.” It also offers built-in testing tools and speedy “hit refresh” workflow capabilities.

Whether you are an experienced web app developer, a newcomer, a student or a hobbyist programmer, it can be serious fun to work with–or play with–Play. And Nicolas Leroux’s and Sietse de Kaper’s Play for Java can be exactly the well-tuned guide you need to learn Play 2.

 – Si Dunn

 

 

 

 

 

 

Enterprise Application Development with Ext JS and Spring – (And a lot more!) – #programming #bookreview

Enterprise Application Development with Ext JS and Spring

Develop and deploy a high-performance Java web application using Ext JS and Spring

Gerald Gierer

(Packt Publishing paperback, Kindle)

A powerful JavaScript web framework such as Ext JS deserves a powerful platform for enterprise desktop application development. Gerald Gierer delivers a good one in his well-crafted new how-to book from Packt Publishing.

Gierer’s book is a bit unusual in today’s pare-it-down marketplace. It contains many before, during and after screen prints to illustrate the actions and outcomes of steps and commands. The 446-page book also has lengthy code listings that enable you to check and verify the outcomes of code changes you have made.

Ext JS and the Spring framework, however, are just a few of the packages that you work with as you set up your development tools and create, modify, expand, test and deploy a sample enterprise application (a task time tracker).

The other programs and tools include MySQL, the Java SE development kit (with the new Java API for JSON), NetBeans, Maven, Glassfish, and JUnit. And, with Ext JS, you learn to work with the Sencha Cmd tool and the Ext JS Software Development Kit (SDK).

But please note, particularly if you are new to some of this : You must pay careful attention to each paragraph as you load and configure software and as you keep building and enhancing your enterprise application.

In this book, it is easy start jumping from one screen print to the next, or from one code listing to the next, while skipping the intervening text. When you do, you can miss key steps that sometimes are buried without highlights in the wording.

This was my first time to work with some of the required software packages, so I had to force myself to really slow down and pay close attention to each paragraph, as well as each graphic.  My initial development attempt went off the rails when I discovered, more than 100 pages into the book, that I had misconfigured a couple of tables, skipped a couple of data changes, and generally screwed up the database. And, being new to some of the software, I couldn’t figure out to repair everything. So I simply started over from scratch and this time moved carefully from one page to the next, closely checking code entries and the book’s text before clicking “Enter.” That made all the difference in my results.

If you are looking to do enterprise application development with a JavaScript framework, definitely consider Ext JS and definitely consider Gerald Gierer’s fine Enterprise Application Development with Ext JS and Spring.

And definitely take your time as you work your way through his book.

Si Dunn

Optimizing Hadoop for MapReduce – A practical guide to lowering some costs of mining Big Data – #bookreview

Optimizing Hadoop for MapReduce

Learn how to configure your Hadoop cluster to run optimal MapReduce jobs

Khaled Tannir

(Packt Publishing, paperback, Kindle)

Time is money, as the old saying goes. And that saying especially applies to the world of Big Data, where much time, computing power and cash can be consumed while trying to extract profitable information from mountains of data.

This short, well-focused book by veteran software developer Khalid Tannir describes how to achieve a very important, money-saving goal: improve the efficiency of MapReduce jobs that are run with Hadoop.

As Tannir explains in his preface:

“MapReduce is an important parallel processing model for large-scale, data-intensive applications such as data mining and web indexing. Hadoop, an open source implementation of MapReduce, is widely applied to support cluster computing jobs that require low response time.

“Most of the MapReduce programs are written for data analysis and they usually take a long time to finish. Many companies are embracing Hadoop for advanced data analytics over large datasets that require time completion guarantees.

“Efficiency, especially the I/O costs of MapReduce, still needs to be addressed for successful implications. The experience shows that a misconfigured Hadoop cluster can noticeably reduce and significantly downgrade the performance of MapReduce jobs.”

Tannir’s well-focused, seven-chapter book zeroes in on how to find and fix misconfigured Hadoop clusters and numerous other problems. But first, he explains how Hadoop parameters are configured and how MapReduce metrics are monitored.

Two chapters are devoted to learning how to identify system bottlenecks , including CPU bottlenecks, storage bottlenecks, and network bandwidth bottlenecks.

One chapter examines how to properly identify resource weaknesses, particularly in Hadoop clusters. Then, as the book shifts strongly to solutions, Tannir explains how to reconfigure Hadoop clusters for greater efficiency.

Indeed, the final three chapters deliver details and steps that can help you improve how well Hadoop and MapReduce work together in your setting.

For example, the author explains how to make the map and reduce functions operate more efficiently, how to work with small or unsplittable files, how to deal with spilled records (those written to local disk when the allocated memory buffer is full), and ways to tune map and reduce parameters to improve performance.

“Most MapReduce programs are written for data analysis and they usually take a lot of time to finish,” Tannir emphasizes. However: “Many companies are embracing Hadoop for advanced data analytics over large datasets that require completion-time guarantees.” And that means “[e]fficiency, especially the I/O costs of MapReduce, still need(s) to be addressed for successful implications.”

He describes how to use compression, Combiners, the correct Writable types, and quick reuse of types to help improve memory management and the speed of job execution.

And, along with other tips, Tannir presents several “best practices” to help manage Hadoop clusters and make them do their work quicker and with fewer demands on hardware and software resources. 

Tannir notes that “setting up a Hadoop cluster is basically the challenge of combining the requirements of high availability, load balancing, and the individual requirements of the services you aim to get from your cluster servers.”

If you work with Hadoop and MapReduce or are now learning how to help install, maintain or administer Hadoop clusters, you can find helpful information and many useful tips in Khaled Tannir’s Optimizing Hadoop for Map Reduce.

Si Dunn

Gradle in Action – Had enough of Maven and Ant? Try this powerful Java build tool – #programming #bookreview

Gradle in Action

Benjamin Muschko

(Manning, paperback)

Apache Maven and Apache Ant are perhaps the two best-known and most widely used Java build tools. But Gradle is gainmuschkoing users and aficionados ( if, indeed, there can be “fans” of software build tools). And this well-prepared new book likely will help Gradle achieve even wider acceptance and employment in the workplace.

“Gradle,” writes Benjamin Muschko, “is the next evolutionary step in JVM-based build tools. It draws on lessons learned from established tools like Ant and Maven and takes their best ideas to the next level. Following a build-by-convention approach, Gradle allows for declaratively modeling your problem domain using a powerful and expressive domain-specific language (DSL) implemented in Groovy instead of XML. Because Gradle is a JVM native, it allows you to write custom logic in the language you’re most comfortable with, be it Java or Groovy.”

Muschko has a strong bias toward Gradle, of course. He is a member of the Gradleware engineering team and has written several popular Gradle plugins.

Nonetheless, his well-written, 15-chapter, 456-page book makes a compelling case for Java developers to add Gradle to their build-tool cabinet and list of skills.

“Over the course of years,” Muschko contends, Maven and Ant “[have] significantly improved and extended their feature set. But even though both are highly popular and have become industry standards, they have one weak point: build logic has to be described in XML. XML is great for describing hierarchical data, but falls short on expressing program flow and conditional logic. As a build script grows in complexity, maintaining the build code becomes a nightmare.”

To use Gradle, you do have to learn parts of yet another programming language, Groovy. But, if you already know Java, you are much of the way there.  “The language [Groovy] integrates with existing Java classes and libraries, which makes it easy for Java developers to learn it.” Muschko stresses. “Not only does Groovy build upon the strengths of Java, it also provides powerful programming features inspired by those of Ruby, Python, and others. Groovy can be used as a scripting language without having to compile the code. Alternatively, Groovy code can be compiled to Java bytecode.” (Both approaches are used in the book.)

“Gradle’s core functionality is built with Java,” Muschko points out. “On top of this functionality sits a domain-specific language (DSL) written in the dynamic programming language Groovy. When writing a Gradle build script, you automatically use the language constructs exposed by this DSL to express the desired build instructions. Gradle build scripts are executable Groovy scripts, but they can’t be run by the Groovy runtime. When the need to implement custom logic arises, you can use Groovy’s language features to build out the desired functionality directly in the Gradle build script.”

Gradle in Action uses some Groovy in most of its code examples. But you are not expected to have experience with that language. Instead, Muschko gradually introduces Groovy and shows how it is used in the build processes, while keeping the book’s focus on Gradle and Gradle’s advantages over Maven and Ant (with Ivy). (You can run many of the book’s code examples from the Gradle command line and also, as I did, try out some of the Groovy code snippets using Groovy’s console. And Chapter 10 describes Gradle’s IDE plug-ins for Eclipse and NetBeans.)

“This book is primarily for developers and build automation engineers who want to implement a repeatable build that’s easy to read and extend,” Muschko says.

Muschko’s book is organized into three parts:

  • Part 1, Introducing Gradle
  • Part 2, Mastering the Fundamentals
  • Part 3, From Build to Deployment.

Part 1 includes an introduction to project automation and illustrates the differences in how builds are put together in Maven, Ant, and Gradle. It also shows how to write and execute a simple Gradle script, run Gradle on the command line, and build a Gradle project by example.

Part 2 delves into more advanced topics such as dependency management, testing an application with Gradle, extending a build with plugins, and other subjects, such as multiproject builds. It also digs deeper into testing, Gradle’s extension mechanism, and “how to translate existing build logic from one tool to another, identify integration points, and depict migration strategies.”

Part 3  emphasizes how to use Gradle in deployment. “In times of increased pressure to deliver software quickly and frequently,” Muschko writes, “automating the deployment and release process is extremely important. In part 3, you’ll learn how to use Gradle to its fullest in the context of continuous delivery.”

Meanwhile, Appendix A provides a closer look at how to use Gradle’s Command Line Interface, while Appendix B, titled “Groovy for Gradle users,” provides an introduction to what the author terms “Groovy’s most important language features,” with recommendations to help you learn more Groovy on your own. 

“For years, builds had the simple requirements of compiling and packaging software,” Muschko says. “But the landscape of modern software development has changed, and so have the needs for build automation. Today, projects involve large and diverse software stacks, incorporate multiple programming languages, and apply a broad spectrum of testing strategies. With the
rise of agile practices, builds have to support early integration of code as well as frequent and easy delivery to test and production environments. Established build tools continuously fall short in meeting these goals in a simple but customizable fashion.”

So, will it be Gradle to the rescue? In some settings, perhaps yes. In other environments, you may need to know how to use Maven, Ant and Gradle, plus some other build tools. And in still other work settings, the powers that be may insist on Maven or Ant or something else.

In any case, if you work with Java software builds, you may want to consider learning Gradle (and, by default, some Groovy, too). If so, give serious consideration to Benjamin Muschko’s excellent new how-to book.  In its foreword, Hans Dockter, the founder of Gradle and Gradleware, terms Gradle in Action “the authoritative guide.”

Si Dunn

The Ubuntu Beginner’s Guide – A very good book for intermediate beginners (and up) – #ubuntu #linux #bookreview

The Ubuntu Beginner’s Guide

Sixth Edition

Jonathan Moeller

(Azure Flame Media, LLC – Kindle)

This should not be your first book on how to use Ubuntu, particularly if you consider yourself not much of a computer geek and you are fleeing Microsoft Windows to escape the death throes of XP (or the life throes of Windows 8).

However, The Ubuntu Beginner’s Guide is an excellent how-to book that can add to your enjoyment and mastery of Ubuntu once you are comfortable with opening applications, downloading the latest updates, and doing some basic work at the command line in Linux. In other words, once you are ready to learn more about what else you can do with a PC running Ubuntu (besides typing on it and surfing the web), The Ubuntu Beginner’s Guide definitely can help. (It focuses on Ubuntu version 12.04 — not the latest, but still a good release that will be supported for a few more years.)

Jonathan Moeller spends much of his book showing how to set up an Ubuntu PC as a server platform, for example an Apache web server, a MySQL server, a DHCP server, and an FTP Client and Server, among others. His instructions are clear, and you don’t have to flip from one chapter to another to keep track of all of the steps. He repeats setup steps when necessary to help the reader stay focused on doing a task from start to finish. (I am definitely not a Linux guru, but I have used Moeller’s book thus far to assign some static IPs, set up SAMBA file sharing, set up an Apache web server, and do several other tasks that I’ve wanted to learn. Some reviewers have criticized the author for repeating certain steps for each process. But I appreciate the convenience of staying focused on just one or two pages at a time.)

Meanwhile, later chapters focus on web applications and “the eight best applications for a new Ubuntu desktop installation.” (No spoilers are given here.)

“Hosting web applications,” Moeller writes, “is where Linux really shines….Ubuntu Linux can run a variety of web applications, ranging from simple interactive sites to powerful content management systems.” In his book, he shows “how to install three of the most popular content management systems on an Ubuntu web server — WordPress, MediaWiki, and Drupal” — and explains what a LAMP server is. “LAMP is simply an acronym for Linux, Apache, MySQL, and PHP (or Perl and Python).”

The author covers several other useful topics, including how to create a bootable USB flash drive, how to run some Windows software on Ubuntu using the Wine application, and how to manage eBooks on Ubuntu. And he describes how to enjoy some computer games on Ubuntu, even though the “gaming experience” admittedly will not measure up to Windows machines, various mobile devices, or dedicated game consoles such as an XBox or Playstation.

If you have not yet tried Ubuntu and still wonder if you will like Linux or not, start with a book such as Ubuntu Made Easy, which comes with a CD that lets you try Ubuntu 12.04 without actually installing it. (And , if you do like it, you can use the same CD to install Ubuntu on your PC). Then, after you get comfortable with the basics and want to know more, get The Ubuntu Beginner’s Guide.

Si Dunn

Raiders of the Nile – Steven Saylor brings fast-paced action & intrigue to ancient Egypt – #fiction #bookreview

Raiders of the Nile

A Novel of the Ancient World

Steven Saylor

(Minotaur Books – hardcover , Kindle )

Best-selling author Steven Saylor is well-known for his many books, including his Roma Sub Rosa series of historical mysteries set in ancient Rome, starring Gordianus the Finder, a B.C. equivalent of Sherlock Holmes.

Now, in Raiders of the Nile, Saylor again has turned the sundial back a few years and given us a young, pre-Finder Gordianus. In 88 B.C., on his 22nd birthday, Gordianus suddenly has to embark on a truly desperate quest. He must rescue Bethesda, the beautiful young woman he loves,  from fearsome pirates based in the Nile Delta. They have kidnapped Bethesda from the troubled city of Alexandria, where the latest in a string of Egyptian kings named Ptolemy is on a very shaky throne (despite, or perhaps partly because of, his huge girth). And young Gordianus finds that he has just one ally willing to be his John Watson in the Egyptian badlands: a 10-year-old slave boy named Djet.

A pleasingly complex plot unfolds as Gordianus and Djet barely escape death at several turns and have to join the pirate gang not only to save their lives but to have a chance to escape with Bethesda, who is being held for ransom.

What the pirates and their vicious leader don’t know is that they have kidnapped the wrong woman. And if they somehow find out, she, Gordianus and Djet all could be killed on the spot.

It’s the set-up for a lot of intrigue, action and entertainment. And Steven Saylor demonstrates that he is a master at telling fast-paced stories set in the seemingly slow-paced ancient world.

His characters, fortunately, do not speak in hieroglyphics or Latin. Nor do they sound like actors in grainy Old Testament movies. Indeed, they converse in reasonably modern English, which momentarily can be disconcerting the first time you pick up a Steven Saylor novel. But it doesn’t take long to get caught up in the tale and find yourself racing along on the back of a camel you barely can ride, while murderous villagers, also on camels, try to chase you down and hack you into mincemeat.

Saylor, widely recognized as an expert on ancient Roman life and politics, has done extensive research into the lives and politics of some ancient Egyptians, as well as key settings used in Raiders of the Nile. He needed a vacation, he says in the book’s concluding notes, from his long studies of the ancient Romans’ “murder trials, gruesome histories, and self- aggrandizing memoirs.” So he turned to the works of “Greek authors whose books were all about travel and exploration, love and sensual pleasure, religious exaltation and athletic glory.”

One outcome was his 2013 book The Seven Wonders, which brings 18-year-old Gordianus face-to-face with intriguing, challenging, deadly mysteries each time he stops to visit one of the Seven Wonders of the World.

Raiders of the Nile is the second prequel novel that points toward how Gordianus eventually will become the famed Finder who solves cases involving prominent historical characters and events in Rome. While researching ancient Greece, Saylor encountered several books, manuscripts and websites that inspired him to look closely at Egypt, too. And that led to the absorbing tale which unfolds in this new book.

One downside to the many plot twists, intrigues, double-crossings, and surprises in Raiders of the Nile is that Saylor must rely on a fairly lengthy ending to wrap everything up and shake Gordianus loose for whatever will come next. Even then, some of the concluding events seem to happen just a bit quickly and conveniently.

Still, fans of Gordianus the Finder will not be disappointed. And readers encountering Gordianus (and Saylor) for the first time will find plenty to enjoy–including a whole series of Gordianus novels to savor.

Steven Saylor definitely knows how to blend imagination, good storytelling, historical accuracy and cultural details into tales of mystery, intrigue, action and, yes, love.

Si Dunn

Mastering the Nikon D610 – Another helpful how-to from Digital Darrell – #photography #bookreview

Mastering the Nikon D610

Darrell Young

(Rocky Nook – paperback, Kindle)

d610_hr

Today’s digital SLR cameras have many more features than most of us can possibly use. And, certainly, they have many more features than most of us can readily employ without cracking open a how-to guide.

Still, I am both a fan and user of DSLRs. I am also a fan and user of some of Digital Darrell’s books on how to master various Nikon cameras.

Yes, the instruction manuals that come with new DSLRs are supposed to tell us how to use every button, setting and indicator. Often, they do. Yet, that’s all they usually tell us: the bare basics.

In a Digital Darrell book, on the other hand, you get more than detailed coverage of every dial, button, indicator, and menu setting. You also get color photographs of menu options, plus recommended settings and numerous tips based on Darrell Young’s shooting preferences and experiences in the field. Those recommendations and tips can be valuable savers of time and frustration, whether trying out a feature for the first time or using a feature not touched in several months.

Darrell Young’s new Mastering the Nikon D610 is a world-class how-to book that deserves to be kept handy by anyone who uses this new, feature-rich, full-frame (FX) camera.

Young has written more than a dozen photography books, primarily detailed guides for specific models of Nikons. “The massive resolution of the 24.3 megapixel (MP) sensor, an amazing dynamic range, and clean, broadcast-quality video make the D610 one of the world’s best digital cameras,” Young states.

“In my opinion, the image is what counts, and the Nikon D610 can deliver some of the highest-quality images out there. It’s a robust camera body designed to last. With this camera we can return to the days when we seldom bought a new camera body and instead put our money into new Nikkor lenses.”

Whether you get one D610 or a dozen, you may really like keeping a copy of this well-crafted, 547-page book handy for quick—and detailed—reference in the field or studio.

Si Dunn

Hello World! – Updated book brings new fun to learning Python – #programming #bookreview

Sande--Hello World!, 2e

Hello World!

Computer Programming for Kids and Other Beginners (2nd Edition)

Warren Sande and Carter Sande

(Manning, paperback)

Many politicians, educators and pundits keep arguing over whether the United States should offer computer programming classes to all students in kindergarten through 12th grade.

Others say all of us, including senior citizens, should do some coding to help us (1) maintain mental sharpness and good computer skills and (2) ward off late-in-life memory problems such as dementia.

These contentious debates are a long way from being settled, of course. Meanwhile, questions also rage over which programming languages we should learn. There are, after all, many dozens now in use.

Experienced software developers often state that Python is a good choice for youngsters ready to tackle their first “real” language, particularly once they have spent some time mastering Scratch, which MIT describes as “a programming language and an online community where children can program and share interactive media such as stories, games, and animation with people from all over the world.”

Manning Publications recently has brought out an updated second edition of its popular Python how-to book, Hello World!, written by Warren Sande and his son Carter Sande.

Some parents want to hand a programming book over to a child and let them learn at their own pace. And that can be done, in many cases, with Hello World! (It is written at a 12-year-old’s reading level, according to Manning). But other parents want to share the learning experience and be mentors, too, and the Sande book can be used effectively that way, as well. In either case, many children younger than 12 also should be able to learn from it.

Be sure to note the “Other Beginners” in the book’s subtitle. I have taken classes in Python, and I have worked my way through a couple of  Python programming books. Hello World! is proving a useful addition to my library, too, because it gives some clear explanations and examples for  many different concepts, such as using variable nested loops, importing portions of modules, or providing collision detection in a game, to name just a few.

One big question quickly pops up when someone decides to learn to program in Python: Python 2 or Python 3?

Several years ago, the language was updated from version 2 to version 3, but many users of version 2 chose to not upgrade. So now we recently have had Python 2.7.6 and Python 3.3.3 (with Python 3.4 coming soon). The two versions have some similarities, but they also have essential differences. Bottom line: They do not play well together.

In this second edition of Hello World!, the authors have elected to stick with Python 2 in their text and code examples. But they have added notes to help make the code work for students using Python 3. Likewise, they have added an appendix explaining some major differences between Python 2 and Python 3.

Other significant changes include using color in illustrations and code listings and, in the chapter on GUI programming, using PyQT, rather than the no-longer-supported PythonCard. And the updated book now spans more than 460 pages, including its index.

With Hello World!, even the most eager student who is a very fast reader can be kept focused and busy for many hours while learning how to program in Python.

Si Dunn

Improving the Test Process – A Study Guide for ISTQB Expert Level Module – #software #bookreview

Improving the Test Process

Implementing Improvement and Change — A Study Guide for the ISTQB Expert Level Module

Graham Bath and Erik van Veenendaal
(Rocky Nook – paperback, Kindle)

If you are a software tester seeking an important new credential to help boost your career, definitely check out this book. Improving the Test Process can help you complete and pass one of the four modules required by the International Software Testing Qualifications Board (ISTQB) to achieve “Expert” certification. (Two of the four “Expert” modules will be available in 2014 and 2015, respectively.)

The ISTQB has established three levels in its Certified Tester program: Foundation, Advanced and Expert. “The result,” the two authors state, “is a structure that supports the development of career paths for professional testers.”

Improving the Test Process has 10 chapters and six appendices devoted to that Expert Level module, including an appendix that focuses on what to expect in the module’s certification exam.

The chapters and appendices are:

  • 1. Introduction
  • 2. The Context of Improvement
  • 3. Model-Based Improvement
  • 4. Analytical-Based Improvement
  • 5. Selecting Improvement Approaches
  • 6. Process for Improvement
  • 7. Organization, Roles, and Skills
  • 8. Managing Change
  • 9. Critical Success Factors
  • 10. Adapting to Different Life Cycle Models
  • Appendix A: Glossary
  • Appendix B: Literature and References
  • Appendix C: The Syllabus Parts
  • Appendix D: The Exam
  • Appendix E: Summary of Cognitive Levels (K-Levels)
  • Appendix F: Answers

The “Answers” appendix provides the answers to exercises posted at the end of chapters 2 through 10.

“The definition of a testing expert used by ISTQB,” the authors note, “is ‘a person with the special skills and knowledge representing mastery of a particular testing subject. Being an expert means possessing and displaying special skills and knowledge derived from training and experience.’”

The book’s authors are both long-time professionals in the field of software testing, and they are co-authors of the ISTQB Expert Level syllabus. So they know their subject matter.

In each chapter, they lay out specific learning objectives and follow with technical content and exercises.

Their well-written book is structured so it can be used for two important purposes: (1) as a preparation guide for taking the ISTQB Expert Level certification exam and (2) as a practical guide for experienced testing professionals who want to learn more about how to improve software testing processes.

Si Dunn