Capability Maturity Model
This methodology used to develop and refine an organization's software development process. The model describes a five-level evolutionary path of increasingly organized and systematically more mature processes. CMM was developed and is promoted by the Software Engineering Institute, a research and development center sponsored by the U.S. Department of Defense .SEI was founded in 1984 to address software engineering issues and, in a broad sense, to advance software engineering methodologies. More specifically SEI was established acquiring, to optimize the process of developing, and maintaining heavily software-reliant systems for the DoD. Because the processes involved are equally applicable to the software industry as a whole, SEI advocates industry-wide adoption of the CMM.
CMM's Five Maturity Levels of Software Processes
- At the initial level, processes are disorganized, even chaotic. Success is likely to depend on individual efforts, and is not considered to be repeatable, because processes would not be sufficiently defined and documented to allow them to be replicated.
- At the repeatable level, basic project management techniques are established, and successes could be repeated, because the requisite processes would have been made established, defined, and documented.
- At the defined level, an organization has developed its own standard software process through greater attention to documentation, standardization, and integration.
- At the managed level, an organization monitors and controls its own processes through data collection and analysis.
- At the optimizing level, processes are constantly being improved through monitoring feedback from current processes and introducing innovative processes to better serve the organization's particular needs.
Capture/ Replay Tool
A type of test execution tools gets started by capturing or recordings manual tests hence they are also known as ‘capture/playback’ tools, ‘capture/replay’ tools or ‘record/playback’ tools. It is similar as recording a televisions programs and playing it back. The basic advantages of programmable scripting is that tests can repeat actions for different data values they can take different routes depending on the outcomes of test and they can be called from other scripts giving some structure to the set of tests.
Cause Effect Graph
Cause-Effect Graph graphically shows the connections between a given outcome and all issues that manipulate the outcomes. It is also known as Ishikawa diagrams because of the way it looks invented by Kaoru Ishikawa or fish bone diagram. It is generally use hardware testing’s but now adapted to software testing’s usually tests external behaviors of a systems.
It is a testing technique that logically relates Causes (inputs) to Effects (outputs) to produce test cases. A “Cause” stands for separate input conditions that fetches about an internal changes in the systems. An “Effect” represents an output conditions a system transformations or state resulting from combinations of causes.
Code coverage is a measure used to the degree to which the source codes of a programs is tested by a particular test suites. A program with high code coverage’s has been more thoroughly tested and has a lower chance of containing software bugs than a program with low code coverage’s.
When there will not be any further modification from developers side the coding is set to Freeze. After the code freeze the codes will not be changed by developers. Only in case of critical defects developers changes code after approval of the changes control board and make the changes required to fix critical defects.
Code Inspections is disciplined engineering practice for correcting and detecting defects in software artifacts and preventing their leakage into field of operations.
The goals of inspection are:
- allow authors to improve the quality’s of the documents under inspections
- It removes defects efficiently and as early as possible
- It improve product quality
- It create common understanding by exchanging information
- It learn from defects founds and prevents the occurrence s of similar defects
Code review is a software developments process in which the peer reviewers, authors of code and perhaps quality assurance testers get together to review code. Findings and correcting errors at these stages is relatively inexpensive and tends to reduce the more locating, expensive process of handling and fixing bugs during later stages of development or after programs are delivered to users.
Reviewers read the code line by line to check for:
- Potential flaws or Flaws
- Overall program design with Consistency
- Comments to quality
- Coding standards.
A formal testing techniques where source code is traced by a groups with a small set of test cases while the state of programs variables is manually checked to analyze the programmer's logic and assumptions.
The goals of a walkthrough:
- Do knowledge transfers and evaluate the contents of the document
- A common understandings and to gather feedbacks.
- Examine and discuss the validity of the proposed solutions
Code Based Testing
The principle of structural code based testing is to have each and every statement in the program executed at least once during the test. Code-based testing consists of Dynamic Testing, Cyclomatic Complexity to test whether complexity of code is manageable, and Static Testing.
Code Driven Testing
Code driven test automation is a key feature of agile software development, where it is known as Test-driven development (TDD). Proponents argue that it produces software’s that is both more reliable and less costly than code that is tested by manual explorations. It is considered reliable because code coverage is more and better and because it is run constantly during developments rather than once at the end of waterfall development cycles.
Code Free Testing
Code free testing, a testing technique performed without the execution of code. The static testing techniques such as review and static analysis are part of code free testing.
Comparison testing is a type of testing, where testers compare a software product’s strengths and weaknesses with other software that are currently available in the market. Comparison test is a very good indicator of how competitive and useful the software product will be to the end users soon after its commercial release.
It is a testing’s used to ensure compatibility of the application/website /system built with various other objects such as hardware platforms, other web browsers, operating systems etc. This type of testing’s helps find out how well a system performs in a particular environments that includes network, hardware, operating system and other software etc.
- The testing of applications or the products built with the computing environments.
- It tests whether the applications or the software products built is compatible with the hardware’s, databases, other system software, operating system.
Compliance testing verifies that the application was developed in accordance with information technology standards, procedures, and guidelines. The methodologies are used to increase the probability of success, to enable the transfer of people in and out of the project with minimal cost, and to increase the maintainability of the application system.
Concurrency Testing is used to know the effects of Code Modules, accessing the Applications or Databases by different users at the same times. It helps identifying and measuring the problems in Response times, levels of locking and deadlocking in applications.
Vugen (Virtual User Generator) used to add number of concurrent users and how the users need to be added like Spike Stepped or Gradual Rampup.
Condition Coverage Testing
Condition coverage is about testing that any operands which are part of the if expression can be evaluated to both true and false without issues.
Configuration testing is the process of testing a system under development on machines which have various combinations of hardware and software.
It type testing to determine whether products or systems meets some specified standards that has been developed for interoperability or efficiency.
Conformances testing often performed by external organizations this is sometimes the standards body to give greater guarantees of compliance.
Context Driven Testing
Context-driven testing is a model for developing and debugging computer software that takes into account the ways in which the programs will be used or are expected to be used in the real world. In order to successfully conduct this type of testing, software developers must identify the intended market and evaluate the environments in which people are likely to employ the product.
Control Flow Path
Control flow paths are graphical representations of all paths that might be traversed through programs during its executions. A entry blocks through which controls enters into the flow graph and the exit blocks through which control flow leaves.
Testing of procedures or programs used to convert data’s from existing systems for use replacement systems.
Cyclomatic complexity is a numbers used to express the complexities of source. It is calculated based on numbers of different possible paths through source codes. A low cyclomatic complexity’s is one factor to improve maintainability, readability and testability of a code.