This long-awaited revision of a bestseller provides a practical discussion of the nature and aims of software testing. You'll find the latest methodologies for the design of effective test cases, including information on psychological and economic principles, managerial aspects, test tools, high-order testing, code inspections, and debugging. Accessible, comprehensive, and always practical, this edition provides the key information you need to test successfully, whether a novice or a working programmer. Buy your copy today and end up with fewer bugs tomorrow.
I have very mixed feelings about this third edition of what was clearly a landmark book when the first edition came out, over thirty years ago. I first read this book, way back in 1979. It was a godsend and I and relied on it very heavily to cover the testing topics in what was the first undergraduate software engineering course ever taught at the university I was at. Reading the third edition after putting aside the first edition for about a decade, I was immediately struck by how much my thinking on testing owes to Glenford Myers and to this book in particular.
However, as I continued reading, I became more and more uneasy. In a sense, how do you update a classic book? If the book purports to cover a field, you update it by keeping up with the field, adding heavily and judiciously pruning stuff which becomes obsolete. This has worked pretty well for Ian Sommerville´s or Roger Pressman´s massive tomes on Software Engineering, but this goes counter to Myer´s whole approach, which aimed at the heart rather than the body of the field and struck thrilling insights into the psychology of testing. The book had its faults, of course, such as Myers dutiful, plodding but ultimately not very convincingly coverage of cause-effect graphing and of higher-order testing, which though striking at first, slowly collapsed in time.
So, how do you update a classic book. Corey Sandler and Tom Badgett seem to have approached the task gingerly and with great trepidation. They seem to have decided to touch Myer´s original book as lightly as possible, adding some sidebars on the "history" of Fortran, Cobol and PL/1 were, so that the modern day reader can wonder why on earth Myers talks about COMMON statements -a horrible and error-prone construct which, to its shame, is still carried around in Fortran-90 even though there are more elegant ways to circumvent it (see for example http://iprc.soest.hawaii.edu/users/fu... for details). Then, I can imagine Sandler and Badgett huddling together and deciding that, well the chapters on debugging and usability testing have to be redone and the book will probably become extinct unless some chapters are added on more contemporary issues such as usability testing, agile development´s impact on testing and testing web and mobile applications. So the chapter on debugging is duly, if not inspiringly rewritten, the chapter on usability is expanded (leaving some really obsolete Myers examples intact) and four new chapters are duly added.
The worst of the new chapters is the one on agile development, which spends a great deal of time repetitively telling us what agile development is, but very little discussing its impact on testing and barely managing to slip in the JUnit tool. The chapter on web application testing devotes some time to the classic three-tier architecture (presentation, business and data levels) and goes on to provide a brief and sometimes repetitive overview of testing issues for the three levels. However, I fail to understand why the authors failed to tie the ideas on testing the presentation layer more strongly to the chapter on usability and why they skimped so much on testing the data layer -if there is a chapter on usability, I don´t understand why theey failed to add a chapter on database testing. The chapter on mobile application testing provides a good introduction to the topic but falls into the temptation, as in the chapter on usability, of mentioning so many topics, that the reader is left feeling helpless in the face of so many shadowy hinted-at complexities. Some of these new chapters have been edited rather carelessly -there is, for example a typo ("donstraints" instead of "constraints") and a spelling mistake ("shear" for "sheer") in just one page (page 215) and they are not as tightly written as the best of Myers.
Even twenty years ago, I would have recommended this book without hesitation, now I am not so sure. Some readers will still enjoy the key insights from both old and new chapters, others will simply yawn and pass them by. Glenford Myers´ book was a landmark, but like many landmarks, the sheer volume of new developments has severely eroded it -however, the perceptive reader should still be able to appreciate its legacy. I wavered between giving the book three or four stars, but Sandler and Badgett deserve recognition for bravery and Myers still has my gratitude for introducing me to testing, so four it is.
Three stars is pretty good for a book about software testing, since it is the most boring thing in the world. It hooked me with an early test of my own skills (which I know are bad, but I didn't realize they were THAT bad) and I am pretty sure I at least read the whole thing. Good general ideas about how to divide up testing in a way that has strong coverage without infinite tests, but it didn't do anything to inspire me to test more.
I read this cover to cover and I sadly am walking away with very little. This book feels extremely dated. Especially the section on mobile testing. It's very naive and didn't provide any useful information. 2 stars instead of 1 for historical interest on what probably was a good testing book 30 years ago, but overall I would never recommend.
با این کتاب از اینجا آشنا شدم https://www.yegor256.com/2014/08/22/a... به نظرم جالب ترین قسمت کتاب این چند تا جمله است. Testing is the process of executing a program with the intent of finding errors. Testing is a destructive, even sadistic, process, which explains why most people find it difficult. When you find an error in a section on a program, the probability of the existence of another error in that same section is higher than if you hadn't already found on error (errors tend to cluster). به نظرم مطالعه فصل دومش فقط جالبه و کافیه. The Psychology and Economics of Software Testing
Gave up after they started explaining how to draw horendously complicate diagrams in order to derive test cases in a large test space. Either the work I've done doesn't require the same level of testing stringency as others or it was just bad. Either way, it just wasn't very applicable at present. Good coverage of terminology in basic black-box and white-box testing though.
This book was recommended to me by my friend whose expertise I trust but in the end, I was disappointed. I read second, not the latest, edition, and thought that it would not matter because the book contains timeless theory that I'll be able to apply today. But my expectations were wrong and I was able to take away very little.
A good book for beginners as it states principles and methods of work. It is not enough if you want to realy learn about software testing, but it's a very good starting point. It is also a nice reminder for testers with some experience in the field.
For anyone considering reading this book, I highly recommend taking a look at the reader comments first. I agree with most of the information provided by other readers. While the book was probably great 20-30 years ago, the information contained in it may not be as exciting today. Despite this, the book provides a solid foundation of information and is worth reading.
In today's world, there is a shortage of good books on testing, making any book on the market a valuable resource. Although I found that not everything in the book was immediately clear to me in terms of practical application, this is okay since I am aware that I still have a long way to go in my learning journey.
Despite working in the industry for 10 years and at different companies, I cannot say that this book has impacted the way I work. Personally, I feel a little disappointed as the market may have completely changed and a new approach may be needed. Nevertheless, it's still a valuable resource for anyone in the field of testing.
Книга в первую очередь для разработчиков, но в ней есть полезные моменты и для тестеров. Один из самых ценных, на мой взгляд - трактовка цели тестирования. Тестирование нужно не чтобы показать, что приложение работает как надо - оно должно показать, что в приложении есть ошибки
Есть отдельная глава, описывающая формальные процедуры определения необходимых тестовых сценариев; некоторые из них довольно мозгобойные, рассматривающие комбинаторное покрытие или графы условий. В этой же главе описано, почему даже таких формальных процедур может быть недостаточно
Из недостатков можно отметить некое старперство - есть тестовые примеры на Коболе и даже на PL/1, и некоторые рекомендации кажутся неактуальными для современных языков и методов разработки. Тем не менее, издание периодически обновляется, в последнее даже включена глава о тестировании мобильных приложений
Будет полезно прочитать и тестировщикам, и девелоперам
I read the first edition, and I can see why it was a classic. Even though the examples, especially the code samples, don't fare that well after 40-some years, the principles are surprisingly applicable today.
I especially appreciate the rigor with which the author develops basic techniques like boundary-value analysis and equivalence partitioning. In many ways, I feel that the testing that we do today does not live up to those high standards, as we seem to struggle with mere code coverage (statement coverage), let alone modified-condition/decision coverage, except perhaps in rarified sub-fields such as flight-control software.
I will not rate this book. As a newbie I got useful information from this book to guide me further and some info that messed with my head as well :D Soo.. no comments, let's see if this book provided me with enough material to kick-start this new path.
When I was readling the book I thought that it is very boring, that there are too few specific testing techniques I wanted to learn about. The only chapter that really grabbed my attention was the chapter about different types of testing (unit, integration, system and acceptance). Other chapters were not very informative and interesting for me. Now, having the book read and looking over what I have read, I think that my original expectations were too high and were in the wrong direction. There are no specific solutions to test software. There are some techniques and common language you can use to better understand each other while testing software. But concrete methods are too domain-specific to be generalized. This thought, this high-level overview of techniques and language the book gives us. And that, I think, is a good thing.
Read chapter 8 on debugging. Very helpful. Summary -- common debugging techniques like multiple print statements, breakpoints, and memory/variable dumps are less helpful than THINKING. Induction is gathering the evidence and developing and testing a hypothesis. Deduction is coming up with multiple hypotheses and eliminating wrong ones. Collect information such as what the error was, where and when it does and does not occur, etc. If you spend more than 30 minutes on a problem for a short program, or two hours on a long one, sleep on it. Your brain will work on it while you sleep.
I think that "The Art of Software Testing" deserves the title "The classic guide to software testing". It is a great introduction to main testing techniques and it has a very good chapter on test-case design (the most useful part for me). I found it very inspiring to perform careful testing. Also, I appreciate that the book that was first published in 1979 is updated to contain chapter on mobile applications testing.
It's a nice book to introduce someone to the testing concepts and notions, but not to be taken as a definite guide, since some examples and descriptions are not up to date nor totally clear. However, the main concepts of software testing are presented and explained.