There is general acceptance that adopting agile development practices enables the speeding up of the delivery of software. Without incorporating quality assurance practices directly into the development process, product quality inevitably suffers. In order to consistently achieve high quality, both work practices and team roles need to change to build quality in rather than testing at the end.
Testing techniques like Equivalence Partitioning, Boundary Value Analysis, and Risk-based Testing can help you decide what to test and when to automate a test. InfoQ spoke with Adrian Bolboacă about different types of tests, writing sufficient and good acceptance tests, criteria to decide to automate a test, and how to apply test automation to create executable specifications.
Approval testing is a test technique which compares the current output of your code with an 'approved' version. The approved version is created by initially examining the test output and approving the result. You can revisit the approved version and easily update it when the requirements change. Approval testing is supported by TextTest, an open source tool for text-based functional testing.
Dead code needs to be found and removed; leaving dead code in is an obstacle to programmer understanding and action, and there's the risk that the code is awakened which can cause significant problems. Deleting dead code is not a technical problem; it is a problem of mindset and culture.
LinkedIn’s Bluepill allows developers to run iOS UI tests using multiple simulators on a single machine, writes LinkedIn software engineer Keqiu Hu, and aims to provide tool stability and test scalability.
Try to keep units small, use appropriate tools, and pair-up programmers and tester; these are suggestions for writing good unit tests. Unit testing is a mixture of programming and testing; programmers can work together with testers to learn from each other and broaden their knowledge horizons.
Between the 14th and 18th November, the three conferences Better Software East, DevOps East and Agile Dev East are taking place simultaneously in the same venue in Orlando, Florida. The conferences are organised around two days of tutorials, two days of talks, and a closing Agile Summit day with keynotes by several international speakers. InfoQ attended the conference to report on its contents.
Netflix made waves when it initially announced Chaos Monkey, a tool that would terminate normally healthy VM instances in production. The goal was to embrace failure and thereby increase resiliency. Rags Srinivas caught up with Lorin Hochstein at Netflix regarding the recent upgrade to Chaos Monkey.
InfoQ recently sat down with Joan Wrabetz, CTO at Quali, and discussed the role ‘cloud sandboxes’ can take within the modern software development lifecycle (SDLC). Cloud sandboxes allow a user to create and publish replicas of infrastructure and application configurations for on-demand usage. The primary use cases for cloud sandboxes include development and quality assurance testing.
At the sixth ‘Agile on the Beach’ conference, held in Cornwall, UK, several leading practitioners of agile software delivery presented the state-of-the-art and emerging trends within this domain. Key takeaways included the value of the scientific method to drive change; the use of Continuous Delivery (CD) for improving safety and speed; and the power of cognitive bias during the user testing.
Continuous deployment results in a higher sense of responsibility and better quality of deployments, argues Paul de Raaij, technical pathfinder at Coolblue. Coding standards prevent your code base from becoming a mess, automated inspections are great for tedious and boring checks, and manual checks are great for checking if the logic or use of code actually makes sense.
WireMock v2, an API mocking and service virtualisation tool, has been released. Core enhancements include improved request verification failure reporting, the ability to create custom request matching logic (including the use of Java 8 lambdas), randomly distributed delays (currently with uniform and lognormal distributions), and matching on cookies and basic auth headers.
Android Studio 2.0 comes with several new features and improvements: Instant Run, integration with a Google service for testing on real devices, faster emulator, faster builds, GPU profiler and debugger, support for deep linking and others.
At QCon London 2016 Peter Alvaro and Kolton Andrus shared lessons learned from a fruitful collaboration between academia and industry, which ultimately resulted in the creation of a novel method for automating failure injection testing at Netflix. Core learnings included: work backwards from what you know; meet in the middle; and adapt the theory to the reality.
InfoQ interviewed Boris Modylevsky about the importance of measuring code quality and how measurements can be used to improve quality, integrating static code analysis in continuous integration, testing coverage and test automation, and the benefits that continuous integration with integrated code analysis and test coverage can bring.