16 Principles of Software Testingby Arunkumar Khannur
Principle 1: Value Creation
Focus on long term value creation for all stake holders and society by uncovering as many defects as possible to ensure that products work as required and also, continue to work as expected, by allocating resources to provide useful information with a plan to make product competitive, helping to stay in business, and to provide jobs.
Principle 2: Zero Tolerance to Defects Philosophy
Adopt the new philosophy of zero tolerance to defects towards delays, cost overruns, risks, mistakes, defective materials and defective workmanship by continuously improving competence and capability of an individual and organization to make products to perform well, keeping them to perform well with ease, and continue to perform well in long term with proper maintenance.
Principle 3: Engineer Quality
Eliminate the need for exhaustive testing that focuses on test coverage and engineer quality into every work product the very first time so as to find and eliminate defects at the time of the very designing of the work product.
Principle 4: Go Beyond Uncovering Defects Mindset
Never restrict testing just to uncover defects but also, focus on providing inputs to produce stable product that exhibits fitness of business, fitness of standards, fitness of use, fitness of latent requirements.
Principle 5: Use Adaptive and Result-Oriented Process
Create and use adaptive and result-oriented software testing process so that one can understand priority, criticality, timeliness, and risks associated with business and operational requirements of customer, customers of customer, and user of the product and perform testing to ensure quality from transcendental, user, value, process, and product perspectives.
Principle 6: Focus both on Internal and External Quality
Ensure testing to focus on both external quality and also, internal quality by a quality model by using the top to the bottom of the lifecycle using analytical thinking to move from system level to component level by defining quality requirements and their further decomposition into appropriate quality characteristics, sub-characteristics and measures; and also by using the bottom to top of the lifecycle by performing interface, integration, system, and interoperability related tests using measurements and subsequent aggregation and evaluation of obtained results to measure the level of quality.
Principle 7: End Exhaustive Testing Tendency
Move away from plan and design based testing to strategize and architect testing by performing situation analysis using system thinking at the initial stage to identify all possibilities of testing the product and contextualize testing by selecting subset of these situations with sensitivity to business needs so as to select and arrive at test architecture by deciding on appropriate testing approaches.
Principle 8: Prevent Defects from Propagation
Use quality assurance, quality control, and traceability so as to verify, validate, and perform forward & backward traceability to detect defects and also, to prevent propagation of defects and residual defects to enter into work products that are in in-process phase and also, in work products that will be produced of later phases.
Principle 9: Use Statistics as Guidence but not as a Constraint
Build matured testing processes based on statistical process control using continuous, systematic, disciplined, quantifiable approach across all phases of the development and maintenance of quality of software products and systems to collect, tabulate, graphically represent, analyze, and interpret so as to enable the managerial and technical personnel to obtain feedback by evaluating the software products and processes at the metrics level; and analysing the metric values to estimate and assess the quality factors.
Principle 10: Incorporate Incremental Innovation
Improve constantly and forever the testing process by using continuous improvement and also, incremental innovation. Search continually for problems in order to improve every activity in the organization, to improve quality and productivity, and thus to constantly decrease costs by making management committed to work continually on the system (design, incoming materials, maintenance, improvement of machines, supervision, training, retraining).
Principle 11: Institute Training on the Job
Training is an investment but not a cost. Institute modern methods of training on the job for all stake holders to build required knowledge and skills in technical, functional, and managerial areas so as to develop understanding of process, product, domain, tools and technology, methods, and techniques so that they contribute in performing testing in a matured way.
Principle 12: Institute Leadership
Adopt and institute leadership aimed at helping people do a better job. The responsibility of managers and supervisors must be changed from sheer numbers to quality. Improvement of quality will automatically improve productivity. Management must ensure that immediate action is taken on reports of inherited defects, maintenance requirements, poor tools, fuzzy operational definitions, and all conditions detrimental to quality.
Principle 13: Empowerment through Superior Organizational Eco System
Build empowerment through superior organizational eco system by eliminating the use of slogans and posters for the work force, and build flat system that encourages seamless open communication , develops group thinking, builds team synergy, drives out fear, builds mutual respect, encourages give and take culture throughout the organization so that everybody may work effectively and more productively , tackle problems that may be encountered during day to day operation so that everyone works with passion, pride, and fun.
Principle 14: Encourage Education
Institute a vigorous program of education and professional certifications, and encourage self improvement for everyone through proper education support system to improve people continuously to make them to perform better in their current roles and also, to align them to their career plan and future roles & responsibilities.
Principle 15: Top Management Commitment and Action
Success depends on management commitment, sponsorship, and participation in quality initiatives. Its important to clearly define top management's roles and responsibilities to ever improving quality and productivity, and their obligation to implement all of these principles. It’s crucial to move the capability of top management from current level to higher levels so that organization does not reach improvement deadlock and saturation.
Principle 16: Drive Away Trap of "Corporate Ego" of Business Success
Business success and growth may build in trap of corporate ego. This may make the company to over-believe in its success strategy and continue to using it with no change. Threat for any business house will not come from its own domain or similar product or from known competitor but it comes from some other domain or totally new integrated product or from entirely new unknown company. So drive away the trap of corporate ego of business success, and continuously experiment towards corporate sustainability by shelving the idea of product sustainability and thereby make a horizontal and vertical quantum jump to new products and technology and strategy.
"Structured Software Testing- The Discipline of Discovering Software Errors”
by Arunkumar Khannur
Published by Partridge
(A Penguin Random House Company),
Pages: 428. Year of Publication 2014. Hardcover: Rs.650/- (ISBN: 978-1-4828-3311-9) Softcover: Rs.1199/- (ISBN: 978-1-4828-3312-6)
eBook on amazon.com:
Rs.169/- (ISBN: 978-1-4828-3310-2)