In this type of testing, the use of automated tool or any script is prohibited. What will happen here is that the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug. | Manual Testing |
Crosby: "If I deliver all that is specified in the requirements document, then I will have delivered quality software." Juran: "one must satisfy the client’s needs, wants, and expectations that are not necessarily described in the requirements documentation." | Software Quality |
________ is recognized differently depending on each perspective, including that of the clients, maintainers, and users. Sometimes, it is necessary to differentiate between the client, who is responsible for acquiring the software, and the users, who will ultimately use it. | Software quality |
A set of activities that define and assess the adequacy of software processes to provide evidence that establishes confidence that the software processes are appropriate for and produce software products of suitable quality for their intended purposes. | Software Quality Assurance |
Prototyping affords both the engineer and the user a chance to “test drive” software to ensure that it is, in fact, what the user needs. | Software Quality Assurance through Prototyping |
________ is the process of developing a trial version of a system (a prototype) or its components or characteristics in order to clarify the requirements of the system or to reveal critical design considerations. | Prototyping |
Advantages of Prototype Model | -Users are actively involved in the development -the users get a better understanding of the system being developed. -Errors can be detected much earlier. -Quicker user feedback is available leading to better solutions -Missing functionality can be identified easily. -Confusing or difficult functions can be identified. -Requirements validation, Quick implementation of, incomplete, but functional application. |
Disadvantages of Prototype model | -Leads to implementing and then repairing way of building systems. -May increase the complexity of the system as scope of the system may expand beyond original plans. -Incomplete application may cause application not to be used as the full system was designed. -Incomplete or inadequate problem analysis. |
When to use Prototype model | -When the desired system needs to have a lot of interaction with the end users -Online systems, web interfaces have a very high amount of interaction with end users -Prototyping ensures that the end users constantly work with the system and provide a feedback which is incorporated in the prototype to result in a useable system. |
_________ is a systems development method in which a prototype is built, tested and then reworked as necessary until an acceptable outcome is achieved from which the complete system or product can be developed. | Prototyping Model |
A prototyping model starts with requirement analysis. In this phase, the requirements of the system are defined in detail. During the process, the users of the system are interviewed to know what is their expectation from the system. | Step 1. Requirements Gathering and Analysis |
This model works best in scenarios where not all of the project requirements are known in detail ahead of time. It is an iterative, trial-and-error process that takes place between the developers and the users. | Prototyping Model |
The second phase is a preliminary design or a quick design. In this stage, a simple design of the system is created. However, it is not a complete design. It gives a brief idea of the system to the user. The quick design helps in developing the prototype. | Step 2: Quick Design |
In this phase, an actual prototype is designed based on the information gathered from quick design. It is a small working model of the required system. | Step 3: Build a Prototype |
In this stage, the proposed system is presented to the client for an initial evaluation. It helps to find out the strength and weakness of the working model. Comment and suggestion are collected from the customer and provided to the developer. | Step 4: Initial User Evaluation |
If the user is not happy with the current prototype, you need to refine the prototype according to the user's feedback and suggestions. This phase will not over until all the requirements specified by the user are met. Once the user is satisfied with the developed prototype, a final system is developed based on the approved final prototype. | Step 5: Refining prototype |
Once the final system is developed based on the final prototype, it is thoroughly tested and deployed to production. The system undergoes routine maintenance for minimizing downtime and prevent large-scale failures. | Step 6: Implement Product and Maintain |
This method involves exploring ideas by quickly developing a prototype based on preliminary requirements that is then revised through customer feedback. The name ___________ refers to the fact that each prototype is completely discarded and may not be a part of the final product. | Rapid throwaway |
This approach uses a continuous, working prototype that is refined after each iteration of customer feedback. Because each prototype is not started from scratch, this method saves time and effort | Evolutionary |
This technique breaks the concept for the final product into smaller pieces, and prototypes are created for each one. In the end, these prototypes are merged into the final product. | Incremental |
This prototype model is used specifically for web development. All web prototypes are built in an HTML format with a services layer and are then integrated into the final product. | Extreme |
Advantages of the Prototyping Model | -Users are actively involved in development. Therefore, errors can be detected in the initial stage of the software development process. -Missing functionality can be identified, which helps to reduce the risk of failure as Prototyping is also considered as a risk reduction activity. -Helps team member to communicate effectively -Customer satisfaction exists because the customer can feel the product at a very early stage. |
Disadvantages of the Prototyping Model | -Prototyping is a slow and time taking process -The cost of developing a prototype is a total waste as the prototype is ultimately thrown away. -Prototyping may encourage excessive change requests. -Sometimes customers may not be willing to participate in the iteration cycle for the longer time duration -There may be far too many variations in software requirements when each time the prototype is evaluated by the customer. |
In software engineering, the term _________ is to review any work done by trained people, they inspect the software to find out the positive and negative aspects of a program. | Software Review |
It is a complete process that results in carefully examining a software product in a meeting or at any event. | Software Review |
_________ is an important part of SDLC that assists software engineers in validating the quality, functionality, and other vital features and components of the software. | Software review |
Objectives of Software Review | 1. To improve the productivity of the development team. 2. To make the testing process time and cost effective. 3. To make the final software with fewer defects. 4. To eliminate the inadequacies. |
Process of Software Review | Entry Evaluation | Management Preparation | Review Planning | Preparation | Examination and Exit Evaluation |
Types of Software Reviews | 1. Software Peer Review 2. Software Management Review 3. Software Audit Review |
Is the process of assessing the technical content and quality of the product and it is usually conducted by the author of the work product along with some other developers. | Software Peer Review |
Is performed in order to examine or resolve the defects in the software, whose quality is also checked by other members of the team. | Software Peer Review |
Types of Software Peer Review | 1. Code Review 2. Pair Programming 3. Walkthrough 4. Technical Review 5. Inspection |
Computer source code is examined in a systematic way. | Code Review |
It is a code review where two developers develop code together at the same platform. | Pair Programming |
Members of the development team is guided by author and other interested parties and the participants ask questions and make comments about defects. | Walkthrough |
A team of highly qualified individuals examines the software product for its client’s use and identifies technical defects from specifications and standards. | Technical Review |
In inspection the reviewers follow a well-defined process to find defects. | Inspection |
Evaluates the work status. In this section decisions regarding downstream activities are taken. | Software Management Review |
Is a type of external review in which one or more critics, who are not a part of the development team, organize an independent inspection of the software product and its processes to assess their compliance with stated specifications and standards. This is done by managerial level people. | Software Audit Review |
Advantages of Software Review | • Defects can be identified earlier stage of development (especially in formal review). • Earlier inspection also reduces the maintenance cost of software. • It can be used to train technical authors. • It can be used to remove process inadequacies that encourage defects. |
Was developed by IBM in the early 1970s, when it was noticed that the testing was not enough sufficient to attain high quality software for large applications. | Software Inspection |
Is used to determine the defects in the code and remove it efficiently. This prevents defects and enhances the quality of testing to remove defects. This software inspection method achieved the highest level for efficiently removing defects and improving software quality. | Inspection |
Was developed in the mid-1970s, later extended and revised. The process must have an entry criterion that determines whether the inspection process is ready to begin. this prevents incomplete products from entering the inspection process. Entry criteria can be interstitial with items such as “The Spell-Document Check”. | Software Inspection Process |
Stages in Software Inspection Process | 1. Planning 2. Overview Meeting 3. Preparation 4. Inspection Meeting 5. Rework 6. Follow Up |
The moderator plans the inspection. | Planning |
The background of the work product is described by the author. | Overview Meeting |
The examination of the work product is done by inspector to identify the possible defects. | Preparation |
The reader reads the work product part by part during this meeting and the inspectors the faults of each part. | Inspection Meeting |
After the inspection meeting, the writer changes the work product according to the work plans. | Rework |
The changes done by the author are checked to make sure that everything is correct. | Follow Up |
Are two separate bugs that interact: you trip going downstairs, and when you reach for the handrail it comes off in your hand. - Paul Graham (2001) | Compound bugs |
Our objective with Inspections is to reduce the Cost of Quality by finding and removing defects earlier and at a lower cost. While some testing will always be necessary, we can reduce the costs of test by reducing the volume of defects propagated to test. - Ron Radice (2002) | Code Reviews and Inspection |
Software Quality from User's Perspective | • Correctness • Usability • Reliability • Security • Adaptability |
The software has to work, period. | Correctness |
It has to be easy to learn and easy to use. | Usability |
It has to stay up and be available when you need it. | Reliability |
The software has to prevent unauthorized access and protect your data. | Security |
It should be easy to add new features. | Adaptability |
Software Quality from Developer's Perspective | • Maintainability • Portability • Readability • Understandability • Testability |
It has to be easy to make changes to the software | Maintainability |
It has to be easy to move the software to a different platform. | Portability |
Many developers won’t admit this, but you do need to be able to read the code. | Readability |
The code needs to be designed in such a way that a new developer can understand how it all hangs together. | Understandability |
Well, at least the testers think your code should be easy to test. Code that’s created in a modular fashion, with short functions that do only one thing, is much easier to understand and test than code that is all just one big main() function | Testability |
Software Quality Assurance (SQA) has three legs to it: | • Testing • Debugging • Reviews |
Finding the errors that surface while your program is executing, also known as dynamic analysis. | Testing |
Getting all the obvious errors out of your code—the ones that are found by testing it. | Debugging |
Finding the errors that are inherently in your code as it sits there, also known as static analysis. | Reviews |
Testing alone is not effective, it will only find errors about 50% or so in the program. Adding some type of code review in testing regimen, to find errors in code, can bring the percentage up to 93-99%. Three types of reviews are typically done: ________, _________, ________. | Walkthroughs, Reviews, and Inspections |
________ also known as desk checks or code reads, are the least formal type of a review. _________ are normally used to confirm small changes to code, say a line or two, that you’ve just made to fix an error. | Walkthroughs |
This is somewhat more formal than a walkthrough._______ are what most software developers do. | Code Review |
You should always do a _______ if you’ve changed a substantial amount of code, or if you’ve added more than just a few lines of new code to an existing program. | Code review |
Attendees of code reivew | • The moderator of the code review is usually the author. • There should be one or more developers at the meeting, someone who’s working on the same project as the author • There should be a tester at the code review. • Finally, there should be an experienced developer present who’s not on the same project as the author. |
________ are real meetings. | Code reviews |
________ are not allowed at code reviews. | Managers |
_________ are the most formal type of review meeting | Code inspections |
________ can be used to review planning documents, requirements, designs, or code, in short, any work product that a development team produces. | Inspections |
________ are typically used by larger organizations because they take more training, time, and effort than walkthroughs or code reviews. They’re also used for mission- and safety-critical software where defects can cause harm to users. | Inspections |
Code inspections criteria | • Inspections use checklists of common error types to focus the inspectors. • The focus of the inspection meeting is solely on finding errors; no solutions are permitted • Reviewers are required to prepare beforehand; the inspection meeting will be canceled if everyone isn’t ready. • Each participant in the inspection has a distinct role. • All participants have had inspection training |
Inspection Roles | • Moderator • Author • Reader • Reviewers • Recorder • Managers |
Gets all the materials from the author, decides who the other participants in the inspection should be, and is responsible for sending out all the inspection materials and scheduling and coordinating the meeting. | Moderator |
Distributes the inspection materials to the moderator. If an Overview meeting is required, the author chairs it and explains the overall design to the reviewers. | Author |
_____ is supposed to paraphrase the code, not read it. Paraphrasing implies that the _____ has a good understanding of the project, its design, and the code in question. | Reader |
Can be anyone with an interest in the code who is not the author. Normally, ________ are other developers from the same project. | Reviewers |
Is one of the reviewers and is the one who takes notes at the inspection meeting. The _______ merges the defect lists of the reviewers and classifies and records errors found during the meeting. | Recorder |
As with code reviews, _______ aren’t invited to code inspections. | Managers |
Inspection Phase and Procedures | Planning The Overview Meeting Preparation The Inspection Meeting The Inspection Report Rework and Follow-up |
The moderator organizes and schedules the meeting and picks the participants. The moderator and the author get together to discuss the scope of the inspection materials | Planning |
Is necessary if several of the participants are unfamiliar with the project or its design and they need to come up to speed before they can effectively read the code. | Overview Meeting |
Each reviewer reads the work to be inspected. _______ should take no more than two or three hours | Preparation |
The __________ should last no more than two hours. If there is any material that has not been inspected at the end of that time, a new meeting is scheduled. | Inspection meeting |
_________ to all participants. The central part of the report is the defects that were found in the code at the meeting. | Inspection report |
The author fixes all the severity 1 through 3 defects found during the meeting. If enough defects were found, or if enough refactoring or code changes had to occur, then another Inspection is scheduled. Regardless of how much code is changed, the moderator must check all the changes as part of the follow-up | Rework and Follow-up |
(MCR) | Modern Code Review |
________ is the manual assessment of source code by humans, mainly intended to identify defects and quality problems. | Code review |
A lightweight variant of the code inspections investigated since the 1970s, prevails today both in industry and open-source software (OSS) systems. | Modern Code Review (MCR) |
Code Review Approaches | The Email Thread Pair Programming Over-The-Shoulder Tool Assisted |
As soon as a given piece of code is ready for review, the file is sent around to the appropriate colleagues via email for each of them to review as soon as their workflow permits. | The Email Thread |
As one of the hallmarks of Extreme Programming (XP), this approach to writing software puts developers’ side by side (at least figuratively), working on the same code together and thereby checking each other’s work as they go. | Pair Programming |
As there is arguably no simpler and more efficient way to review code than through software-based code review tools, some of which are browser-based or seamlessly integrate within a variety of standard IDE and SCM development frameworks. | Tool Assisted |
_________ is a form of testing in which various subsystems are combined to test the entire system as a complete entity. It can also be stated as the process of verifying and validating that a software or application is bug free and it meets the technical requirements. | Software testing |
This is a set of tasks that ensure that the software implements a specific function. A question that will popped up here is, are we building the product right? | Verification |
A different set of tasks that ensure that the software has been built is traceable to customer requirements. The question here is, are we building the right product. | Validation |
Different Types of Software Testing | Manual Testing Automation Testing Dynamic Testing |
2 forms of dynamic testing | Black-box White-box |
In this type of testing, the use of automated tool or any script is prohibited. What will happen here is that the tester takes over the role of an end-user and tests the software to identify any unexpected behavior or bug. | Manual Testing |
This testing is also known as Test Automation, the tester writes scripts and uses another software to test the product. It involves the automation of a manual process. Automation testing is used to re-run the test scenarios that were performed manually, quickly, and repeatedly. | Automation Testing |
Software is developed in units called subroutines or programs. These units, in turn, are combined to form large systems. | Dynamic Testing |
his testing involves viewing the software unit as a device that has expected input and output behaviors but whose internal workings are unknown | Black-box |
A test that treats the software unit as a device that has expected input and output behaviors but whose internal workings, unlike the unit in blackbox testing, are known. | White-box |
Other types of Software Testing | Static testing Integration testing System testing User acceptance testing Unit Testing Regression Testing Smoke Testing Alpha Testing Beta Testing Stress Testing Performance Testing Object-Oriented Testing |
Special software programs called static analyzers are run against new code. Rather than reviewing input and output, the static analyzer looks for suspicious patterns in programs that might indicate a defect | Static testing |
The software units are combined into an integrated subsystem that undergoes rigorous testing to ensure that the linkages among the various subsystems work successfully | Integration testing |
The various subsystems are combined to test the entire system as a complete entity. | System testing |
Independent testing is performed by trained end users to ensure that the system operates as they expect. | User acceptance testing |
It focuses on the smallest unit of software design. In this, we test an individual unit or group of interrelated units. | Unit Testing |
Every time a new module is added leads to changes in the program. This type of testing makes sure that the whole component works properly even after adding components to the complete program. | Regression Testing |
This test is done to make sure that software under testing is ready or stable for further testing. It is called a _______ as the testing an initial pass is done to check if it did not catch the fire or smoke in the initial switch on. | Smoke Testing |
This is a type of validation testing. It is a type of acceptance testing which is done before the product is released to customers. | Alpha Testing |
The beta test is conducted at one or more customer sites by the end-user of the software. This version is released for a limited number of users for testing in a real-time environment. | Beta Testing |
In this, we give unfavorable conditions to the system and check how they perform in those conditions. | Stress Testing |
It is designed to test the run-time performance of software within the context of an integrated system. It is used to test the speed and effectiveness of the program. | Performance Testing |
This testing is a combination of various testing techniques that help to verify and validate object-oriented software. | Object-Oriented Testing |
Object-oriented testing is done in the following manner: | -Testing of Requirements
-Design and Analysis of Testing
-Testing of Code
-Integration testing
-System testing
-User Testing |
Steps in test process | 1. Planning and control 2. Analysis and Design 3. Implementation and Execution 4. Evaluating Exit Criteria and Reporting 5. Test Closure Activities |
Involves creating a document that contains the overall approach and test objectives. It involves reviewing the test basis, identifying the test conditions based on analysis of test items, writing test cases and Designing the test environment. | Test planning |
Is the activity of comparing actual progress against the plan, and reporting the status, including deviations from the plan. It involves taking actions necessary to meet the mission and objectives of the project. | Control |
The test basis is the information on which test cases are based, including the requirements, design specifications, product risk analysis, architecture and interfaces. | Analysis and Design |
Test execution involves actually running the specified test on a computer system either manually or by using an automated test tool. One of the major tasks here is to create test suites from test cases for efficient test execution. | Implementation and Execution |
Is a collection of test cases that are used to test a software program | Test suite |
Is a process defining when to stop testing. It has the following major tasks, such as assessing if more test is needed or if the exit criteria specified should be changed, and writing a test summary report for stakeholders | Evaluating exit criteria |
Pass percentage exit criteria | 90%> |
Are done when software is ready to be delivered. It has the following major tasks, such as checking which planned deliverables are actually delivered, finalizing and archiving testware such as scripts, and evaluating how the testing went and learn lessons for future releases and projects. | Test Closure Activites |
Is a software testing technique by means of which individual units of software i.e., group of computer program modules, usage procedures and operating procedures are tested to determine whether they are suitable for use or not. | Unit Testing |
Objectives of unit testing | 1. to isolate a section of code 2. to verify the correctness of code 3. test every function and procedure 4. fix bug early and save cost 5. to help developers understand the code base 6. help for code reuse |
2 types of unit testing | Manual and Automated |
Advantages of Unit testing | 1. allows developers to learn what functionality is provided by a unit and basic understanding of the unit API 2. allows the programmer to refine code and make sure the module works properly 3. enables to test parts of the project without waiting for others to be completed |
Is the process in which test cases are written before the code that validates those cases. It depends on repetition of a very short development cycle. | Test Driven Development (TDD) |
Sequence of TDD | 1. add a test 2. run all the test cases 3. write the code that passes the test case 4. run the test cases 5. refactor the code 6. repeat the steps again and again |
Create a test case and make it fail | Red |
Make the test case pass by any means | Green |
Change the code to remove duplicate/redundancy | Refractor |
Benefits of TDD | 1. constant feedback 2. quality of design increases 3. safety net against the bugs 4. application actually meets the requirements 5. short development lifecycle |
Includes all of the steps, processes, and activities that are required to make a software system or update available to its intended users. | Software deployment |
Refers to the stages of development for a piece of computer software, whether it is released as a piece of physical media, online, or as a web-based application. | Software Release (cycle) |
Developers must gather all of the code that will be deployed along with any other libraries, configuration files or resources needed for the application to function. | Preparation |
Before an update can be pushed to the live environment, it should be deployed to a test server where it can be subjected to a pre-configured set of automated tests. | Testing |
Is a technique in which automated Unit test are used to drive the design and free decoupling of dependencies. | Test Driven Development |
Enable developers to track progress on their projects, and manage changes. Constant integration and deployment may be utilized to deploy software as changes are done, giving seamless updates for end users. | Software deployment tools |
Sample of software deployment tools | Bamboo TeamCity AWS CodeDeploy Octopus Deploy |
________ is not the last stage of the software development life cycle. ___________ is the final step of the life cycle. | Deployment, Maintenance |