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

The Troubles Trilogy: Adrian McKinty’s Northern Ireland crime novels are powerful, engrossing reading – #bookreview

In the Morning I’ll Be Gone

Book Three: The Troubles Trilogy

Adrian McKinty

(Seventh Street Books, paperback)

I wish I had discovered The Troubles Trilogy and Detective Sean Duffy much sooner than Book Three. I really don’t like reading trilogies in reverse.

But Adrian McKinty is an amazingly good crime novelist. And now that I have also read his two other books in ThTroubles Trilogy,  I can honestly say that it is pleasingly easy to read these works in any order you wish.

In the Morning I'll Be Gone cover

Yes, Book One: The Cold Cold Ground and Book Two: I Hear the Sirens in the Streets are tied together by some of the same characters and settings found in Book Three: In the Morning I’ll Be Gone. Each novel, however, stands solidly on its own.

Detective Sean Duffy is an Irish Catholic cop working for the Royal Ulster Constabulary, Northern Ireland’s decidedly unpopular police force. The three novels unfold during the early 1980s, amid some of the most violent times in a small-scale but deadly civil war that has been raging for decades. On one side are the mostly Protestant Unionists and Loyalists, who want Northern Ireland to stay part of the  United Kingdom. On the other side are the mostly Catholic Nationalists and Republicans who want Northern Ireland to become part of the Republic of Ireland again.

Duffy, caught in the middle and working for a mostly Protestant police force, must try to solve grisly murder cases while not getting blown up by Irish Republican Army car bombs–he never goes anywhere without first looking beneath his vehicle–or killed by bullets fired by snipers on both sides.

There are neighborhoods where it’s deadly to be a Protestant or a Catholic and neighborhoods where it’s equally deadly to be one of Her Majesty’s cops, or “peelers,” in the local argot.  (Sir Robert Peel, a 19th century British prime minister, is credited with creating the concept of a metropolitan police force. As a result, police officers became known as “bobbies” in England and “peelers” in Northern Ireland.)

Sometimes, in pursuit of leads and suspects, Duffy finds himself on streets that are British territory on one side of the center line and Irish territory on the other. And, a classic tough-guy detective, Duffy seldom hesitates if he needs to sneak into Ireland, where he has absolutely no jurisdiction except his fists and his guns. Also, he sometimes crosses that dark, ill-defined border between good cop and bad cop, in the name of justice as he defines it.

Adrian McKinty has been compared, deservedly so, to Raymond Chandler and a few other leading crime novelists. He is a native of Northern Ireland, and his taut, well-written, realistic prose makes excellent use of that region’s cultures, languages and longstanding sectarian tensions. He draws you in quickly and doesn’t let you escape –not until after gritty Detective Sean Duffy finally has tracked down and confronted the killer face to face.

Si Dunn

Computing with Quantum Cats – Strange and exciting times are ahead – #science #bookreview

Computing with Quantum Cats

From Colossus to Qubits

John Gribbin

(Prometheus Books – hardcover, Kindle)

John Gribbin’s new book, Computing with Quantum Cats, is an entertaining, informative and definitely eye-opening look at quantum computing’s recent progress, as well as its exciting near-future possibilities.

The “conventional” (a.k.a. “classical”) computers currently on our desktops, in our briefcases, and in our pockets and purses keep getting smaller and faster, yet laden with more features, memory and processing power. “But,” cautions John Gribbin, a veteran science writer, “the process cannot go on indefinitely; there are limits to how powerful, fast and cheap a ‘classical’ computer can be.”CompwithQuantumCats

Already we are cramming a billion transistors into tiny chips and moving much of our data and programs out to the “cloud,” because we are running out of both physical space and memory space on our shrunken devices.

So what’s next, if the end of Moore’s Law is here?

Gribbin predicts that “within a decade the computer world will be turned upside down”–by quantum computers that  “will enable physicists to come to grips with the nature of quantum reality, where communication can occur faster than the speed of light, teleportation is possible, and particles can be in two places at once. The implications are as yet unknowable,” he concedes, “but it is fair to say that the quantum computer represents an advance as far beyond the conventional computer as the conventional computer is beyond the abacus.”

For now, quantum computers are functioning  at a level somewhat equivalent to the early classical computers that, nearly 70 years ago, could perform only rudimentary calculations, yet filled large rooms and required 25 kilowatts or more of electrical power to light up hundreds or thousands of  vacuum tubes. It may be decades or perhaps just a few years until quantum desktop PCs or quantum smartphones become a reality.

What makes quantum computing such a big deal? 

Classical computers, Gribbin writes, “store and manipulate information consisting of “binary digits, or bits. These are like ordinary switches that can be in one of two positions, on or off, up or down. The state of a switch is represented by the numbers 0 and 1, and all the activity of a computer involves changing the settings on those switches in an appropriate way.”

He notes that two “classical” bits can represent any of the four numbers from 0 to 3 (00,01, 10, and 11). But once you start using quantum bits–qubits (pronounced “cubits”)–the scale of possibilities quickly becomes astronomical.

The “quantum switches can be in both states, on and off, at the same time, like Schrodinger’s ‘dead and alive’ cat. In other words, they can store 0 and 1 simultaneously.” Or both can be off or both can be on, creating three possibilities.

“Looking further into the future,” Gribbin continues, “a quantum computer based on a 30-qubit processor would have the equivalent computing power of a conventional machine running at 10 teraflops (trillions of floating-point operations per second)–ten thousand times faster than conventional desktop computers today….” 

His new book presents an enlightening, engrossing blend of facts and speculations about quantum computing, as well as short biographical sketches of key people who have helped quantum computing become a reality.  These range from Alan Turing and John Von Neumann to more recent researchers such as Nobel Prize recipients Tony Leggett and Brian Josephson, to name a few. Their key research efforts also are explored.

The author notes that “the enormous challenge remains of constructing a quantum computer on a scale large enough to beat classical computers at a range of tasks….” He also observes that “many competing approaches are being tried out in an attempt to find the one that works on the scale required.” And he concedes that in a research field now changing very fast, “I’ve no idea what will seem the best bet by the time you read these words, so I shall simply set out a selection of the various [techniques] to give you a flavor of what is going.”

John Gribbin’s other books include In Search of Schrodinger’s Cat, Erwin Schrodinger and the Quantum Revolution, and In Search of the Multiverse.

The need to break enemy codes in World War II gave us classical computers, Gribbin points out. In a curious twist, it may be the need to create truly unbreakable codes that will help usher in quantum computing as a practical reality.

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

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

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