Explore chapters and articles related to this topic
Software Development Methods and Tools
Published in Paul H. King, Richard C. Fries, Arthur T. Johnson, Design of Biomedical Devices and Systems, 2018
Paul H. King, Richard C. Fries, Arthur T. Johnson
A code review typically involves the programmer and at least two reviewers. That means that at least three people read every line of code. Another name for peer review is “peer pressure.” In addition to providing a safety net in case the original programmer leaves the project, reviews improve code quality because the programmer knows that the code will be read by others. Even if your shop has not created explicit coding standards, reviews provide a subtle way of moving toward a group coding standard—decisions are made by the group during reviews and over time the group will derive its own standards.
DevOps and Software Factories
Published in Yves Caseau, The Lean Approach to Digital Transformation, 2022
Among the four principles chosen in 2011 to create a lean software factory at Bouygues Telecom is “love of code.” Loving code means loving both your own code and that of others. The objective of this care for the code is, on the one hand, to produce better, more elegant code, but above all to develop interest and pride, which are necessary for code sharing. Code sharing is organized in many ways. It starts with the practice of peer programming, which is one of the specificities of XP,26 one of the agile development families. It continues with the practice of code reviews, which is a fundamental tool for a software factory. The code review is used to increase quality (in particular error detection), reduce technical debt, improve maintainability, and facilitate evolutions. Code reviews have always been a good practice, but they are now indispensable for code that must change continuously. From my point of view, digital transformation reintroduces the need for code reviews. Code sharing is also done by publishing one’s code in open-source form if the component is intended to be shared, but also in fragment form in the many community tools.27 The love of code means producing code that you want to share with your team members as well as with the members of your community. It also means having the desire to look at and read other people’s code because the efficiency and productivity required by digital transformation require knowing how to reuse the code of others. Finally, sharing code as widely as possible is the best way to increase quality—both because more eyeballs find more bugs and because the programmer’s pride leads him to better develop code that will be shared with his peers.
Adapting Our Reference Framework to Your Environment
Published in James F. Ransome, Anmol, Mark S. Merkow, Practical Core Software Security, 2023
James F. Ransome, Anmol, Mark S. Merkow
The code review practice includes the use of code review tools, development of customized rules, profiles for tool use by different roles (e.g., developers versus analysts), manual analysis, and tracking/measuring results. The security testing practice is concerned with prerelease testing, including integrating security into standard QA processes. This practice includes the use of black box security tools (including fuzz testing) as a smoke test in QA, risk-driven white box testing, application of the attack model, and code coverage analysis. Security testing focuses on vulnerabilities in construction.
Do we need to pay technical debt in blockchain software systems?
Published in Connection Science, 2022
Yubin Qu, Tie Bao, Xiang Chen, Long Li, Xianzhen Dou, Meng Yuan, Hongmei Wang
To alleviate these issues, more systematic software engineering approaches, referred to as engineering methodologies, have been researched to ensure the quality of both development and maintenance of blockchain-based software systems (Boopathi et al., 2020; Panda & Nagwani, 2021; Porru et al., 2017; Rankovic et al., 2021). According to 58 selected core studies, Fahmideh et al. organise the research of blockchain-based software systems in four aspects, including approaches, processes, modeling, and role which guide software developers, business managers, and academic researchers in the exploration of practical side and implications (Fahmideh et al., n.d.). There are four phases for the development of blockchain-based software systems, including system analysis, system design, system implementation and test, and system maintenance. In the test phase, conventional testing techniques are used to improve software quality. However, traditional software testing techniques are inadequate in practice. This is because blockchain technology has its own characteristics. For example, smart contracts have the property that cannot be modified after they are deployed. Code review is one of the basic methods to identify potential software bugs and fix them quickly and efficiently.
Testing the prediction profiler with disallowed combinations—A statistical engineering case study
Published in Quality Engineering, 2022
Jeremy Ash, Caleb King, Laura Lancaster, Ryan Lekivetz, Joseph Morgan, Yeng Saanchi
Validating software involves a variety of activities that fall into two broad categories: those that involve static analysis of software artifacts and those that involve dynamic analysis of software artifacts (see Adrion, Branstad, and Cherniavsky 1982). We use the term software artifact to refer to byproducts of the software development process, such as requirements documents, source code, test cases, and documentation. Static analysis activities involve the examination of such artifacts, either manually or automatically. A code review is an example of a static analysis activity, where a group of software engineers examine source code to identify potential problems with the implementation. Dynamic analysis activities are different, in that they require the execution of a software artifact for a set of inputs and the resulting behavior of the artifact is what is examined. Software testing is an example of a dynamic analysis activity and the primary focus of this paper.