Friday, September 26, 2008
Compatability Testing
Breadth Testing
Parallel Testing
Control Testing
Objective:
Accurate and complete data.
Authorized transactions.
Maintenance of adequate audit trail of information.
Efficient, effective and economical process.
Process meeting the needs of the user.
Test Summary Report
The typical objectives of a test summary report are to:
v Summarize all of the testing that was performed since the previous test summary report.
v Enable project management and the customer to know the status of project testing.
Error handling Testing
Locale
Wednesday, September 17, 2008
Pseudolocalization
Internationalization and localization
Monday, September 15, 2008
Parser
Fault Injection
Software brittleness
Types of prototyping
Also called close ended prototyping. Throwaway or Rapid Prototyping refers to the creation of a model that will eventually be discarded rather than becoming part of the finally delivered software. After preliminary requirements gathering is accomplished, a simple working model of the system is constructed to visually show the users what their requirements may look like when they are implemented into a finished system.
Evolutionary prototyping:
Evolutionary Prototyping (also known as breadboard prototyping) is quite different from Throwaway Prototyping. The main goal when using Evolutionary Prototyping is to build a very robust prototype in a structured manner and constantly refine it. "The reason for this is that the Evolutionary prototype, when built, forms the heart of the new system, and the improvements and further requirements will be built
Incremental prototyping:
The final product is built as separate prototypes At the end the separate prototypes are being merged in an overall design
Extreme prototyping:
Extreme Prototyping as a development process is used for developing especially web applications. Basically, it breaks down web development into three phases, each one based on the preceding one
Advantages of prototyping:
Reduced time and costs: Prototyping can improve the quality of requirements and specifications provided to developers.
Improved and increased user involvement: Prototyping requires user involvement and allows them to see and interact with a prototype allowing them to provide better and more complete feedback and specifications
Software prototyping
Proof-of-Principle Prototype (Model)
Monday, August 25, 2008
Proof of Concept
Concept Testing
Tuesday, August 19, 2008
Data flow analysis
Hazard Analysis
Control flow analysis
Control flow analysis
Dynamic analysis
Status accounting
Function Point Analysis (FPA)
Mutation testing
Monkey test
Stub
Heuristic evaluation
Testware
Orthogonal array
Thread Testing
Wide Band Delphi
Security testing
Fault Tree Analysis
Status Accounting
Tuesday, July 22, 2008
Difference Between Smoke and Sanity Tests
Thursday, July 10, 2008
Build Verification test
Build Verification test is a set of tests run on every new build to verify that build is testable before it is released to test team for further testing. These test cases are core functionality test cases that ensure application is stable and can be tested thoroughly. Typically BVT process is automated. If BVT fails that build is again get assigned to developer for fix.
BVT is also called smoke testing or build acceptance testing (BAT)
Use Case
Use cases are goals (use cases and goals are used interchangeably) that are made up of scenarios. Scenarios consist of a sequence of steps to achieve the goal; each step in a scenario is a sub (or mini) goal of the use case. As such, each sub goal represents either another use case (subordinate use case) or an autonomous action that is at the lowest level desired by our use case decomposition.
State diagrams
State:
The state object is a snapshot of an object at a particular point in its life. A state may have an activity describing the function being performed.
Initial State:
The initial state is the starting state of the object with reference to the behaviour that the diagram explains. Each state diagram should have only one initial state.
Final State:
Each final state is the ending state of the object with reference to the behaviour that the diagram explains. There may be multiple final states for an object.
Transition:
The transition link represents the relationship between different states of an object. The transition guard is a condition which limits the cases in which a transition can occur. The transition action is performed during the transition and cannot be interrupted.
Scripting language
Robustness testing
Robustness testing approaches
Our robustness testing experiments of HA middleware
Scribe
Configuration management
Testing Process
Input
The following input is required to test an application block:
· Functional specifications
· Requirements
· Performance objectives
· Deployment scenarios
Steps
Figure shows the steps in the testing process for application blocks.
1. Create test plans. Create test plan documentation with a prioritized list of test cases and execution details.
2. Review the design. Review the design to ensure that it addresses all the deployment scenarios and the requirements. Also, ensure adherence to guidelines for performance, security, globalization, maintainability, and so on.
3. Review the implementation. Review the code to ensure that various best practices are followed.
4. Perform black box testing. Test the code from an end-user perspective by executing all the end-user scenarios.
5. Perform white box testing. Analyze the code for failure scenarios and simulate them by passing invalid data using custom test harnesses.
Database Integrity Testing
Incremental development model
Usability Testing
Wednesday, July 9, 2008
Bug Life Cycle
In software development process, the bug has a life cycle. The bug should go through the life cycle to be closed. A specific life cycle ensures that the process is standardized. The bug attains different states in the life cycle.
The life cycle of the bug can be shown diagrammatically as follows:
Description of Various Stages:
1. New: When the bug is posted for the first time, its state will be “NEW”. This means that the bug is not yet approved.
2. Open: After a tester has posted a bug, the lead of the tester approves that the bug is genuine and he changes the state as “OPEN”.
3. Assign: Once the lead changes the state as “OPEN”, he assigns the bug to corresponding developer or developer team. The state of the bug now is changed to “ASSIGN”.
4. Test: Once the developer fixes the bug, he has to assign the bug to the testing team for next round of testing. Before he releases the software with bug fixed, he changes the state of bug to “TEST”. It specifies that the bug has been fixed and is released to testing team.
5. Deferred: The bug, changed to deferred state means the bug is expected to be fixed in next releases. The reasons for changing the bug to this state have many factors. Some of them are priority of the bug may be low, lack of time for the release or the bug may not have major effect on the software.
6. Rejected: If the developer feels that the bug is not genuine, he rejects the bug. Then the state of the bug is changed to “REJECTED”.
7. Duplicate: If the bug is repeated twice or the two bugs mention the same concept of the bug, then one bug status is changed to “DUPLICATE”.
8. Verified: Once the bug is fixed and the status is changed to “TEST”, the tester tests the bug. If the bug is not present in the software, he approves that the bug is fixed and changes the status to “VERIFIED”.
9. Reopened: If the bug still exists even after the bug is fixed by the developer, the tester changes the status to “REOPENED”. The bug traverses the life cycle once again.
10. Closed: Once the bug is fixed, it is tested by the tester. If the tester feels that the bug no longer exists in the software, he changes the status of the bug to “CLOSED”. This state means that the bug is fixed, tested and approved.
Thursday, July 3, 2008
Recovery testing
Stubs and Drivers
Due to such interfaces, independent testing of a Unit becomes impossible. But that is what we want to do; we want to test a Unit in isolation! So here we use ‘Stub’ and ‘Driver.
A ‘Driver’ is a piece of software that drives (invokes) the Unit being tested. A driver creates necessary ‘Inputs’ required for the Unit and then invokes the Unit.
A Unit may reference another Unit in its logic. A ‘Stub’ takes place of such subordinate unit during the Unit Testing. A ‘Stub’ is a piece of software that works similar to a unit which is referenced by the Unit being tested, but it is much simpler that the actual unit. A Stub works as a ‘Stand-in’ for the subordinate unit and provides the minimum required behavior for that unit.
Programmer needs to create such ‘Drivers’ and ‘Stubs’ for carrying out Unit Testing.
Both the Driver and the Stub are kept at a minimum level of complexity, so that they do not induce any errors while testing the Unit in question.
Example - For Unit Testing of ‘Sales Order Printing’ program, a ‘Driver’ program will have the code which will create Sales Order records using hard coded data and then call ‘Sales Order Printing’ program. Suppose this printing program uses another unit which calculates Sales discounts by some complex calculations. Then call to this unit will be replaced by a ‘Stub’, which will simply return fix discount data.
Monday, June 30, 2008
Test strategy
Test Factor: The risk of issue that needs to be addressed as a part of the test strategy. Factors that are to be addressed in testing a specific application system will form the test factor.
Test phase: The phase of the systems development life cycle in which testing will occur.
Friday, June 27, 2008
Severity
Priority
Quality
Audit
(1) the form or content of the products to be produced
(2) the process by which the products shall be produced
(3) how compliance to standards or guidelines shall be measured. [IEEE 1028]
Error Seeding
Levels of the CMM
It is characteristic of processes at this level that they are (typically) undocumented and in a state of dynamic change, tending to be driven in an ad hoc, uncontrolled and reactive manner by users or events. This provides a chaotic or unstable environment for the processes.
Level 2 - Repeatable
It is characteristic of processes at this level that some processes are repeatable, possibly with consistent results. The processes may not repeat for all the projects in the organization. The organization may use some basic project management to track cost and schedule.
Level 3 - Defined
It is characteristic of processes at this level that there are sets of defined and documented standard processes established and subject to some degree of improvement over time. These standard processes are in place (i.e., they are the AS-IS processes) and used to establish consistency of process performance across the organization. Projects establish their defined processes by applying the organization’s set of standard processes, tailored, if necessary, within similarly standardized guidelines.
Level 4 - Managed
It is characteristic of processes at this level that, using process metrics, management can effectively control the AS-IS process (e.g., for software development ). In particular, management can identify ways to adjust and adapt the process to particular projects without measurable losses of quality or deviations from specifications. Process Capability is established from this level.
Level 5 - Optimized
It is characteristic of processes at this level that the focus is on continually improving process performance through both incremental and innovative technological changes/improvements.
Structure of CMM
Key Process Areas: A Key Process Area (KPA) identifies a cluster of related activities that, when performed collectively, achieve a set of goals considered important.
Goals: The goals of a key process area summarize the states that must exist for that key process area to have been implemented in an effective and lasting way. The extent to which the goals have been accomplished is an indicator of how much capability the organization has established at that maturity level. The goals signify the scope, boundaries, and intent of each key process area.
Common Features: Common features include practices that implement and institutionalize a key process area. There are five types of common features: Commitment to Perform, Ability to Perform, Activities Performed, Measurement and Analysis, and Verifying Implementation.
Key Practices: The key practices describe the elements of infrastructure and practice that contribute most effectively to the implementation and institutionalization of the KPAs.
Capability Maturity Model Integration (CMMI)
LCSAJ
Traceability matrix
Defect
Concurrency testing
Business process-based testing
Agile testing
Accessibility testing
State transition testing
Structured basis testing
Test script
Scenario testing
Thursday, June 26, 2008
Test plan
Error Guessing
Entity Life Cycle Testing
Decision Testing
Boundary value analysis
Equivalence partitioning
It is a technique with the goal:
To reduce the number of test cases to a necessary minimum.
To select the right test cases to cover all possible scenarios.
Although in rare cases equivalence partitioning is also applied to outputs of a software component, typically it is applied to the inputs of a tested component. The equivalence partitions are usually derived from the specification of the component's behaviour.
Black Box Design Techniques
- Equivalence Partitioning
- Boundary Value Analysis
- Algorithm Test
- Decision Table Test
- Syntactic Test
- Semantic Test
- Elementary Comparison Test
- Data Cycle Test / Entity Life Cycle Test
- Process Cycle Test
- Program Interface Test
- Real-Life Test
- Error Guessing
- Random Test
- Idiot Proofing
White box test design techniques
- Line coverage
- Statement coverage
- Decision coverage
- Condition coverage
- Decision condition coverage
- Multiple condition coverage
- Determination condition coverage
White box test design techniques
Line Coverage:
Line coverage is the weakest coverage criteria. It requires execution of every line of code at least once.
Statement Coverage:
It requires the execution of all program statements. However, all the statements in a program could be executed without revealing errors even if the program as a whole may be riddles with errors.
Decision Coverage:
For decision coverage, the programmer can use case a. and any of the other three. For decision coverage, the programmer must test once when the condition (we must take the THEN and ELSE parts) is true and once when it is false. It should cover all lines as well as all branches of the program.
Condition Coverage:
It checks each of the ways the condition can be made True or False.
Decision/Condition Coverage:
In this type of coverage both decision as well as condition coverage must be satisfied.
Prototyping
Software Development Lifecycle Models
a. Pure Waterfall
b. The “V” Model
2. INCREMENTAL MODELS
a. The Staged Delivery Model
b. The Parallel Development Model
3. EVOLUTIONARY MODELS
a. The Spiral Model
4. RELATED ASPECTS OF SOFTWARE ENGINEERING
a. Component-Based Software Engineering
b. Architecture Tradeoff Analysis
c. The Iterative Development Method
Software life cycle model
Recovery Testing
Examples of recovery testing:
While the application running, suddenly restart the computer and after that check the validness of application's data integrity;
While application receives data from the network, unplug and then in some time plug-in the cable, and analyze the application ability to continue receiving of data from that point, when network connection disappeared;
To restart the system while the browser will have definite number of sessions and after rebooting check, that it is able to recover all of them.
Negative Test and Positive Test
Fuzz testing
Test suite
Dynamic Testing
Static Testing
Bug
Test Scenario
Test Case Format
A cross reference to the numbers of the requirements (in the system specification) which are being verified in this test.
Purpose:
Describe the features of the software to be tested, and the particular behavior being verified by this test.
Procedure:
Describe how to carry out the test (Sometimes this will be as simple as "Enter the data in the table below at the keyboard.") Where appropriate, you may omit redundant explanations by referring to procedures you described in previous portions of the document.
Test Data:
Write the actual input data to be provided and the expected output for your actual working product. You must provide the actual input data values, not just a description. For example, "Enter a new wholesale price" is wrong. "Enter a wholesale price of $23.50" is correct. For the expected results you must provide the actual values not just a description. For example, "The updated retail price is displayed" is wrong. "The retail price of $49.99 is displayed" is correct. Be sure to include any manual calculations necessary to determine the expected outputs. (For example, if the program converts Fahrenheit temperature to Celsius, show the hand computations you did using the conversion formulas to arrive at the expected results).
Often the test data can be shown in tabular form, with a column of input items and the corresponding column of expected outputs. If the test input is contained in an external data file, you can provide the file name and have the file contents listed on a separate page.
Test Case
Automation Testing
Ad Hoc Testing
Smoke Testing
Functional Testing
Performance Testing
Beta
Alpha
In the first phase of testing, developers generally test the software using white box techniques. Additional validation is then performed using black box or grey box techniques, by another dedicated testing team, sometimes concurrently. Moving to black box testing inside the organization is known as alpha release
Pre-alpha
Regression testing
Integration testing
Integration testing identifies problems that occur when units are combined. By using a test plan that requires you to test each unit and ensure the viability of each before combining units, you know that any errors discovered when combining units are likely related to the interface between units. This method reduces the number of possibilities to a far simpler level of analysis.
Unit testing
Wednesday, June 25, 2008
User Acceptance Testing or System Validation
Functional Validation/Testing
Integration Validation/Testing
Buddy Checks
Code Validation/Testing
Walkthrough
Inspection
Validation
Verification
Black Box and White Box Testing
Glass Box Testing is a technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data. Unlike black box testing, white box testing uses specific knowledge of programming code to examine outputs.
Testing Tips
Glass Box Testing is a technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data. Unlike black box testing, white box testing uses specific knowledge of programming code to examine outputs.
Friday, June 20, 2008
Comparison between the human brain and a computer
Similarities between human brain and computer
There are huge differences between brain physiology and computer processing. But there also exist few
- The similarities are
Both are used for storage of information, to process information and to run tasks.
Both play extremely important roles in society, commerce, entertainment and science.
Both work by combining the processes of several components and parts to perform their tasks.
Both can change with time. (The brain evolves, while the computer upgrades with technological advances)
Both work by transmitting "logic signals" to each of their parts. Signals are both electrical
Both can increase their memory storage capacity.
Both can degrade. (Computers break down and brain cells deteriorate)
The differences are
Brain cells signal each other electrochemically and enzymatically while computer components transmit stronger electrical signals through conductors.
Computers have no common sense or real intellect unlike the human brain.
The brain can evolve but it has hardly changed for the past 100,000 years. The computer is rapidly changing with technology.
Although both can increase their memory storage capacity, they use difference methods.
The brain can learn and understand better, while the computer can multitask and perform complex actions.
It is impossible for the brain to act without emotions while computers act only on logic.
Repairing a computer is relatively simple compared to brain surgery.
The computer can be turned off, but not the brain. (it works for 24 hours a day)
The computer can hardly innovate and invent new ideas unlike the brain.
The brain has 100 billion neurons which form billions of links is many times more complex than, the mere hundreds of millions of transistors and circuit in today's computers.
Conclusion
Counting all the similarities and differences of the brain and the computer, you would now see that the computer and the brain do have something’s in common, but in many more ways they are actually more different than they are similar.
Friday, June 13, 2008
Project Managment Basics
A method of estimating a component of work. The work is decomposed into more detail. An estimate is prepared of what is needed to meet the requirements of each of the lower, more detailed pieces of work, and these estimated are then aggregated into a total quantity for the component of work. The accuracy of bottom up estimating is driven by the size and complexity of the work identified at the lower levels
Project managment
An estimating technique that uses the values of parameters, such as scope, cost, budget and duration or measures of scale such as size , weight , and complexity from a previous, similar activity as the basis for estimating the same parameter or measure for a future activity. It is frequently used to estimate a parameter when there is a limited amount of detailed information about the project. Analogous estimating is form of Expert judgment. Analogous estimating is the most reliable when the previous activities are similar in fact and not just in appearance and the project team members preparing the estimates have the needed expertise
Thursday, June 12, 2008
Estimation Techniques
Estimates can be roughly divided into three types:
Ballpark or order of magnitude: Here the estimate is probably an order of magnitude from the final figure. Ideally, it would fall within two or three times the actual value.
Rough estimates: Here the estimate is closer to the actual value. Ideally it will be about 50% to 100% off the actual value.
Fair estimates: This is a very good estimate. Ideally it will be about 25% to 50% off the actual value.
Deciding which of these three different estimates you can provide is crucial. Fair estimates are possible when you are very familiar with what needs to be done and you have done it many times before. This sort of estimate is possible when doing maintenance type work where the fixes are known, or one is adding well-understood functionality that has been done before. Rough estimates are possible when working with well-understood needs and one is familiar with domain and technology issues. In all other cases, the best we can hope for before we begin is order of magnitude estimates. Some may quibble than order of magnitude estimates are close to no estimate at all! However, they are very valuable because they give the organization and project team some idea of what the project is going to need in terms of time, resources, and money. It is better to know that something is going to take between two and six months to do rather than have no idea how much time it will take. In many cases, we may be able to give more detailed estimates for some items rather than others. For example, we may be able to provide a rough estimate of the infrastructure we need but only an order of magnitude estimate of the people and time needed.
Order of magnitude estimate
This is what most of us face when starting off a new project. New technology, teams unfamiliar with the technology or domain, or unclear requirements ensure that this will probably be the best estimate we can provide.Break the project down into the different tasks needed. Try to get as many tasks as possible. A useful way to break down tasks is to consider typical software activities such as analysis, design, build, demo, test, fix, document, deploy, and support and see if they are required for each task and whether they need to be broken out into new tasks.
Evaluate each task on two scales: complexity (high, medium, low) and size of work (large, medium, small). A less complex task may still involve a large amount of work; for example, loading a database with information from paper forms may take several weeks. A very complex task may not involve much actual work but can still take a lot of time, as in tuning a database for optimum performance. Complex tasks are usually hard to split between many people/teams while large-size, less complex tasks can usually be split up between many people/teams.
Tasks effectively fall into one of nine combinations of complexity and size. For each combination, define an expected amount of time and resources required. For example, we could say that low complexity and small-size tasks will take one week at most, medium complexity and small-size tasks will take three weeks, and so on.
Wednesday, June 11, 2008
Defect Finding Techniques
- Static techniques
–Deliverable is examined (manually or by a tool) for defects
–Examples: reviews, walkthroughs, inspections - Dynamic techniques
–A deliverable is used to discover defects
–Example: testing - Operational techniques
–An operational system contains a defect found by users, customers, or control personnel.
–Found as a result of a failure
What is Triple constraints in Project Managment
What is Project Management
Difference btw Project and operations
A project will be of temporary in nature, with a end date and will have a uniqueness.
operations:
Operations are which will occur on a periodicity basis[ Daily, monthly] for example railway reservations and bank day to day activities with computers are called operations
