Content deleted Content added
copy editing |
No edit summary |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1:
{{User sandbox}}
<!-- EDIT BELOW THIS LINE -->
'''Code integrity''' is a measurement used in the software
==Developer's confidence==
==Shift-left testing and shift-left code integrity==
Companies who practice code integrity avoid the classic scenario where the development stage is delayed, delaying the QA stage, delaying the release stage.
Shift-left testing is a method to perform related testing during the initial processes of software development, since the QA department cannot measure the code's integrity even after all their tests are run. Shift-left testing and code integrity are tightly connected but integrity consists not only of the testing part of the job which is a sub-task of the larger process of shift-left code integrity. This process not only applies more unit tests along with higher code coverage, but also involves various other correctness-checking processes against relevant data.<ref>{{cite web |title=High Level Test Driven Development – Shift Left |url=https://link.springer.com/chapter/10.1007/978-3-319-18612-2_23 |access-date=15 March 2023}}</ref> Here are some examples:
* Unit testing of the code
* Integration testing
* Code review
* AI-based code analysis
* Automatic testing
* Assigning a code integrity manager
;Examples of correctness-checking completeness metrics:
* Pure code integrity metric formulation is: 1 − (Non-covered bugs) / (Total bugs), In words:
* Different types of code coverage (line-coverage, branch-coverage etc)
* Mutation testing
;Advantages of shift-left code integrity
* Shorter development time - bugs that are found during the development stage are fixed faster and easier than bugs found in later stages.
Line 23 ⟶ 31:
* Makes the QA's work much more efficient – The QA concentrates on testing the system, without worrying about bugs that could have been easily found through proper unit testing.
This concept is based on the fact that developers would be able to make full use of the technological advantage if they have the relevant testing tools available to them from the start. As newer software become more and more complex and includes more dependencies, including the right side of the [[V-model]] in developers' roles will help them to assume control of the unit testing & integration processes.<ref name="wim">{{cite web |author1=Gadi Zimerman |title=Tests are not enough – Why code integrity matters? |url=https://www.codium.ai/blog/tests-are-not-enough-why-code-integrity-matters |access-date=16 March 2023 |date=11 November 2022}}</ref><ref>{{cite journal |author1=Rook, Paul, E. Rook |title=Controlling software projects |journal=IEEE Software Engineering Journal |date=1986 |volume=1 |issue=1 |page=7-16 |url=https://digital-library.theiet.org/content/journals/10.1049/sej.1986.0003 |access-date=15 March 2023}}</ref> The result will allow developers to bring up complete environments in many software companies. This trend is expected to continue because in many cases it is impossible to perform unit/integration testing without the full system’s context.<ref>{{cite web |title=Effect of Using Continuous Integration (CI) and Continuous Delivery (CD) Deployment in DevOps to reduce the Gap between Developer and Operation |url=https://ieeexplore.ieee.org/abstract/document/9994139 |access-date=15 March 2023}}</ref>
▲In words:, the 100% code integrity minus the number of bugs that weren’t covered by unit testing, divided by the total bugs found during the entire product cycle., including development, is the code not in integrity.
{{reflist}}
▲== References ==
{{Software-eng-stub}}
{{DEFAULTSORT:Code Integrity}}
|