Thursday, November 19, 2009
Why Manual Software Testing Is Crucial?
In today’s world, especially the IT sector, the jungle rule prevails i.e. survival of the fittest. There is absolutely no room for the meek or the slow. This leads to longer hours, associates stretching beyond normal limits, and very often burning the midnight oil. However, all these practices come at a price. The human body can only bear so much, and after a certain point, mistakes start creeping in. This is where “Manual Software Testing” comes into play, carefully picking up the lost pieces in the creation, and exposing the flaws.It has been noticed time and again, that Manual Software Testing is a crucial and indispensable part of any project. Even before the project starts, testing comes into play in the feasibility phase. With a Software test manager in the team, one can get a clear estimate of the required time, materials and resources. This leads to better planning, and a lot of overall savings in terms of time and money. Early test estimates are a crucial factor in the decision to proceed with the product.Moreover, with the involvement of software testers in the product planning step, deep and insightful questions are asked. Typical of testers, they scrutinize the requirements with a skeptical eye, and rapidly classify the ones which might not be testable. According to the Baziuk Study (1995), the cost to repair a fault in the Operations stage is 470 – 880 times the cost to repair the same fault in the Requirements analysis phase of the project.Even in the exploration of improvement areas for any software, testing plays a crucial role. With practices like Root Cause Analysis, the overall efficiency of the product may increase upto ten-fold. Various aspects of testing like defect reports, metrics and results help the project managers gauge the progress of the project.Looking from the business point of view, testing is the only way of knowing whether the newly created product delivers the intended functionality. To promote repeat sales, every client needs an assurance that the new product will not adversely affect the working of the system already in place. Manual Software Testing is exhaustively used to ensure the same, enabling the testers to verify the working of the new product under the existing conditions.However, ignoring the testing process has proved highly detrimental in many instances. Some of the recent incidents involve a sum of $172 million, which was borne by the Japanese electronics maker Matsushita, to replace the faulty Nokia-branded BL-5C batteries.In conclusion, it can be safely inferred that testing is an irreplaceable process in the software development cycle. Apart from saving a lot of time and money, it is also the buoy which keeps the software performance afloat.
Faqs For Two Plus Of Experience In Software Testing
How to write Test Case for telephone ?
Answer1: Test cases for telephonetest the "functionality" of telephone,1. Test for presence of dial tone.2. Dial Local number and check that receiver phone(dialled no.) rings.3. Dial any STD number and check that intended phone number rings.4. Dial the number of "under test" phone and check that it rings.5. When ringing, pick it up and check that ringing stops.6. When talking - then there should be no noise or disturbance.7. Check that "redial" works properly.8. Check STD lock facility works.9. Check speed dialing facility.10. Check for call waiting facility.11. Check that only the caller can disconnect the call.12. If "telephone Under test" is engaged with any caller and at this time if a third caller attempts to call the "telephone under test" then call between two other parties should not get disconnected.13. If "telephone Under test" is engaged with any caller and at this time if a third caller attempts to call the "telephone under test" then third caller will listen to engage tone or message from exchange.14. Check for volume(increase or decrease) of the handset.15. Keep the hand set down from base unit and attempt to call the "telephone under test" then it should not ring.16. Check for call transfer facility.test the 'telephone itself1. Check for extreme temparatures (hot and cold)2. Check for different atmospheric conditions (humidity etc..)3. Check for exterme power conditions4. Check for button durability5. Check for body strengthetc...
Answer2:My company designs and build phone system software, so I am very familiar with phone testing. You could be dealing with an IVR system that has menu-driven logic, or you could be dealing with an auto-attendant with directory features. The basic idea is that you need to be able to define your expected results, and record your actual results. The medium is different, but the same basic concepts apply. In some ways the phone is easier becuase it can be a more linear process than say, a web system
How do you know when to stop testing?
This can be difficult to determine. Many modern software applications are so complex and run in such an interdependent environment, that complete testing can never be done. Common factors in deciding when to stop are...* Deadlines, e.g. release deadlines, testing deadlines;* Test cases completed with certain percentage passed;* Test budget has been depleted;* Coverage of code, functionality, or requirements reaches a specified point;* Bug rate falls below a certain level; or* Beta or alpha testing period ends.
What Will be tested on a static web page?
1. Testing all links are working properly.There are link checker programs that can help you verify if your links are broken2. Test GUI design.3. Test spelling and grammer for contents.4. Test page fonts are consistent.Again depending on the page, this may not be essential, but you can suggest to the designed to use a cascading style sheet to easily maintain a consistent style across pages.5.Title bar message testing.6.Status bar message testing.7.Scroll bars presence at page.8. Browser compatibility(IE and NetScape)IE and FireFox. Ironicly, Netscape 8 has two modes now that allows you to swicth between using the gecko render engine in Firefox and the internal IE render engine that ships with every Windows OS. It's very cool and it can save you a lot of time.9.Changing browser options of IE from Tools --> Internet Options --->10.Advanced tab?11.Changing font for browser and also font size for browser.12. Changing any privacy option from Tools --> Internet Options.13. the images are present14. conformance to W3C standards WRT tags".That's a pretty big topic, but I can touch on it. Every HTML document should tell the browser about the DTD that it was built using. Things likeEach DTD version has different standards. Some allow frames others don't, etc. You will have to learn what the DTD is supposed to use and what it's not supposed to use. Only the best web designers have the various DTDs memorised. Fortunately the W3C has made a page that will validate your pages for you at http://validator.w3.org/After your page passes through that you will get a report that lists errors and info. While most render engines will gloss over the errors and display the page "correctly", it may cause problems further down the road when editing the page. You can discuss these things with your web designer.
How can software QA processes be implemented without stifling productivity?
Implement QA processes slowly over time. Use consensus to reach agreement on processes and adjust and experiment as an organization grows and matures. Productivity will be improved instead of stifled. Problem prevention will lessen the need for problem detection. Panics and burnout will decrease and there will be improved focus and less wasted effort.At the same time, attempts should be made to keep processes simple and efficient, minimize paperwork, promote computer-based processes and automated tracking and reporting, minimize time required in meetings and promote training as part of the QA process.However, no one, especially talented technical types, like bureaucracy and in the short run things may slow down a bit. A typical scenario would be that more days of planning and development will be needed, but less time will be required for late-night bug fixing and calming of irate customers.
How to solve this issue - When developers blame testers for reporting bugs that is not reproducible on their machine?
Avoid this differences by taking screenshots and attaching them in bug tracking tool.it seems that since the environment was not the cause then the "Steps to Reproduce" portion of the Bug report were lacking clarity. Screenshots along the way are a great way to prove a point, especially when you are dealing with something that is reproducible.Sure as a test engineer we surely understand functionality and to an extent we understand the architecture of the software. Hence, we can surly say that some bugs are related to each other and some are not. So, We can introduc a column/field in our bug reporting format (What ever it is...a tool or an excel) for related bug ID.This will actually be helpful for the development community too fix the bugs.Actually Development environment should be same as Testing environment so that this issue will not arise. Make sure that before getting a Build the environment is same . Before Testing briefly go through with the Internal Release note. While Defect reporting mention proper Test data, steps etc. so that next time you can reproduce it.
Why do we recommended that we test during the design phase?
Because testing during the design phase can prevent defects later on. We recommend verifying three things...1. Verify the design is good, efficient, compact, testable and maintainable.2. Verify the design meets the requirements and is complete (specifies all relationships between modules, how to pass data, what happens in exceptional circumstances, starting state of each module and how to guarantee the state of each module).3. Verify the design incorporates enough memory, I/O devices and quick enough runtime for the final product.
How to test a application in flash?
Manually testing flash animations is as simple as making sure that the objects do what they're supposed to do. manually mostly because flash isn't really a programming language. Most developers consider it to be a toy. So the big automation companies won't consider plug-ins for the flash objects.If the flash application is a: E learning Application:1. Need to know the the Hardware Configuration, becauase if this animation contains some heavy images or movie files then it works slowly, and which is a error.so each and every images and movie should be of light weight, as far the quality says.2. File naming convention3. Flash detection4. Objects should do what they are supposed to do5. Etc.If the flash application is a: Web Application:1. File size, should be light weight, beacuase most of the user dont have high speed connection, load testing require2. Quality of texts, images and movie
How test estimation (in terms of schedule, cost, resources required) will be done during developing of test plan?
Reads on the topic:Factors that Influence Test Estimation
What kind of automated software used to test a Web-based application with a .NET (ASP.NET and C#...also SQL Server) framework?
Answer1:Mercury makes some decent products. Quick Test Pro can be used for a lot of your requirements... It can be costly and mind-numbing at times though.
Answer2:Selenium is a test tool for web applications. Selenium tests run directly in a browser, just as real users do. And they run in Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool covers such a wide array of platforms.* Browser compatability testing. Test your application to see if it works correctly on different browsers and operating systems. The same script can run on any Selenium platform.* System functional testing. Create regression tests to verify application functionality and user acceptance.
Answer3:Ruby is becoming a preferred standard for testingPerl is also used a great deal
What kind of automated testing tool should Small company use?
Automation is not designed for small test teams in companies. It does not make your testing more efficient, it just make it faster. When you hit problems (and you likely will) it will take a lot of time to fix these problems.At the only time that a good automated process can be put in place.After your company starts growing and product releases, service packs, etc start to pile up in the horizon, your team will not have the time to automate because it will come after anything else to keep revenue coming and customers happy.Automation makes you faster, a nice outcome that will become vital later. The trick is in controlling the inputs of that process to get a good bang for the buck.The standard QA tools cause a lot of trouble and more often than not end up collecting dust in the shelves.Just throwing people and money at the problem does not work and is just available to bigger companies.Reads on the topic: How do I know when to Automate?These articles will help you decide if you're even ready to automate.When Should a Test Be Automated?Brian MarickSoftware Test Automation and the Product Life Cycle: Implementingsoftware test in the product life cycleDave Kelly
What if organization is growing so fast that fixed QA processes are impossible?
This is a common problem in the software industry, especially in new technology areas. There is no easy solution in this situation, other than...* Hire good people* Ruthlessly prioritize quality issues and maintain focus on the customer;* Everyone in the organization should be clear on what quality means to the customer.
Can We do performance testing manually?*
Yes you can do Performance testing manually. For this you should open many active sessions of the application and should test it out. It also depends on what type of performance test you want to do. However, in general you can judge the active sessions, number of DB connections open, number of threads running (I have taken JAVA based Web applications as eg), the amount of the CPU time and memory being used by having a performance viewer. You can have IBM Tivoli Performance viewer. It is available for trial version also. Usually the the test is done by deploying the application on the server and accessing the application from multiple client machines and making multiple threads to run. The performance viewer should of course be installed on the server.
What's the SDLC models- waterfall and v-models?
Answer1:In large scale company first of all they are followed waterfall method. now days mostly companies are following V models.model - means the testing involvement starts from the design state itself & continues till system test.Phase TestingRequirements - reviewdesign - reviewTR - TUTthen testing phases starts.So, like this testing makes a perfect V. so we call it V model.Indicate the flow of activities in the V-model, please look at:Test Process in the V-model
Answer2:The waterfall is the General concept of all the models and most of the project based companies use V-Model. Testing will be involved from the requirements phase till the User Acceptance Test.
What's server side testing
It's testing the applications and daemons that run on a server.Server Side testing can involve testing of Servlets and Controllers.
How a particular test team is formed ?
Putting together a test team is1 - get an understanding of the application being tested2 - understand the underlying technologies3 - understand the roadmap (future plans) for the product4 - understand the budgetary limitations you are working under
Points 1 and 2 are pretty obvious. Point 3 is more to do with future planning (they might be moving from client/server to webapp, so dont go recruiting lots of client/server specialist - bad example, but you get the drift ..). Point 4 is important as it will determine not just the number of testers, but the skill level of the testers you can afford to employ, training required etc ...
Need a template for preparing the Test Environment.
Answer1:A test environment can be as simple or as complex as can be, but it *must* be seperate from a development environment. In an ideal world, you'd have a DEVelopment environment, a TEST environment, an ACCeptance environment and a partitioned PRODuction environment.The DEV environment no one in QA touches, the TEST environment no one in development touches, the ACCeptance environment is for acceptance testing by end-users and adminstrators, performance/stress/load testing and so on and should mirror the PRODuction environment. The PRODuction environment should be a live/'hot swap' configuration; the release is deployed to 'hot swap', tested by the administrators and final acceptance testing before being 'hot swapped' to live.
Answer2:TEST ENVIRONMENT:Setup of a test environment will require:- Hardware- Operating systems- Software that needs to be tested- Other required software like tools (And people who can use them)- Data configurations- Interfaces to other systems, communications- Documentation like user manuals/reference documents/configuration guides/installation guides
Setting up a dedicated Test Environment is expensive and the following needs to be considered:- To create an internal Test Environment or to outsource- To follow any External (IEEE, ISO etc.) or Internal company standards- The initial set-up & running costs- How long will the Test Environment be required?- How production like does it need to be? If the environment does not mirrors production then differences between the test and production systems and their impact on test validity must be determined.- Can you support the environment either technically or within the building infrastructure?- Could any exisiting setup for other projects in the company can be re-used- Could the setup be used for other projects within the company? - Day to day management- Procedures for controlling change (Configuration management) - Data loading and security requirements
What is the exact difference between functional and non functional testing?
Functional testing means we do functional testing to validate the functionality of the application against functional requirements document.we test for functionality of the application only. Non-functional testing means we do not test for functionality of the application System testing, load testing, stress testing, performance testing etc come under non functional testing.
How is testing affected by object-oriented designs?
A well-engineered object-oriented design can make it easier to trace from code to internal design to functional design to requirements. While there will be little affect on black box testing (where an understanding of the internal design of the application is unnecessary), white-box testing can be oriented to the application's objects. If the application was well designed this can simplify test design.
Standards and templates - what is supposed to be in a document?
All documents should be written to a certain standard and template. Standards and templates maintain document uniformity. It also helps in learning where information is located, making it easier for a user to find what they want. Lastly, with standards and templates, information will not be accidentally omitted from a document.
How to write Nunit test cases
What Is NUnit?
NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 2.2, is the fourth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages.
What is documentation change management?
Documentation change management is part of configuration management (CM). CM covers the tools and processes used to control, coordinate and track code, requirements, documentation, problems, change requests, designs, tools, compilers, libraries, patches, changes made to them and who makes the changes.
How can I test without requirements?
What is the difference between user documentation and user manual?
When a distinction is made between those who operate and use a computer system for its intended purpose, a separate user documentation and user manual is created. Operators get user documentation, and users get user manuals.
Why was bug x or bug y caught NOT during testing?"
Why the defect was allowed to be introduced into the code? Why don't they have better code reviews? Why don't the developers understand the product better? Why are the requirements not fully understood by these people?The real issue here is that they are passing quality off to the testing team and it's not our job to make the product a quality one--it's the responsibility of everyone in the company including the receptionist.It is not the job of testing to be responsible for assuring quality and it is not the purpose of testing to find bugs.Classic Testing Mistakes
Do they rely on strange configurations: ones you could never hope to reproduce? Is it reasonable that your testers should have "caught" these defects? If it is, don't make any excuses.Alternately, if it's really the requirements, how can the developers make the right product and the testers don't understand what the developers are making? There is communication about what needs to be done, and the developers seem to be getting that communication, why can't your testers? We know the reason: the developers didn't get the communication right--that's why there was a defect. So you can point out the communication as well.when there is a requirements document, testers have a tendency to only test the main path, or they'll only run one test case per requirement, when there clearly should be many tests to catch all boundaries and failures. Testers do need to be able to think about what they are doing, and it is very possible that the testers themselves are at fault. Don't be afraid to hold them accountable for being lazy.The main cause of the problem is not enough testing time allocated:NO time for doc reviews;Little time for test design and creation;Little time for test execution.
How do you conduct peer reviews?
The peer review, sometimes called PDR, is a formal meeting, more formalized than a walk-through, and typically consists of 3-10 people including the test lead, task lead (the author of whatever is being reviewed) and a facilitator (to make notes). The subject of the PDR is typically a code block, release, or feature, or document. The purpose of the PDR is to find problems and see what is missing, not to fix anything. The result of the meeting is documented in a written report. Attendees should prepare for PDRs by reading through documents, before the meeting starts; most problems are found during this preparation.Why is the PDR great? Because it is a cost-effective method of ensuring quality, because bug prevention is more cost effective than bug detection.
500 Internal Server Error problem while doing load testing using Microsoft Web Application Stress Tool When doing Load testing using WAS (Microsoft Web Application Stress Tool), get " 500 Internal Server Error" problem for most of the "POST" querries. The Log file it showed the following data:"GET /imse/Global/images/Default/arrow.gif 500""GET /imse/client/Template/images/Default/arrow.gif 500""GET /imse/client/Template/images/Default/Plus1.gif 500"What could be the reason for this?
The problem is because the response will have not come. The session will have timed out. This will be the application will have taken more memory. This might be because of multiple threads running with each thread taking much CPU time. Please check the Server of the system where the build is deployed for Heap Dump. The Garbage collector will have created Java Heap and Core dumps in the Application folder.Try increasing the number of DB Connections in the server. This might solve the Problem. Also increase the Final Heap size also. This might solve the problems.
How do you check the security of an application?
To check the security of an application, one can use security/penetration testing. Security/penetration testing is testing how well a system is protected against unauthorized internal, or external access, or willful damage. This type of testing usually requires sophisticated testing techniques.
How do I write a Test Case?
How to estimate product test hours for new releases?
Answer1:Your main task is to convince your company of the- value of structured testing and the benefits it brings to the end product- the risks of not testing properly (high maintenance, lots of bugs found in production (and these generally found by your customers!), loss of market reputation ("another crap product from xyz company).Another approach might be to consider starting your test processes earlier (i am guessing from your message that you are following some kind of waterfall method) - its a sort of 'design a little, build a little, test a little, design a little ...' approach.
Answer2:Tell the folks making decisions to read user feedback. No time for testing = angry users who want their money back or worse angry clients who suddenly hire a team of lawyers.Warned all the stakeholders early on and then sent user feedback emails up the chain. Users can be brutal and they tell the truth! Comments like YOU SUCK!!It may also convince them to get more support people instead of increasing testing.
Answer3:The ratios:3/1 Developers to QA (industry)3/2 Developers to QA (Microsoft)There is also a really good article called "A Better Bug Trap" published by The Economist in 2004, which is pretty telling: according to NIST 80% of a software project belongs to testing and debugging.There is also the classic book called "Mythical Man Month". There are a couple of pertinent passages there:1) Back when the book was written, the percentage quoted by NIST was 50%, which means that software development has become less efficient over the last 20 years or so.2) There is a 30% that a change in any line of code will break something down stream.3) There is another article published by McKinsey Quarterly called "What high tech can learn from slow-growth industries".
When testing the password field, what is your focus?
When testing the password field, one needs to focus on encryption; one needs to verify that the passwords are encrypted.
What are the metrics to be collected as part of testing?
A metric is a measurement. While it's easy to count things that are easy to count, and to divide the counts by other things that you count, it's harder to decide what the counts and ratios mean. What are we trying to measure, and what model and what evidence lead us to believe that the counts measure the attribute we claim to be trying to measure?Without clear thinking about validity, the numbers are more of a dangerous distraction than a useful tool. Rather than blindly using a well-known metric, decide what goal you are trying to achieve and find out how best to measure to achieve that goal.Not everything that can be counted counts, and not everything that counts can be counted.Questions you must ask before starting to use metrics are:* Who will use these metrics?* What behaviour are you trying to promote with these metrics?* What information is important to know across the project?* What requires increased visibility or transparency?
What is your view of software QA/testing?
Software QA/testing is easy, if requirements are solid, clear, complete, detailed, cohesive, attainable and testable, and if schedules are realistic, and if there is good communication in the group.Software QA/testing is a piece of cake, if project schedules are realistic, if adequate time is allowed for planning, design, testing, bug fixing, re-testing, changes, and documentation.Software QA/testing is easy, if testing is started early on, if fixes or changes are re-tested, and sufficient time is planned for both testing and bug fixing.Software QA/testing is easy, if new features are avoided, if one sticks to initial requirements as much as possible.
How to test a web application, for security testing of Web Application?
Answer1:Two most common security vulnerabilities that often times overlooked by developers are session and cookie management. Check out google for possible hacks re the two items. Develop test scenario from the kb that you find in the web.Another test would be to concentrate on the log in page and log out.In some cases the back button could be a security problem especially if the previous screen/page has sensitive data and could easily be modified if the back button is used.Lastly, test the user roles properly. Making sure that the specific role only sees what s/he is intended to see.
Answer2:Can test one more scenario for security,1. Login into the application.2. Then copy the url.3. Click Logout button4. Now paste this url in Browser's Address bar or from History access the url of the application after logging outAlso do not forget to check the timeout setting for the application1. Login into the app2. Leave the browser for sometime idle3. then checkout that user session gets expired or not.
Who write the user acceptance testing testcases?
Whoever is assigend the task. It is usually best done by a third-party hired by the client to determine that their product works as contracted, however it can be done by someone one the testing team, product management, or even a technical writer. UATs as usually positive tests.A2: 1. Get requirements2. Design the HLD and LLD documents (high and low level design docs) This is the way we will implement the clients requirements in the software.from 1 Get the UAT test cases.from 2 Get the system test cases.its not a subsetEach and every organisation has its own way designing the test cases sometimes form different sources.UAT is usually designed by the test team itself.What Is UAT, And Why Do It?
What is automatic recovery testing?
Say you are writing a series of transactions to a database and halfway through the power fails, or the comms link drops. You now have a database with incomplete or corrupt data.Once the link is back up, or the application is restarted, how does the database (or application) restore itself and how is the data integrity verified? If there are automatic processes that do this (e.g rollback procedures coded into the application), test if these work correctly.
What's the difference between Alpha, Beta and User Acceptance testing?
The focus in this question is somewhat wrong. You don't do Alpha testing, you do testing against the Alpha cycle of the software. The Alpha cycle is during the development phase. The product has many defects and is not suitable for users in a production environment to be using. Once the Show-Stopper, Critical and most Major defects have been resolved, and once the majority of planned functionality has been added to the product, a Beta release can occur. It is best to have someone coordinate the beta testers rather than just throw the software out to the general public--this way you can keep track of the defects generated by beta users in the field. User Acceptance testing occurs when you have to deliver your product to a customer based on contractual obligations. The User Acceptance test is usually written by the customer or an agent on their part. It is designed to verify, usually only with positive test cases, that the product is as described in the contract.
How can I be a good tester?
We, good testers, take the customers' point of view. We are also tactful and diplomatic. We have a "test to break" attitude, a strong desire for quality, an attention to detail, and good communication skills, both oral and written. Previous software development experience is also helpful, as it provides a deeper understanding of the software development process.
How to do Laod testing for web based Application?
1. Recording a scenerio in QTP of my web based application.2. Make 100 copies of that scenerio and run the test (scenerio run for 100 times)3. In that case, do the load of application on server.4. The basic logic of running the copy 100 times is to create same scenerio as if 100 users were working.
What is GUI testing? What elements will we cover in GUI testing?
In GUI testing, need to cover the customer requirement if don't have to validate 1. Font size, colors, spellings(labels) etc2. Every application should follow Microsoft rules like2.1 Controls should be Initcap (i.e every label should start with Capital letter )Can observe that in Win applications every label starts with Caps2.2 OK or Cancel button should exist2.3 Controls should not be overlapped2.4 Controls should be alligned properly (left side alignment is mandatory but the right side is optional)2.5 Controls should be visible2.6 Short cut keys should be provided2.7 System menu should exist (i.e if u press Alt key + Space bar a menu will appear at the left most corner )2.8 Mouse pointer eventsColors, Label Names, Tab Order, Alignment, graphs , Navigation of the software to test in GUI Testing.
What is that column "steps to reproduce" mean in bug tracking? 1
Answer1:Well, steps to reproduce are just that: what are the steps you need to take to reproduce the stated problem.The steps to reproduce (STR) must be as clear as possible, preferably with screenshots and/or test data. The steps should also be definite (so no 'maybe', 'it sometimes works if you do this' type statements).In the test projects, you've always tried to keep the STR down to a maximum of 5, this to make sure that the problem is easy and clear to communicate to the developers, to reproduce and hence resolve.
Answer2:Ideally, once you identify a bug - you would need to determine the least number of steps required to reproduce the bug. This would help your developer to reproduce the bug easily on his development environment.
When is a process repeatable?
A process repeatable when we use detailed and well-written processes and procedures; this way we ensure the correct steps are being executed. This also facilitates a successful completion of the task, and ensures the process is repeatable.A process is repeatable, whenever we have the necessary processes in place, in order to repeat earlier successes on projects with similar applications. A process is repeatable, if we use detailed and well-written processes and procedures. A process is repeatable, if we ensure that the correct steps are executed.When the correct steps are executed, we facilitate a successful completion of the task. Documentation is critical. A software process is repeatable, if there are requirements management, project planning, project tracking, subcontract management, QA, and configuration management.Both QA processes and practices should be documented, so that they are repeatable. Specifications, designs, business rules, inspection reports, configurations, code changes, test plans, test cases, bug reports, user manuals should all be documented, so that they are repeatable.Document files should be well organized. There should be a system for easily finding and obtaining documents, and determining what document has a particular piece of information. We should use documentation change management, if possible.
Answer1: Test cases for telephonetest the "functionality" of telephone,1. Test for presence of dial tone.2. Dial Local number and check that receiver phone(dialled no.) rings.3. Dial any STD number and check that intended phone number rings.4. Dial the number of "under test" phone and check that it rings.5. When ringing, pick it up and check that ringing stops.6. When talking - then there should be no noise or disturbance.7. Check that "redial" works properly.8. Check STD lock facility works.9. Check speed dialing facility.10. Check for call waiting facility.11. Check that only the caller can disconnect the call.12. If "telephone Under test" is engaged with any caller and at this time if a third caller attempts to call the "telephone under test" then call between two other parties should not get disconnected.13. If "telephone Under test" is engaged with any caller and at this time if a third caller attempts to call the "telephone under test" then third caller will listen to engage tone or message from exchange.14. Check for volume(increase or decrease) of the handset.15. Keep the hand set down from base unit and attempt to call the "telephone under test" then it should not ring.16. Check for call transfer facility.test the 'telephone itself1. Check for extreme temparatures (hot and cold)2. Check for different atmospheric conditions (humidity etc..)3. Check for exterme power conditions4. Check for button durability5. Check for body strengthetc...
Answer2:My company designs and build phone system software, so I am very familiar with phone testing. You could be dealing with an IVR system that has menu-driven logic, or you could be dealing with an auto-attendant with directory features. The basic idea is that you need to be able to define your expected results, and record your actual results. The medium is different, but the same basic concepts apply. In some ways the phone is easier becuase it can be a more linear process than say, a web system
How do you know when to stop testing?
This can be difficult to determine. Many modern software applications are so complex and run in such an interdependent environment, that complete testing can never be done. Common factors in deciding when to stop are...* Deadlines, e.g. release deadlines, testing deadlines;* Test cases completed with certain percentage passed;* Test budget has been depleted;* Coverage of code, functionality, or requirements reaches a specified point;* Bug rate falls below a certain level; or* Beta or alpha testing period ends.
What Will be tested on a static web page?
1. Testing all links are working properly.There are link checker programs that can help you verify if your links are broken2. Test GUI design.3. Test spelling and grammer for contents.4. Test page fonts are consistent.Again depending on the page, this may not be essential, but you can suggest to the designed to use a cascading style sheet to easily maintain a consistent style across pages.5.Title bar message testing.6.Status bar message testing.7.Scroll bars presence at page.8. Browser compatibility(IE and NetScape)IE and FireFox. Ironicly, Netscape 8 has two modes now that allows you to swicth between using the gecko render engine in Firefox and the internal IE render engine that ships with every Windows OS. It's very cool and it can save you a lot of time.9.Changing browser options of IE from Tools --> Internet Options --->10.Advanced tab?11.Changing font for browser and also font size for browser.12. Changing any privacy option from Tools --> Internet Options.13. the images are present14. conformance to W3C standards WRT tags".That's a pretty big topic, but I can touch on it. Every HTML document should tell the browser about the DTD that it was built using. Things likeEach DTD version has different standards. Some allow frames others don't, etc. You will have to learn what the DTD is supposed to use and what it's not supposed to use. Only the best web designers have the various DTDs memorised. Fortunately the W3C has made a page that will validate your pages for you at http://validator.w3.org/After your page passes through that you will get a report that lists errors and info. While most render engines will gloss over the errors and display the page "correctly", it may cause problems further down the road when editing the page. You can discuss these things with your web designer.
How can software QA processes be implemented without stifling productivity?
Implement QA processes slowly over time. Use consensus to reach agreement on processes and adjust and experiment as an organization grows and matures. Productivity will be improved instead of stifled. Problem prevention will lessen the need for problem detection. Panics and burnout will decrease and there will be improved focus and less wasted effort.At the same time, attempts should be made to keep processes simple and efficient, minimize paperwork, promote computer-based processes and automated tracking and reporting, minimize time required in meetings and promote training as part of the QA process.However, no one, especially talented technical types, like bureaucracy and in the short run things may slow down a bit. A typical scenario would be that more days of planning and development will be needed, but less time will be required for late-night bug fixing and calming of irate customers.
How to solve this issue - When developers blame testers for reporting bugs that is not reproducible on their machine?
Avoid this differences by taking screenshots and attaching them in bug tracking tool.it seems that since the environment was not the cause then the "Steps to Reproduce" portion of the Bug report were lacking clarity. Screenshots along the way are a great way to prove a point, especially when you are dealing with something that is reproducible.Sure as a test engineer we surely understand functionality and to an extent we understand the architecture of the software. Hence, we can surly say that some bugs are related to each other and some are not. So, We can introduc a column/field in our bug reporting format (What ever it is...a tool or an excel) for related bug ID.This will actually be helpful for the development community too fix the bugs.Actually Development environment should be same as Testing environment so that this issue will not arise. Make sure that before getting a Build the environment is same . Before Testing briefly go through with the Internal Release note. While Defect reporting mention proper Test data, steps etc. so that next time you can reproduce it.
Why do we recommended that we test during the design phase?
Because testing during the design phase can prevent defects later on. We recommend verifying three things...1. Verify the design is good, efficient, compact, testable and maintainable.2. Verify the design meets the requirements and is complete (specifies all relationships between modules, how to pass data, what happens in exceptional circumstances, starting state of each module and how to guarantee the state of each module).3. Verify the design incorporates enough memory, I/O devices and quick enough runtime for the final product.
How to test a application in flash?
Manually testing flash animations is as simple as making sure that the objects do what they're supposed to do. manually mostly because flash isn't really a programming language. Most developers consider it to be a toy. So the big automation companies won't consider plug-ins for the flash objects.If the flash application is a: E learning Application:1. Need to know the the Hardware Configuration, becauase if this animation contains some heavy images or movie files then it works slowly, and which is a error.so each and every images and movie should be of light weight, as far the quality says.2. File naming convention3. Flash detection4. Objects should do what they are supposed to do5. Etc.If the flash application is a: Web Application:1. File size, should be light weight, beacuase most of the user dont have high speed connection, load testing require2. Quality of texts, images and movie
How test estimation (in terms of schedule, cost, resources required) will be done during developing of test plan?
Reads on the topic:Factors that Influence Test Estimation
What kind of automated software used to test a Web-based application with a .NET (ASP.NET and C#...also SQL Server) framework?
Answer1:Mercury makes some decent products. Quick Test Pro can be used for a lot of your requirements... It can be costly and mind-numbing at times though.
Answer2:Selenium is a test tool for web applications. Selenium tests run directly in a browser, just as real users do. And they run in Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool covers such a wide array of platforms.* Browser compatability testing. Test your application to see if it works correctly on different browsers and operating systems. The same script can run on any Selenium platform.* System functional testing. Create regression tests to verify application functionality and user acceptance.
Answer3:Ruby is becoming a preferred standard for testingPerl is also used a great deal
What kind of automated testing tool should Small company use?
Automation is not designed for small test teams in companies. It does not make your testing more efficient, it just make it faster. When you hit problems (and you likely will) it will take a lot of time to fix these problems.At the only time that a good automated process can be put in place.After your company starts growing and product releases, service packs, etc start to pile up in the horizon, your team will not have the time to automate because it will come after anything else to keep revenue coming and customers happy.Automation makes you faster, a nice outcome that will become vital later. The trick is in controlling the inputs of that process to get a good bang for the buck.The standard QA tools cause a lot of trouble and more often than not end up collecting dust in the shelves.Just throwing people and money at the problem does not work and is just available to bigger companies.Reads on the topic: How do I know when to Automate?These articles will help you decide if you're even ready to automate.When Should a Test Be Automated?Brian MarickSoftware Test Automation and the Product Life Cycle: Implementingsoftware test in the product life cycleDave Kelly
What if organization is growing so fast that fixed QA processes are impossible?
This is a common problem in the software industry, especially in new technology areas. There is no easy solution in this situation, other than...* Hire good people* Ruthlessly prioritize quality issues and maintain focus on the customer;* Everyone in the organization should be clear on what quality means to the customer.
Can We do performance testing manually?*
Yes you can do Performance testing manually. For this you should open many active sessions of the application and should test it out. It also depends on what type of performance test you want to do. However, in general you can judge the active sessions, number of DB connections open, number of threads running (I have taken JAVA based Web applications as eg), the amount of the CPU time and memory being used by having a performance viewer. You can have IBM Tivoli Performance viewer. It is available for trial version also. Usually the the test is done by deploying the application on the server and accessing the application from multiple client machines and making multiple threads to run. The performance viewer should of course be installed on the server.
What's the SDLC models- waterfall and v-models?
Answer1:In large scale company first of all they are followed waterfall method. now days mostly companies are following V models.model - means the testing involvement starts from the design state itself & continues till system test.Phase TestingRequirements - reviewdesign - reviewTR - TUTthen testing phases starts.So, like this testing makes a perfect V. so we call it V model.Indicate the flow of activities in the V-model, please look at:Test Process in the V-model
Answer2:The waterfall is the General concept of all the models and most of the project based companies use V-Model. Testing will be involved from the requirements phase till the User Acceptance Test.
What's server side testing
It's testing the applications and daemons that run on a server.Server Side testing can involve testing of Servlets and Controllers.
How a particular test team is formed ?
Putting together a test team is1 - get an understanding of the application being tested2 - understand the underlying technologies3 - understand the roadmap (future plans) for the product4 - understand the budgetary limitations you are working under
Points 1 and 2 are pretty obvious. Point 3 is more to do with future planning (they might be moving from client/server to webapp, so dont go recruiting lots of client/server specialist - bad example, but you get the drift ..). Point 4 is important as it will determine not just the number of testers, but the skill level of the testers you can afford to employ, training required etc ...
Need a template for preparing the Test Environment.
Answer1:A test environment can be as simple or as complex as can be, but it *must* be seperate from a development environment. In an ideal world, you'd have a DEVelopment environment, a TEST environment, an ACCeptance environment and a partitioned PRODuction environment.The DEV environment no one in QA touches, the TEST environment no one in development touches, the ACCeptance environment is for acceptance testing by end-users and adminstrators, performance/stress/load testing and so on and should mirror the PRODuction environment. The PRODuction environment should be a live/'hot swap' configuration; the release is deployed to 'hot swap', tested by the administrators and final acceptance testing before being 'hot swapped' to live.
Answer2:TEST ENVIRONMENT:Setup of a test environment will require:- Hardware- Operating systems- Software that needs to be tested- Other required software like tools (And people who can use them)- Data configurations- Interfaces to other systems, communications- Documentation like user manuals/reference documents/configuration guides/installation guides
Setting up a dedicated Test Environment is expensive and the following needs to be considered:- To create an internal Test Environment or to outsource- To follow any External (IEEE, ISO etc.) or Internal company standards- The initial set-up & running costs- How long will the Test Environment be required?- How production like does it need to be? If the environment does not mirrors production then differences between the test and production systems and their impact on test validity must be determined.- Can you support the environment either technically or within the building infrastructure?- Could any exisiting setup for other projects in the company can be re-used- Could the setup be used for other projects within the company? - Day to day management- Procedures for controlling change (Configuration management) - Data loading and security requirements
What is the exact difference between functional and non functional testing?
Functional testing means we do functional testing to validate the functionality of the application against functional requirements document.we test for functionality of the application only. Non-functional testing means we do not test for functionality of the application System testing, load testing, stress testing, performance testing etc come under non functional testing.
How is testing affected by object-oriented designs?
A well-engineered object-oriented design can make it easier to trace from code to internal design to functional design to requirements. While there will be little affect on black box testing (where an understanding of the internal design of the application is unnecessary), white-box testing can be oriented to the application's objects. If the application was well designed this can simplify test design.
Standards and templates - what is supposed to be in a document?
All documents should be written to a certain standard and template. Standards and templates maintain document uniformity. It also helps in learning where information is located, making it easier for a user to find what they want. Lastly, with standards and templates, information will not be accidentally omitted from a document.
How to write Nunit test cases
What Is NUnit?
NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 2.2, is the fourth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages.
What is documentation change management?
Documentation change management is part of configuration management (CM). CM covers the tools and processes used to control, coordinate and track code, requirements, documentation, problems, change requests, designs, tools, compilers, libraries, patches, changes made to them and who makes the changes.
How can I test without requirements?
What is the difference between user documentation and user manual?
When a distinction is made between those who operate and use a computer system for its intended purpose, a separate user documentation and user manual is created. Operators get user documentation, and users get user manuals.
Why was bug x or bug y caught NOT during testing?"
Why the defect was allowed to be introduced into the code? Why don't they have better code reviews? Why don't the developers understand the product better? Why are the requirements not fully understood by these people?The real issue here is that they are passing quality off to the testing team and it's not our job to make the product a quality one--it's the responsibility of everyone in the company including the receptionist.It is not the job of testing to be responsible for assuring quality and it is not the purpose of testing to find bugs.Classic Testing Mistakes
Do they rely on strange configurations: ones you could never hope to reproduce? Is it reasonable that your testers should have "caught" these defects? If it is, don't make any excuses.Alternately, if it's really the requirements, how can the developers make the right product and the testers don't understand what the developers are making? There is communication about what needs to be done, and the developers seem to be getting that communication, why can't your testers? We know the reason: the developers didn't get the communication right--that's why there was a defect. So you can point out the communication as well.when there is a requirements document, testers have a tendency to only test the main path, or they'll only run one test case per requirement, when there clearly should be many tests to catch all boundaries and failures. Testers do need to be able to think about what they are doing, and it is very possible that the testers themselves are at fault. Don't be afraid to hold them accountable for being lazy.The main cause of the problem is not enough testing time allocated:NO time for doc reviews;Little time for test design and creation;Little time for test execution.
How do you conduct peer reviews?
The peer review, sometimes called PDR, is a formal meeting, more formalized than a walk-through, and typically consists of 3-10 people including the test lead, task lead (the author of whatever is being reviewed) and a facilitator (to make notes). The subject of the PDR is typically a code block, release, or feature, or document. The purpose of the PDR is to find problems and see what is missing, not to fix anything. The result of the meeting is documented in a written report. Attendees should prepare for PDRs by reading through documents, before the meeting starts; most problems are found during this preparation.Why is the PDR great? Because it is a cost-effective method of ensuring quality, because bug prevention is more cost effective than bug detection.
500 Internal Server Error problem while doing load testing using Microsoft Web Application Stress Tool When doing Load testing using WAS (Microsoft Web Application Stress Tool), get " 500 Internal Server Error" problem for most of the "POST" querries. The Log file it showed the following data:"GET /imse/Global/images/Default/arrow.gif 500""GET /imse/client/Template/images/Default/arrow.gif 500""GET /imse/client/Template/images/Default/Plus1.gif 500"What could be the reason for this?
The problem is because the response will have not come. The session will have timed out. This will be the application will have taken more memory. This might be because of multiple threads running with each thread taking much CPU time. Please check the Server of the system where the build is deployed for Heap Dump. The Garbage collector will have created Java Heap and Core dumps in the Application folder.Try increasing the number of DB Connections in the server. This might solve the Problem. Also increase the Final Heap size also. This might solve the problems.
How do you check the security of an application?
To check the security of an application, one can use security/penetration testing. Security/penetration testing is testing how well a system is protected against unauthorized internal, or external access, or willful damage. This type of testing usually requires sophisticated testing techniques.
How do I write a Test Case?
How to estimate product test hours for new releases?
Answer1:Your main task is to convince your company of the- value of structured testing and the benefits it brings to the end product- the risks of not testing properly (high maintenance, lots of bugs found in production (and these generally found by your customers!), loss of market reputation ("another crap product from xyz company).Another approach might be to consider starting your test processes earlier (i am guessing from your message that you are following some kind of waterfall method) - its a sort of 'design a little, build a little, test a little, design a little ...' approach.
Answer2:Tell the folks making decisions to read user feedback. No time for testing = angry users who want their money back or worse angry clients who suddenly hire a team of lawyers.Warned all the stakeholders early on and then sent user feedback emails up the chain. Users can be brutal and they tell the truth! Comments like YOU SUCK!!It may also convince them to get more support people instead of increasing testing.
Answer3:The ratios:3/1 Developers to QA (industry)3/2 Developers to QA (Microsoft)There is also a really good article called "A Better Bug Trap" published by The Economist in 2004, which is pretty telling: according to NIST 80% of a software project belongs to testing and debugging.There is also the classic book called "Mythical Man Month". There are a couple of pertinent passages there:1) Back when the book was written, the percentage quoted by NIST was 50%, which means that software development has become less efficient over the last 20 years or so.2) There is a 30% that a change in any line of code will break something down stream.3) There is another article published by McKinsey Quarterly called "What high tech can learn from slow-growth industries".
When testing the password field, what is your focus?
When testing the password field, one needs to focus on encryption; one needs to verify that the passwords are encrypted.
What are the metrics to be collected as part of testing?
A metric is a measurement. While it's easy to count things that are easy to count, and to divide the counts by other things that you count, it's harder to decide what the counts and ratios mean. What are we trying to measure, and what model and what evidence lead us to believe that the counts measure the attribute we claim to be trying to measure?Without clear thinking about validity, the numbers are more of a dangerous distraction than a useful tool. Rather than blindly using a well-known metric, decide what goal you are trying to achieve and find out how best to measure to achieve that goal.Not everything that can be counted counts, and not everything that counts can be counted.Questions you must ask before starting to use metrics are:* Who will use these metrics?* What behaviour are you trying to promote with these metrics?* What information is important to know across the project?* What requires increased visibility or transparency?
What is your view of software QA/testing?
Software QA/testing is easy, if requirements are solid, clear, complete, detailed, cohesive, attainable and testable, and if schedules are realistic, and if there is good communication in the group.Software QA/testing is a piece of cake, if project schedules are realistic, if adequate time is allowed for planning, design, testing, bug fixing, re-testing, changes, and documentation.Software QA/testing is easy, if testing is started early on, if fixes or changes are re-tested, and sufficient time is planned for both testing and bug fixing.Software QA/testing is easy, if new features are avoided, if one sticks to initial requirements as much as possible.
How to test a web application, for security testing of Web Application?
Answer1:Two most common security vulnerabilities that often times overlooked by developers are session and cookie management. Check out google for possible hacks re the two items. Develop test scenario from the kb that you find in the web.Another test would be to concentrate on the log in page and log out.In some cases the back button could be a security problem especially if the previous screen/page has sensitive data and could easily be modified if the back button is used.Lastly, test the user roles properly. Making sure that the specific role only sees what s/he is intended to see.
Answer2:Can test one more scenario for security,1. Login into the application.2. Then copy the url.3. Click Logout button4. Now paste this url in Browser's Address bar or from History access the url of the application after logging outAlso do not forget to check the timeout setting for the application1. Login into the app2. Leave the browser for sometime idle3. then checkout that user session gets expired or not.
Who write the user acceptance testing testcases?
Whoever is assigend the task. It is usually best done by a third-party hired by the client to determine that their product works as contracted, however it can be done by someone one the testing team, product management, or even a technical writer. UATs as usually positive tests.A2: 1. Get requirements2. Design the HLD and LLD documents (high and low level design docs) This is the way we will implement the clients requirements in the software.from 1 Get the UAT test cases.from 2 Get the system test cases.its not a subsetEach and every organisation has its own way designing the test cases sometimes form different sources.UAT is usually designed by the test team itself.What Is UAT, And Why Do It?
What is automatic recovery testing?
Say you are writing a series of transactions to a database and halfway through the power fails, or the comms link drops. You now have a database with incomplete or corrupt data.Once the link is back up, or the application is restarted, how does the database (or application) restore itself and how is the data integrity verified? If there are automatic processes that do this (e.g rollback procedures coded into the application), test if these work correctly.
What's the difference between Alpha, Beta and User Acceptance testing?
The focus in this question is somewhat wrong. You don't do Alpha testing, you do testing against the Alpha cycle of the software. The Alpha cycle is during the development phase. The product has many defects and is not suitable for users in a production environment to be using. Once the Show-Stopper, Critical and most Major defects have been resolved, and once the majority of planned functionality has been added to the product, a Beta release can occur. It is best to have someone coordinate the beta testers rather than just throw the software out to the general public--this way you can keep track of the defects generated by beta users in the field. User Acceptance testing occurs when you have to deliver your product to a customer based on contractual obligations. The User Acceptance test is usually written by the customer or an agent on their part. It is designed to verify, usually only with positive test cases, that the product is as described in the contract.
How can I be a good tester?
We, good testers, take the customers' point of view. We are also tactful and diplomatic. We have a "test to break" attitude, a strong desire for quality, an attention to detail, and good communication skills, both oral and written. Previous software development experience is also helpful, as it provides a deeper understanding of the software development process.
How to do Laod testing for web based Application?
1. Recording a scenerio in QTP of my web based application.2. Make 100 copies of that scenerio and run the test (scenerio run for 100 times)3. In that case, do the load of application on server.4. The basic logic of running the copy 100 times is to create same scenerio as if 100 users were working.
What is GUI testing? What elements will we cover in GUI testing?
In GUI testing, need to cover the customer requirement if don't have to validate 1. Font size, colors, spellings(labels) etc2. Every application should follow Microsoft rules like2.1 Controls should be Initcap (i.e every label should start with Capital letter )Can observe that in Win applications every label starts with Caps2.2 OK or Cancel button should exist2.3 Controls should not be overlapped2.4 Controls should be alligned properly (left side alignment is mandatory but the right side is optional)2.5 Controls should be visible2.6 Short cut keys should be provided2.7 System menu should exist (i.e if u press Alt key + Space bar a menu will appear at the left most corner )2.8 Mouse pointer eventsColors, Label Names, Tab Order, Alignment, graphs , Navigation of the software to test in GUI Testing.
What is that column "steps to reproduce" mean in bug tracking? 1
Answer1:Well, steps to reproduce are just that: what are the steps you need to take to reproduce the stated problem.The steps to reproduce (STR) must be as clear as possible, preferably with screenshots and/or test data. The steps should also be definite (so no 'maybe', 'it sometimes works if you do this' type statements).In the test projects, you've always tried to keep the STR down to a maximum of 5, this to make sure that the problem is easy and clear to communicate to the developers, to reproduce and hence resolve.
Answer2:Ideally, once you identify a bug - you would need to determine the least number of steps required to reproduce the bug. This would help your developer to reproduce the bug easily on his development environment.
When is a process repeatable?
A process repeatable when we use detailed and well-written processes and procedures; this way we ensure the correct steps are being executed. This also facilitates a successful completion of the task, and ensures the process is repeatable.A process is repeatable, whenever we have the necessary processes in place, in order to repeat earlier successes on projects with similar applications. A process is repeatable, if we use detailed and well-written processes and procedures. A process is repeatable, if we ensure that the correct steps are executed.When the correct steps are executed, we facilitate a successful completion of the task. Documentation is critical. A software process is repeatable, if there are requirements management, project planning, project tracking, subcontract management, QA, and configuration management.Both QA processes and practices should be documented, so that they are repeatable. Specifications, designs, business rules, inspection reports, configurations, code changes, test plans, test cases, bug reports, user manuals should all be documented, so that they are repeatable.Document files should be well organized. There should be a system for easily finding and obtaining documents, and determining what document has a particular piece of information. We should use documentation change management, if possible.
Faqs For Two Plus Of Experience In Software Testing
How to write Test Case for telephone ?
Answer1: Test cases for telephonetest the "functionality" of telephone,1. Test for presence of dial tone.2. Dial Local number and check that receiver phone(dialled no.) rings.3. Dial any STD number and check that intended phone number rings.4. Dial the number of "under test" phone and check that it rings.5. When ringing, pick it up and check that ringing stops.6. When talking - then there should be no noise or disturbance.7. Check that "redial" works properly.8. Check STD lock facility works.9. Check speed dialing facility.10. Check for call waiting facility.11. Check that only the caller can disconnect the call.12. If "telephone Under test" is engaged with any caller and at this time if a third caller attempts to call the "telephone under test" then call between two other parties should not get disconnected.13. If "telephone Under test" is engaged with any caller and at this time if a third caller attempts to call the "telephone under test" then third caller will listen to engage tone or message from exchange.14. Check for volume(increase or decrease) of the handset.15. Keep the hand set down from base unit and attempt to call the "telephone under test" then it should not ring.16. Check for call transfer facility.test the 'telephone itself1. Check for extreme temparatures (hot and cold)2. Check for different atmospheric conditions (humidity etc..)3. Check for exterme power conditions4. Check for button durability5. Check for body strengthetc...
Answer2:My company designs and build phone system software, so I am very familiar with phone testing. You could be dealing with an IVR system that has menu-driven logic, or you could be dealing with an auto-attendant with directory features. The basic idea is that you need to be able to define your expected results, and record your actual results. The medium is different, but the same basic concepts apply. In some ways the phone is easier becuase it can be a more linear process than say, a web system
How do you know when to stop testing?
This can be difficult to determine. Many modern software applications are so complex and run in such an interdependent environment, that complete testing can never be done. Common factors in deciding when to stop are...* Deadlines, e.g. release deadlines, testing deadlines;* Test cases completed with certain percentage passed;* Test budget has been depleted;* Coverage of code, functionality, or requirements reaches a specified point;* Bug rate falls below a certain level; or* Beta or alpha testing period ends.
What Will be tested on a static web page?
1. Testing all links are working properly.There are link checker programs that can help you verify if your links are broken2. Test GUI design.3. Test spelling and grammer for contents.4. Test page fonts are consistent.Again depending on the page, this may not be essential, but you can suggest to the designed to use a cascading style sheet to easily maintain a consistent style across pages.5.Title bar message testing.6.Status bar message testing.7.Scroll bars presence at page.8. Browser compatibility(IE and NetScape)IE and FireFox. Ironicly, Netscape 8 has two modes now that allows you to swicth between using the gecko render engine in Firefox and the internal IE render engine that ships with every Windows OS. It's very cool and it can save you a lot of time.9.Changing browser options of IE from Tools --> Internet Options --->10.Advanced tab?11.Changing font for browser and also font size for browser.12. Changing any privacy option from Tools --> Internet Options.13. the images are present14. conformance to W3C standards WRT tags".That's a pretty big topic, but I can touch on it. Every HTML document should tell the browser about the DTD that it was built using. Things likeEach DTD version has different standards. Some allow frames others don't, etc. You will have to learn what the DTD is supposed to use and what it's not supposed to use. Only the best web designers have the various DTDs memorised. Fortunately the W3C has made a page that will validate your pages for you at http://validator.w3.org/After your page passes through that you will get a report that lists errors and info. While most render engines will gloss over the errors and display the page "correctly", it may cause problems further down the road when editing the page. You can discuss these things with your web designer.
How can software QA processes be implemented without stifling productivity?
Implement QA processes slowly over time. Use consensus to reach agreement on processes and adjust and experiment as an organization grows and matures. Productivity will be improved instead of stifled. Problem prevention will lessen the need for problem detection. Panics and burnout will decrease and there will be improved focus and less wasted effort.At the same time, attempts should be made to keep processes simple and efficient, minimize paperwork, promote computer-based processes and automated tracking and reporting, minimize time required in meetings and promote training as part of the QA process.However, no one, especially talented technical types, like bureaucracy and in the short run things may slow down a bit. A typical scenario would be that more days of planning and development will be needed, but less time will be required for late-night bug fixing and calming of irate customers.
How to solve this issue - When developers blame testers for reporting bugs that is not reproducible on their machine?
Avoid this differences by taking screenshots and attaching them in bug tracking tool.it seems that since the environment was not the cause then the "Steps to Reproduce" portion of the Bug report were lacking clarity. Screenshots along the way are a great way to prove a point, especially when you are dealing with something that is reproducible.Sure as a test engineer we surely understand functionality and to an extent we understand the architecture of the software. Hence, we can surly say that some bugs are related to each other and some are not. So, We can introduc a column/field in our bug reporting format (What ever it is...a tool or an excel) for related bug ID.This will actually be helpful for the development community too fix the bugs.Actually Development environment should be same as Testing environment so that this issue will not arise. Make sure that before getting a Build the environment is same . Before Testing briefly go through with the Internal Release note. While Defect reporting mention proper Test data, steps etc. so that next time you can reproduce it.
Why do we recommended that we test during the design phase?
Because testing during the design phase can prevent defects later on. We recommend verifying three things...1. Verify the design is good, efficient, compact, testable and maintainable.2. Verify the design meets the requirements and is complete (specifies all relationships between modules, how to pass data, what happens in exceptional circumstances, starting state of each module and how to guarantee the state of each module).3. Verify the design incorporates enough memory, I/O devices and quick enough runtime for the final product.
How to test a application in flash?
Manually testing flash animations is as simple as making sure that the objects do what they're supposed to do. manually mostly because flash isn't really a programming language. Most developers consider it to be a toy. So the big automation companies won't consider plug-ins for the flash objects.If the flash application is a: E learning Application:1. Need to know the the Hardware Configuration, becauase if this animation contains some heavy images or movie files then it works slowly, and which is a error.so each and every images and movie should be of light weight, as far the quality says.2. File naming convention3. Flash detection4. Objects should do what they are supposed to do5. Etc.If the flash application is a: Web Application:1. File size, should be light weight, beacuase most of the user dont have high speed connection, load testing require2. Quality of texts, images and movie
How test estimation (in terms of schedule, cost, resources required) will be done during developing of test plan?
Reads on the topic:Factors that Influence Test Estimation
What kind of automated software used to test a Web-based application with a .NET (ASP.NET and C#...also SQL Server) framework?
Answer1:Mercury makes some decent products. Quick Test Pro can be used for a lot of your requirements... It can be costly and mind-numbing at times though.
Answer2:Selenium is a test tool for web applications. Selenium tests run directly in a browser, just as real users do. And they run in Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool covers such a wide array of platforms.* Browser compatability testing. Test your application to see if it works correctly on different browsers and operating systems. The same script can run on any Selenium platform.* System functional testing. Create regression tests to verify application functionality and user acceptance.
Answer3:Ruby is becoming a preferred standard for testingPerl is also used a great deal
What kind of automated testing tool should Small company use?
Automation is not designed for small test teams in companies. It does not make your testing more efficient, it just make it faster. When you hit problems (and you likely will) it will take a lot of time to fix these problems.At the only time that a good automated process can be put in place.After your company starts growing and product releases, service packs, etc start to pile up in the horizon, your team will not have the time to automate because it will come after anything else to keep revenue coming and customers happy.Automation makes you faster, a nice outcome that will become vital later. The trick is in controlling the inputs of that process to get a good bang for the buck.The standard QA tools cause a lot of trouble and more often than not end up collecting dust in the shelves.Just throwing people and money at the problem does not work and is just available to bigger companies.Reads on the topic: How do I know when to Automate?These articles will help you decide if you're even ready to automate.When Should a Test Be Automated?Brian MarickSoftware Test Automation and the Product Life Cycle: Implementingsoftware test in the product life cycleDave Kelly
What if organization is growing so fast that fixed QA processes are impossible?
This is a common problem in the software industry, especially in new technology areas. There is no easy solution in this situation, other than...* Hire good people* Ruthlessly prioritize quality issues and maintain focus on the customer;* Everyone in the organization should be clear on what quality means to the customer.
Can We do performance testing manually?*
Yes you can do Performance testing manually. For this you should open many active sessions of the application and should test it out. It also depends on what type of performance test you want to do. However, in general you can judge the active sessions, number of DB connections open, number of threads running (I have taken JAVA based Web applications as eg), the amount of the CPU time and memory being used by having a performance viewer. You can have IBM Tivoli Performance viewer. It is available for trial version also. Usually the the test is done by deploying the application on the server and accessing the application from multiple client machines and making multiple threads to run. The performance viewer should of course be installed on the server.
What's the SDLC models- waterfall and v-models?
Answer1:In large scale company first of all they are followed waterfall method. now days mostly companies are following V models.model - means the testing involvement starts from the design state itself & continues till system test.Phase TestingRequirements - reviewdesign - reviewTR - TUTthen testing phases starts.So, like this testing makes a perfect V. so we call it V model.Indicate the flow of activities in the V-model, please look at:Test Process in the V-model
Answer2:The waterfall is the General concept of all the models and most of the project based companies use V-Model. Testing will be involved from the requirements phase till the User Acceptance Test.
What's server side testing
It's testing the applications and daemons that run on a server.Server Side testing can involve testing of Servlets and Controllers.
How a particular test team is formed ?
Putting together a test team is1 - get an understanding of the application being tested2 - understand the underlying technologies3 - understand the roadmap (future plans) for the product4 - understand the budgetary limitations you are working under
Points 1 and 2 are pretty obvious. Point 3 is more to do with future planning (they might be moving from client/server to webapp, so dont go recruiting lots of client/server specialist - bad example, but you get the drift ..). Point 4 is important as it will determine not just the number of testers, but the skill level of the testers you can afford to employ, training required etc ...
Need a template for preparing the Test Environment.
Answer1:A test environment can be as simple or as complex as can be, but it *must* be seperate from a development environment. In an ideal world, you'd have a DEVelopment environment, a TEST environment, an ACCeptance environment and a partitioned PRODuction environment.The DEV environment no one in QA touches, the TEST environment no one in development touches, the ACCeptance environment is for acceptance testing by end-users and adminstrators, performance/stress/load testing and so on and should mirror the PRODuction environment. The PRODuction environment should be a live/'hot swap' configuration; the release is deployed to 'hot swap', tested by the administrators and final acceptance testing before being 'hot swapped' to live.
Answer2:TEST ENVIRONMENT:Setup of a test environment will require:- Hardware- Operating systems- Software that needs to be tested- Other required software like tools (And people who can use them)- Data configurations- Interfaces to other systems, communications- Documentation like user manuals/reference documents/configuration guides/installation guides
Setting up a dedicated Test Environment is expensive and the following needs to be considered:- To create an internal Test Environment or to outsource- To follow any External (IEEE, ISO etc.) or Internal company standards- The initial set-up & running costs- How long will the Test Environment be required?- How production like does it need to be? If the environment does not mirrors production then differences between the test and production systems and their impact on test validity must be determined.- Can you support the environment either technically or within the building infrastructure?- Could any exisiting setup for other projects in the company can be re-used- Could the setup be used for other projects within the company? - Day to day management- Procedures for controlling change (Configuration management) - Data loading and security requirements
What is the exact difference between functional and non functional testing?
Functional testing means we do functional testing to validate the functionality of the application against functional requirements document.we test for functionality of the application only. Non-functional testing means we do not test for functionality of the application System testing, load testing, stress testing, performance testing etc come under non functional testing.
How is testing affected by object-oriented designs?
A well-engineered object-oriented design can make it easier to trace from code to internal design to functional design to requirements. While there will be little affect on black box testing (where an understanding of the internal design of the application is unnecessary), white-box testing can be oriented to the application's objects. If the application was well designed this can simplify test design.
Standards and templates - what is supposed to be in a document?
All documents should be written to a certain standard and template. Standards and templates maintain document uniformity. It also helps in learning where information is located, making it easier for a user to find what they want. Lastly, with standards and templates, information will not be accidentally omitted from a document.
How to write Nunit test cases
What Is NUnit?
NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 2.2, is the fourth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages.
What is documentation change management?
Documentation change management is part of configuration management (CM). CM covers the tools and processes used to control, coordinate and track code, requirements, documentation, problems, change requests, designs, tools, compilers, libraries, patches, changes made to them and who makes the changes.
How can I test without requirements?
What is the difference between user documentation and user manual?
When a distinction is made between those who operate and use a computer system for its intended purpose, a separate user documentation and user manual is created. Operators get user documentation, and users get user manuals.
Why was bug x or bug y caught NOT during testing?"
Why the defect was allowed to be introduced into the code? Why don't they have better code reviews? Why don't the developers understand the product better? Why are the requirements not fully understood by these people?The real issue here is that they are passing quality off to the testing team and it's not our job to make the product a quality one--it's the responsibility of everyone in the company including the receptionist.It is not the job of testing to be responsible for assuring quality and it is not the purpose of testing to find bugs.Classic Testing Mistakes
Do they rely on strange configurations: ones you could never hope to reproduce? Is it reasonable that your testers should have "caught" these defects? If it is, don't make any excuses.Alternately, if it's really the requirements, how can the developers make the right product and the testers don't understand what the developers are making? There is communication about what needs to be done, and the developers seem to be getting that communication, why can't your testers? We know the reason: the developers didn't get the communication right--that's why there was a defect. So you can point out the communication as well.when there is a requirements document, testers have a tendency to only test the main path, or they'll only run one test case per requirement, when there clearly should be many tests to catch all boundaries and failures. Testers do need to be able to think about what they are doing, and it is very possible that the testers themselves are at fault. Don't be afraid to hold them accountable for being lazy.The main cause of the problem is not enough testing time allocated:NO time for doc reviews;Little time for test design and creation;Little time for test execution.
How do you conduct peer reviews?
The peer review, sometimes called PDR, is a formal meeting, more formalized than a walk-through, and typically consists of 3-10 people including the test lead, task lead (the author of whatever is being reviewed) and a facilitator (to make notes). The subject of the PDR is typically a code block, release, or feature, or document. The purpose of the PDR is to find problems and see what is missing, not to fix anything. The result of the meeting is documented in a written report. Attendees should prepare for PDRs by reading through documents, before the meeting starts; most problems are found during this preparation.Why is the PDR great? Because it is a cost-effective method of ensuring quality, because bug prevention is more cost effective than bug detection.
500 Internal Server Error problem while doing load testing using Microsoft Web Application Stress Tool When doing Load testing using WAS (Microsoft Web Application Stress Tool), get " 500 Internal Server Error" problem for most of the "POST" querries. The Log file it showed the following data:"GET /imse/Global/images/Default/arrow.gif 500""GET /imse/client/Template/images/Default/arrow.gif 500""GET /imse/client/Template/images/Default/Plus1.gif 500"What could be the reason for this?
The problem is because the response will have not come. The session will have timed out. This will be the application will have taken more memory. This might be because of multiple threads running with each thread taking much CPU time. Please check the Server of the system where the build is deployed for Heap Dump. The Garbage collector will have created Java Heap and Core dumps in the Application folder.Try increasing the number of DB Connections in the server. This might solve the Problem. Also increase the Final Heap size also. This might solve the problems.
How do you check the security of an application?
To check the security of an application, one can use security/penetration testing. Security/penetration testing is testing how well a system is protected against unauthorized internal, or external access, or willful damage. This type of testing usually requires sophisticated testing techniques.
How do I write a Test Case?
How to estimate product test hours for new releases?
Answer1:Your main task is to convince your company of the- value of structured testing and the benefits it brings to the end product- the risks of not testing properly (high maintenance, lots of bugs found in production (and these generally found by your customers!), loss of market reputation ("another crap product from xyz company).Another approach might be to consider starting your test processes earlier (i am guessing from your message that you are following some kind of waterfall method) - its a sort of 'design a little, build a little, test a little, design a little ...' approach.
Answer2:Tell the folks making decisions to read user feedback. No time for testing = angry users who want their money back or worse angry clients who suddenly hire a team of lawyers.Warned all the stakeholders early on and then sent user feedback emails up the chain. Users can be brutal and they tell the truth! Comments like YOU SUCK!!It may also convince them to get more support people instead of increasing testing.
Answer3:The ratios:3/1 Developers to QA (industry)3/2 Developers to QA (Microsoft)There is also a really good article called "A Better Bug Trap" published by The Economist in 2004, which is pretty telling: according to NIST 80% of a software project belongs to testing and debugging.There is also the classic book called "Mythical Man Month". There are a couple of pertinent passages there:1) Back when the book was written, the percentage quoted by NIST was 50%, which means that software development has become less efficient over the last 20 years or so.2) There is a 30% that a change in any line of code will break something down stream.3) There is another article published by McKinsey Quarterly called "What high tech can learn from slow-growth industries".
When testing the password field, what is your focus?
When testing the password field, one needs to focus on encryption; one needs to verify that the passwords are encrypted.
What are the metrics to be collected as part of testing?
A metric is a measurement. While it's easy to count things that are easy to count, and to divide the counts by other things that you count, it's harder to decide what the counts and ratios mean. What are we trying to measure, and what model and what evidence lead us to believe that the counts measure the attribute we claim to be trying to measure?Without clear thinking about validity, the numbers are more of a dangerous distraction than a useful tool. Rather than blindly using a well-known metric, decide what goal you are trying to achieve and find out how best to measure to achieve that goal.Not everything that can be counted counts, and not everything that counts can be counted.Questions you must ask before starting to use metrics are:* Who will use these metrics?* What behaviour are you trying to promote with these metrics?* What information is important to know across the project?* What requires increased visibility or transparency?
What is your view of software QA/testing?
Software QA/testing is easy, if requirements are solid, clear, complete, detailed, cohesive, attainable and testable, and if schedules are realistic, and if there is good communication in the group.Software QA/testing is a piece of cake, if project schedules are realistic, if adequate time is allowed for planning, design, testing, bug fixing, re-testing, changes, and documentation.Software QA/testing is easy, if testing is started early on, if fixes or changes are re-tested, and sufficient time is planned for both testing and bug fixing.Software QA/testing is easy, if new features are avoided, if one sticks to initial requirements as much as possible.
How to test a web application, for security testing of Web Application?
Answer1:Two most common security vulnerabilities that often times overlooked by developers are session and cookie management. Check out google for possible hacks re the two items. Develop test scenario from the kb that you find in the web.Another test would be to concentrate on the log in page and log out.In some cases the back button could be a security problem especially if the previous screen/page has sensitive data and could easily be modified if the back button is used.Lastly, test the user roles properly. Making sure that the specific role only sees what s/he is intended to see.
Answer2:Can test one more scenario for security,1. Login into the application.2. Then copy the url.3. Click Logout button4. Now paste this url in Browser's Address bar or from History access the url of the application after logging outAlso do not forget to check the timeout setting for the application1. Login into the app2. Leave the browser for sometime idle3. then checkout that user session gets expired or not.
Who write the user acceptance testing testcases?
Whoever is assigend the task. It is usually best done by a third-party hired by the client to determine that their product works as contracted, however it can be done by someone one the testing team, product management, or even a technical writer. UATs as usually positive tests.A2: 1. Get requirements2. Design the HLD and LLD documents (high and low level design docs) This is the way we will implement the clients requirements in the software.from 1 Get the UAT test cases.from 2 Get the system test cases.its not a subsetEach and every organisation has its own way designing the test cases sometimes form different sources.UAT is usually designed by the test team itself.What Is UAT, And Why Do It?
What is automatic recovery testing?
Say you are writing a series of transactions to a database and halfway through the power fails, or the comms link drops. You now have a database with incomplete or corrupt data.Once the link is back up, or the application is restarted, how does the database (or application) restore itself and how is the data integrity verified? If there are automatic processes that do this (e.g rollback procedures coded into the application), test if these work correctly.
What's the difference between Alpha, Beta and User Acceptance testing?
The focus in this question is somewhat wrong. You don't do Alpha testing, you do testing against the Alpha cycle of the software. The Alpha cycle is during the development phase. The product has many defects and is not suitable for users in a production environment to be using. Once the Show-Stopper, Critical and most Major defects have been resolved, and once the majority of planned functionality has been added to the product, a Beta release can occur. It is best to have someone coordinate the beta testers rather than just throw the software out to the general public--this way you can keep track of the defects generated by beta users in the field. User Acceptance testing occurs when you have to deliver your product to a customer based on contractual obligations. The User Acceptance test is usually written by the customer or an agent on their part. It is designed to verify, usually only with positive test cases, that the product is as described in the contract.
How can I be a good tester?
We, good testers, take the customers' point of view. We are also tactful and diplomatic. We have a "test to break" attitude, a strong desire for quality, an attention to detail, and good communication skills, both oral and written. Previous software development experience is also helpful, as it provides a deeper understanding of the software development process.
How to do Laod testing for web based Application?
1. Recording a scenerio in QTP of my web based application.2. Make 100 copies of that scenerio and run the test (scenerio run for 100 times)3. In that case, do the load of application on server.4. The basic logic of running the copy 100 times is to create same scenerio as if 100 users were working.
What is GUI testing? What elements will we cover in GUI testing?
In GUI testing, need to cover the customer requirement if don't have to validate 1. Font size, colors, spellings(labels) etc2. Every application should follow Microsoft rules like2.1 Controls should be Initcap (i.e every label should start with Capital letter )Can observe that in Win applications every label starts with Caps2.2 OK or Cancel button should exist2.3 Controls should not be overlapped2.4 Controls should be alligned properly (left side alignment is mandatory but the right side is optional)2.5 Controls should be visible2.6 Short cut keys should be provided2.7 System menu should exist (i.e if u press Alt key + Space bar a menu will appear at the left most corner )2.8 Mouse pointer eventsColors, Label Names, Tab Order, Alignment, graphs , Navigation of the software to test in GUI Testing.
What is that column "steps to reproduce" mean in bug tracking? 1
Answer1:Well, steps to reproduce are just that: what are the steps you need to take to reproduce the stated problem.The steps to reproduce (STR) must be as clear as possible, preferably with screenshots and/or test data. The steps should also be definite (so no 'maybe', 'it sometimes works if you do this' type statements).In the test projects, you've always tried to keep the STR down to a maximum of 5, this to make sure that the problem is easy and clear to communicate to the developers, to reproduce and hence resolve.
Answer2:Ideally, once you identify a bug - you would need to determine the least number of steps required to reproduce the bug. This would help your developer to reproduce the bug easily on his development environment.
When is a process repeatable?
A process repeatable when we use detailed and well-written processes and procedures; this way we ensure the correct steps are being executed. This also facilitates a successful completion of the task, and ensures the process is repeatable.A process is repeatable, whenever we have the necessary processes in place, in order to repeat earlier successes on projects with similar applications. A process is repeatable, if we use detailed and well-written processes and procedures. A process is repeatable, if we ensure that the correct steps are executed.When the correct steps are executed, we facilitate a successful completion of the task. Documentation is critical. A software process is repeatable, if there are requirements management, project planning, project tracking, subcontract management, QA, and configuration management.Both QA processes and practices should be documented, so that they are repeatable. Specifications, designs, business rules, inspection reports, configurations, code changes, test plans, test cases, bug reports, user manuals should all be documented, so that they are repeatable.Document files should be well organized. There should be a system for easily finding and obtaining documents, and determining what document has a particular piece of information. We should use documentation change management, if possible.
Answer1: Test cases for telephonetest the "functionality" of telephone,1. Test for presence of dial tone.2. Dial Local number and check that receiver phone(dialled no.) rings.3. Dial any STD number and check that intended phone number rings.4. Dial the number of "under test" phone and check that it rings.5. When ringing, pick it up and check that ringing stops.6. When talking - then there should be no noise or disturbance.7. Check that "redial" works properly.8. Check STD lock facility works.9. Check speed dialing facility.10. Check for call waiting facility.11. Check that only the caller can disconnect the call.12. If "telephone Under test" is engaged with any caller and at this time if a third caller attempts to call the "telephone under test" then call between two other parties should not get disconnected.13. If "telephone Under test" is engaged with any caller and at this time if a third caller attempts to call the "telephone under test" then third caller will listen to engage tone or message from exchange.14. Check for volume(increase or decrease) of the handset.15. Keep the hand set down from base unit and attempt to call the "telephone under test" then it should not ring.16. Check for call transfer facility.test the 'telephone itself1. Check for extreme temparatures (hot and cold)2. Check for different atmospheric conditions (humidity etc..)3. Check for exterme power conditions4. Check for button durability5. Check for body strengthetc...
Answer2:My company designs and build phone system software, so I am very familiar with phone testing. You could be dealing with an IVR system that has menu-driven logic, or you could be dealing with an auto-attendant with directory features. The basic idea is that you need to be able to define your expected results, and record your actual results. The medium is different, but the same basic concepts apply. In some ways the phone is easier becuase it can be a more linear process than say, a web system
How do you know when to stop testing?
This can be difficult to determine. Many modern software applications are so complex and run in such an interdependent environment, that complete testing can never be done. Common factors in deciding when to stop are...* Deadlines, e.g. release deadlines, testing deadlines;* Test cases completed with certain percentage passed;* Test budget has been depleted;* Coverage of code, functionality, or requirements reaches a specified point;* Bug rate falls below a certain level; or* Beta or alpha testing period ends.
What Will be tested on a static web page?
1. Testing all links are working properly.There are link checker programs that can help you verify if your links are broken2. Test GUI design.3. Test spelling and grammer for contents.4. Test page fonts are consistent.Again depending on the page, this may not be essential, but you can suggest to the designed to use a cascading style sheet to easily maintain a consistent style across pages.5.Title bar message testing.6.Status bar message testing.7.Scroll bars presence at page.8. Browser compatibility(IE and NetScape)IE and FireFox. Ironicly, Netscape 8 has two modes now that allows you to swicth between using the gecko render engine in Firefox and the internal IE render engine that ships with every Windows OS. It's very cool and it can save you a lot of time.9.Changing browser options of IE from Tools --> Internet Options --->10.Advanced tab?11.Changing font for browser and also font size for browser.12. Changing any privacy option from Tools --> Internet Options.13. the images are present14. conformance to W3C standards WRT tags".That's a pretty big topic, but I can touch on it. Every HTML document should tell the browser about the DTD that it was built using. Things likeEach DTD version has different standards. Some allow frames others don't, etc. You will have to learn what the DTD is supposed to use and what it's not supposed to use. Only the best web designers have the various DTDs memorised. Fortunately the W3C has made a page that will validate your pages for you at http://validator.w3.org/After your page passes through that you will get a report that lists errors and info. While most render engines will gloss over the errors and display the page "correctly", it may cause problems further down the road when editing the page. You can discuss these things with your web designer.
How can software QA processes be implemented without stifling productivity?
Implement QA processes slowly over time. Use consensus to reach agreement on processes and adjust and experiment as an organization grows and matures. Productivity will be improved instead of stifled. Problem prevention will lessen the need for problem detection. Panics and burnout will decrease and there will be improved focus and less wasted effort.At the same time, attempts should be made to keep processes simple and efficient, minimize paperwork, promote computer-based processes and automated tracking and reporting, minimize time required in meetings and promote training as part of the QA process.However, no one, especially talented technical types, like bureaucracy and in the short run things may slow down a bit. A typical scenario would be that more days of planning and development will be needed, but less time will be required for late-night bug fixing and calming of irate customers.
How to solve this issue - When developers blame testers for reporting bugs that is not reproducible on their machine?
Avoid this differences by taking screenshots and attaching them in bug tracking tool.it seems that since the environment was not the cause then the "Steps to Reproduce" portion of the Bug report were lacking clarity. Screenshots along the way are a great way to prove a point, especially when you are dealing with something that is reproducible.Sure as a test engineer we surely understand functionality and to an extent we understand the architecture of the software. Hence, we can surly say that some bugs are related to each other and some are not. So, We can introduc a column/field in our bug reporting format (What ever it is...a tool or an excel) for related bug ID.This will actually be helpful for the development community too fix the bugs.Actually Development environment should be same as Testing environment so that this issue will not arise. Make sure that before getting a Build the environment is same . Before Testing briefly go through with the Internal Release note. While Defect reporting mention proper Test data, steps etc. so that next time you can reproduce it.
Why do we recommended that we test during the design phase?
Because testing during the design phase can prevent defects later on. We recommend verifying three things...1. Verify the design is good, efficient, compact, testable and maintainable.2. Verify the design meets the requirements and is complete (specifies all relationships between modules, how to pass data, what happens in exceptional circumstances, starting state of each module and how to guarantee the state of each module).3. Verify the design incorporates enough memory, I/O devices and quick enough runtime for the final product.
How to test a application in flash?
Manually testing flash animations is as simple as making sure that the objects do what they're supposed to do. manually mostly because flash isn't really a programming language. Most developers consider it to be a toy. So the big automation companies won't consider plug-ins for the flash objects.If the flash application is a: E learning Application:1. Need to know the the Hardware Configuration, becauase if this animation contains some heavy images or movie files then it works slowly, and which is a error.so each and every images and movie should be of light weight, as far the quality says.2. File naming convention3. Flash detection4. Objects should do what they are supposed to do5. Etc.If the flash application is a: Web Application:1. File size, should be light weight, beacuase most of the user dont have high speed connection, load testing require2. Quality of texts, images and movie
How test estimation (in terms of schedule, cost, resources required) will be done during developing of test plan?
Reads on the topic:Factors that Influence Test Estimation
What kind of automated software used to test a Web-based application with a .NET (ASP.NET and C#...also SQL Server) framework?
Answer1:Mercury makes some decent products. Quick Test Pro can be used for a lot of your requirements... It can be costly and mind-numbing at times though.
Answer2:Selenium is a test tool for web applications. Selenium tests run directly in a browser, just as real users do. And they run in Internet Explorer, Mozilla and Firefox on Windows, Linux, and Macintosh. No other test tool covers such a wide array of platforms.* Browser compatability testing. Test your application to see if it works correctly on different browsers and operating systems. The same script can run on any Selenium platform.* System functional testing. Create regression tests to verify application functionality and user acceptance.
Answer3:Ruby is becoming a preferred standard for testingPerl is also used a great deal
What kind of automated testing tool should Small company use?
Automation is not designed for small test teams in companies. It does not make your testing more efficient, it just make it faster. When you hit problems (and you likely will) it will take a lot of time to fix these problems.At the only time that a good automated process can be put in place.After your company starts growing and product releases, service packs, etc start to pile up in the horizon, your team will not have the time to automate because it will come after anything else to keep revenue coming and customers happy.Automation makes you faster, a nice outcome that will become vital later. The trick is in controlling the inputs of that process to get a good bang for the buck.The standard QA tools cause a lot of trouble and more often than not end up collecting dust in the shelves.Just throwing people and money at the problem does not work and is just available to bigger companies.Reads on the topic: How do I know when to Automate?These articles will help you decide if you're even ready to automate.When Should a Test Be Automated?Brian MarickSoftware Test Automation and the Product Life Cycle: Implementingsoftware test in the product life cycleDave Kelly
What if organization is growing so fast that fixed QA processes are impossible?
This is a common problem in the software industry, especially in new technology areas. There is no easy solution in this situation, other than...* Hire good people* Ruthlessly prioritize quality issues and maintain focus on the customer;* Everyone in the organization should be clear on what quality means to the customer.
Can We do performance testing manually?*
Yes you can do Performance testing manually. For this you should open many active sessions of the application and should test it out. It also depends on what type of performance test you want to do. However, in general you can judge the active sessions, number of DB connections open, number of threads running (I have taken JAVA based Web applications as eg), the amount of the CPU time and memory being used by having a performance viewer. You can have IBM Tivoli Performance viewer. It is available for trial version also. Usually the the test is done by deploying the application on the server and accessing the application from multiple client machines and making multiple threads to run. The performance viewer should of course be installed on the server.
What's the SDLC models- waterfall and v-models?
Answer1:In large scale company first of all they are followed waterfall method. now days mostly companies are following V models.model - means the testing involvement starts from the design state itself & continues till system test.Phase TestingRequirements - reviewdesign - reviewTR - TUTthen testing phases starts.So, like this testing makes a perfect V. so we call it V model.Indicate the flow of activities in the V-model, please look at:Test Process in the V-model
Answer2:The waterfall is the General concept of all the models and most of the project based companies use V-Model. Testing will be involved from the requirements phase till the User Acceptance Test.
What's server side testing
It's testing the applications and daemons that run on a server.Server Side testing can involve testing of Servlets and Controllers.
How a particular test team is formed ?
Putting together a test team is1 - get an understanding of the application being tested2 - understand the underlying technologies3 - understand the roadmap (future plans) for the product4 - understand the budgetary limitations you are working under
Points 1 and 2 are pretty obvious. Point 3 is more to do with future planning (they might be moving from client/server to webapp, so dont go recruiting lots of client/server specialist - bad example, but you get the drift ..). Point 4 is important as it will determine not just the number of testers, but the skill level of the testers you can afford to employ, training required etc ...
Need a template for preparing the Test Environment.
Answer1:A test environment can be as simple or as complex as can be, but it *must* be seperate from a development environment. In an ideal world, you'd have a DEVelopment environment, a TEST environment, an ACCeptance environment and a partitioned PRODuction environment.The DEV environment no one in QA touches, the TEST environment no one in development touches, the ACCeptance environment is for acceptance testing by end-users and adminstrators, performance/stress/load testing and so on and should mirror the PRODuction environment. The PRODuction environment should be a live/'hot swap' configuration; the release is deployed to 'hot swap', tested by the administrators and final acceptance testing before being 'hot swapped' to live.
Answer2:TEST ENVIRONMENT:Setup of a test environment will require:- Hardware- Operating systems- Software that needs to be tested- Other required software like tools (And people who can use them)- Data configurations- Interfaces to other systems, communications- Documentation like user manuals/reference documents/configuration guides/installation guides
Setting up a dedicated Test Environment is expensive and the following needs to be considered:- To create an internal Test Environment or to outsource- To follow any External (IEEE, ISO etc.) or Internal company standards- The initial set-up & running costs- How long will the Test Environment be required?- How production like does it need to be? If the environment does not mirrors production then differences between the test and production systems and their impact on test validity must be determined.- Can you support the environment either technically or within the building infrastructure?- Could any exisiting setup for other projects in the company can be re-used- Could the setup be used for other projects within the company? - Day to day management- Procedures for controlling change (Configuration management) - Data loading and security requirements
What is the exact difference between functional and non functional testing?
Functional testing means we do functional testing to validate the functionality of the application against functional requirements document.we test for functionality of the application only. Non-functional testing means we do not test for functionality of the application System testing, load testing, stress testing, performance testing etc come under non functional testing.
How is testing affected by object-oriented designs?
A well-engineered object-oriented design can make it easier to trace from code to internal design to functional design to requirements. While there will be little affect on black box testing (where an understanding of the internal design of the application is unnecessary), white-box testing can be oriented to the application's objects. If the application was well designed this can simplify test design.
Standards and templates - what is supposed to be in a document?
All documents should be written to a certain standard and template. Standards and templates maintain document uniformity. It also helps in learning where information is located, making it easier for a user to find what they want. Lastly, with standards and templates, information will not be accidentally omitted from a document.
How to write Nunit test cases
What Is NUnit?
NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 2.2, is the fourth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages.
What is documentation change management?
Documentation change management is part of configuration management (CM). CM covers the tools and processes used to control, coordinate and track code, requirements, documentation, problems, change requests, designs, tools, compilers, libraries, patches, changes made to them and who makes the changes.
How can I test without requirements?
What is the difference between user documentation and user manual?
When a distinction is made between those who operate and use a computer system for its intended purpose, a separate user documentation and user manual is created. Operators get user documentation, and users get user manuals.
Why was bug x or bug y caught NOT during testing?"
Why the defect was allowed to be introduced into the code? Why don't they have better code reviews? Why don't the developers understand the product better? Why are the requirements not fully understood by these people?The real issue here is that they are passing quality off to the testing team and it's not our job to make the product a quality one--it's the responsibility of everyone in the company including the receptionist.It is not the job of testing to be responsible for assuring quality and it is not the purpose of testing to find bugs.Classic Testing Mistakes
Do they rely on strange configurations: ones you could never hope to reproduce? Is it reasonable that your testers should have "caught" these defects? If it is, don't make any excuses.Alternately, if it's really the requirements, how can the developers make the right product and the testers don't understand what the developers are making? There is communication about what needs to be done, and the developers seem to be getting that communication, why can't your testers? We know the reason: the developers didn't get the communication right--that's why there was a defect. So you can point out the communication as well.when there is a requirements document, testers have a tendency to only test the main path, or they'll only run one test case per requirement, when there clearly should be many tests to catch all boundaries and failures. Testers do need to be able to think about what they are doing, and it is very possible that the testers themselves are at fault. Don't be afraid to hold them accountable for being lazy.The main cause of the problem is not enough testing time allocated:NO time for doc reviews;Little time for test design and creation;Little time for test execution.
How do you conduct peer reviews?
The peer review, sometimes called PDR, is a formal meeting, more formalized than a walk-through, and typically consists of 3-10 people including the test lead, task lead (the author of whatever is being reviewed) and a facilitator (to make notes). The subject of the PDR is typically a code block, release, or feature, or document. The purpose of the PDR is to find problems and see what is missing, not to fix anything. The result of the meeting is documented in a written report. Attendees should prepare for PDRs by reading through documents, before the meeting starts; most problems are found during this preparation.Why is the PDR great? Because it is a cost-effective method of ensuring quality, because bug prevention is more cost effective than bug detection.
500 Internal Server Error problem while doing load testing using Microsoft Web Application Stress Tool When doing Load testing using WAS (Microsoft Web Application Stress Tool), get " 500 Internal Server Error" problem for most of the "POST" querries. The Log file it showed the following data:"GET /imse/Global/images/Default/arrow.gif 500""GET /imse/client/Template/images/Default/arrow.gif 500""GET /imse/client/Template/images/Default/Plus1.gif 500"What could be the reason for this?
The problem is because the response will have not come. The session will have timed out. This will be the application will have taken more memory. This might be because of multiple threads running with each thread taking much CPU time. Please check the Server of the system where the build is deployed for Heap Dump. The Garbage collector will have created Java Heap and Core dumps in the Application folder.Try increasing the number of DB Connections in the server. This might solve the Problem. Also increase the Final Heap size also. This might solve the problems.
How do you check the security of an application?
To check the security of an application, one can use security/penetration testing. Security/penetration testing is testing how well a system is protected against unauthorized internal, or external access, or willful damage. This type of testing usually requires sophisticated testing techniques.
How do I write a Test Case?
How to estimate product test hours for new releases?
Answer1:Your main task is to convince your company of the- value of structured testing and the benefits it brings to the end product- the risks of not testing properly (high maintenance, lots of bugs found in production (and these generally found by your customers!), loss of market reputation ("another crap product from xyz company).Another approach might be to consider starting your test processes earlier (i am guessing from your message that you are following some kind of waterfall method) - its a sort of 'design a little, build a little, test a little, design a little ...' approach.
Answer2:Tell the folks making decisions to read user feedback. No time for testing = angry users who want their money back or worse angry clients who suddenly hire a team of lawyers.Warned all the stakeholders early on and then sent user feedback emails up the chain. Users can be brutal and they tell the truth! Comments like YOU SUCK!!It may also convince them to get more support people instead of increasing testing.
Answer3:The ratios:3/1 Developers to QA (industry)3/2 Developers to QA (Microsoft)There is also a really good article called "A Better Bug Trap" published by The Economist in 2004, which is pretty telling: according to NIST 80% of a software project belongs to testing and debugging.There is also the classic book called "Mythical Man Month". There are a couple of pertinent passages there:1) Back when the book was written, the percentage quoted by NIST was 50%, which means that software development has become less efficient over the last 20 years or so.2) There is a 30% that a change in any line of code will break something down stream.3) There is another article published by McKinsey Quarterly called "What high tech can learn from slow-growth industries".
When testing the password field, what is your focus?
When testing the password field, one needs to focus on encryption; one needs to verify that the passwords are encrypted.
What are the metrics to be collected as part of testing?
A metric is a measurement. While it's easy to count things that are easy to count, and to divide the counts by other things that you count, it's harder to decide what the counts and ratios mean. What are we trying to measure, and what model and what evidence lead us to believe that the counts measure the attribute we claim to be trying to measure?Without clear thinking about validity, the numbers are more of a dangerous distraction than a useful tool. Rather than blindly using a well-known metric, decide what goal you are trying to achieve and find out how best to measure to achieve that goal.Not everything that can be counted counts, and not everything that counts can be counted.Questions you must ask before starting to use metrics are:* Who will use these metrics?* What behaviour are you trying to promote with these metrics?* What information is important to know across the project?* What requires increased visibility or transparency?
What is your view of software QA/testing?
Software QA/testing is easy, if requirements are solid, clear, complete, detailed, cohesive, attainable and testable, and if schedules are realistic, and if there is good communication in the group.Software QA/testing is a piece of cake, if project schedules are realistic, if adequate time is allowed for planning, design, testing, bug fixing, re-testing, changes, and documentation.Software QA/testing is easy, if testing is started early on, if fixes or changes are re-tested, and sufficient time is planned for both testing and bug fixing.Software QA/testing is easy, if new features are avoided, if one sticks to initial requirements as much as possible.
How to test a web application, for security testing of Web Application?
Answer1:Two most common security vulnerabilities that often times overlooked by developers are session and cookie management. Check out google for possible hacks re the two items. Develop test scenario from the kb that you find in the web.Another test would be to concentrate on the log in page and log out.In some cases the back button could be a security problem especially if the previous screen/page has sensitive data and could easily be modified if the back button is used.Lastly, test the user roles properly. Making sure that the specific role only sees what s/he is intended to see.
Answer2:Can test one more scenario for security,1. Login into the application.2. Then copy the url.3. Click Logout button4. Now paste this url in Browser's Address bar or from History access the url of the application after logging outAlso do not forget to check the timeout setting for the application1. Login into the app2. Leave the browser for sometime idle3. then checkout that user session gets expired or not.
Who write the user acceptance testing testcases?
Whoever is assigend the task. It is usually best done by a third-party hired by the client to determine that their product works as contracted, however it can be done by someone one the testing team, product management, or even a technical writer. UATs as usually positive tests.A2: 1. Get requirements2. Design the HLD and LLD documents (high and low level design docs) This is the way we will implement the clients requirements in the software.from 1 Get the UAT test cases.from 2 Get the system test cases.its not a subsetEach and every organisation has its own way designing the test cases sometimes form different sources.UAT is usually designed by the test team itself.What Is UAT, And Why Do It?
What is automatic recovery testing?
Say you are writing a series of transactions to a database and halfway through the power fails, or the comms link drops. You now have a database with incomplete or corrupt data.Once the link is back up, or the application is restarted, how does the database (or application) restore itself and how is the data integrity verified? If there are automatic processes that do this (e.g rollback procedures coded into the application), test if these work correctly.
What's the difference between Alpha, Beta and User Acceptance testing?
The focus in this question is somewhat wrong. You don't do Alpha testing, you do testing against the Alpha cycle of the software. The Alpha cycle is during the development phase. The product has many defects and is not suitable for users in a production environment to be using. Once the Show-Stopper, Critical and most Major defects have been resolved, and once the majority of planned functionality has been added to the product, a Beta release can occur. It is best to have someone coordinate the beta testers rather than just throw the software out to the general public--this way you can keep track of the defects generated by beta users in the field. User Acceptance testing occurs when you have to deliver your product to a customer based on contractual obligations. The User Acceptance test is usually written by the customer or an agent on their part. It is designed to verify, usually only with positive test cases, that the product is as described in the contract.
How can I be a good tester?
We, good testers, take the customers' point of view. We are also tactful and diplomatic. We have a "test to break" attitude, a strong desire for quality, an attention to detail, and good communication skills, both oral and written. Previous software development experience is also helpful, as it provides a deeper understanding of the software development process.
How to do Laod testing for web based Application?
1. Recording a scenerio in QTP of my web based application.2. Make 100 copies of that scenerio and run the test (scenerio run for 100 times)3. In that case, do the load of application on server.4. The basic logic of running the copy 100 times is to create same scenerio as if 100 users were working.
What is GUI testing? What elements will we cover in GUI testing?
In GUI testing, need to cover the customer requirement if don't have to validate 1. Font size, colors, spellings(labels) etc2. Every application should follow Microsoft rules like2.1 Controls should be Initcap (i.e every label should start with Capital letter )Can observe that in Win applications every label starts with Caps2.2 OK or Cancel button should exist2.3 Controls should not be overlapped2.4 Controls should be alligned properly (left side alignment is mandatory but the right side is optional)2.5 Controls should be visible2.6 Short cut keys should be provided2.7 System menu should exist (i.e if u press Alt key + Space bar a menu will appear at the left most corner )2.8 Mouse pointer eventsColors, Label Names, Tab Order, Alignment, graphs , Navigation of the software to test in GUI Testing.
What is that column "steps to reproduce" mean in bug tracking? 1
Answer1:Well, steps to reproduce are just that: what are the steps you need to take to reproduce the stated problem.The steps to reproduce (STR) must be as clear as possible, preferably with screenshots and/or test data. The steps should also be definite (so no 'maybe', 'it sometimes works if you do this' type statements).In the test projects, you've always tried to keep the STR down to a maximum of 5, this to make sure that the problem is easy and clear to communicate to the developers, to reproduce and hence resolve.
Answer2:Ideally, once you identify a bug - you would need to determine the least number of steps required to reproduce the bug. This would help your developer to reproduce the bug easily on his development environment.
When is a process repeatable?
A process repeatable when we use detailed and well-written processes and procedures; this way we ensure the correct steps are being executed. This also facilitates a successful completion of the task, and ensures the process is repeatable.A process is repeatable, whenever we have the necessary processes in place, in order to repeat earlier successes on projects with similar applications. A process is repeatable, if we use detailed and well-written processes and procedures. A process is repeatable, if we ensure that the correct steps are executed.When the correct steps are executed, we facilitate a successful completion of the task. Documentation is critical. A software process is repeatable, if there are requirements management, project planning, project tracking, subcontract management, QA, and configuration management.Both QA processes and practices should be documented, so that they are repeatable. Specifications, designs, business rules, inspection reports, configurations, code changes, test plans, test cases, bug reports, user manuals should all be documented, so that they are repeatable.Document files should be well organized. There should be a system for easily finding and obtaining documents, and determining what document has a particular piece of information. We should use documentation change management, if possible.
Explain Peer Review in Software Testing ?
It is an alternative form of Testing, where some colleagues were invited to examine your work products for defects and improvement opportunities.
Some Peer review approaches are,
Inspection – It is a more systematic and rigorous type of peer review. Inspections are more effective at finding defects than are informal reviews.Ex : In Motorola’s Iridium project nearly 80% of the defects were detected through inspections where only 60% of the defects were detected through informal reviews.
Team Reviews – It is a planned and structured approach but less formal and less rigorous comparing to Inspections.
Walkthrough – It is an informal review because the work product’s author describes it to some colleagues and asks for suggestions. Walkthroughs are informal because they typically do not follow a defined procedure, do not specify exit criteria, require no management reporting, and generate no metrics.
Pair Programming – In Pair Programming, two developers work together on the same program at a single workstation and continuously reviewing their work.
Peer Deskcheck – In Peer Deskcheck only one person besides the author examines the work product. It is an informal review, where the reviewer can use defect checklists and some analysis methods to increase the effectiveness.
Passaround – It is a multiple, concurrent peer deskcheck where several people are invited to provide comments on the product.
Some Peer review approaches are,
Inspection – It is a more systematic and rigorous type of peer review. Inspections are more effective at finding defects than are informal reviews.Ex : In Motorola’s Iridium project nearly 80% of the defects were detected through inspections where only 60% of the defects were detected through informal reviews.
Team Reviews – It is a planned and structured approach but less formal and less rigorous comparing to Inspections.
Walkthrough – It is an informal review because the work product’s author describes it to some colleagues and asks for suggestions. Walkthroughs are informal because they typically do not follow a defined procedure, do not specify exit criteria, require no management reporting, and generate no metrics.
Pair Programming – In Pair Programming, two developers work together on the same program at a single workstation and continuously reviewing their work.
Peer Deskcheck – In Peer Deskcheck only one person besides the author examines the work product. It is an informal review, where the reviewer can use defect checklists and some analysis methods to increase the effectiveness.
Passaround – It is a multiple, concurrent peer deskcheck where several people are invited to provide comments on the product.
Configuration Management In Software Testing
Configuration Management
Managing the products of system change
Four Types of Activities
•Configuration management planning
•Change management
•Version and release management
•System building
Configuration Management (1)
•New versions of software systems are created as they evolve
–different machines / OS
–offer different functionality
–Tailored for particular users / requirements
•CM is concerned with managing evolving software systems
–System change --> team activity
–control the costs and effort involved in making changes to a system
Configuration Management (2)
•Involves development and application of procedures and standards to manage an evolving software product
•Part of a more general quality management process
•When released to CM, software systems are sometimes called baselines
–a starting point for further development
System Families
CM Standards
•Based on a set of standards, applied within an organization
•Standards should define:
–how items are identified,
–how changes are controlled, and
–how new versions are managed
•Standards may be based on external CM standards (e.g. IEEE standard for CM)
CM Planning (1)
•All products of the software process may have to be managed
–Specifications
–Designs
–Programs
–Test Data
–User Manuals
•Thousands of separate documents are generated for a large software system
CM Planning (2)
•Start: early phases of the project
•Define the documents or document classes which are to be managed
–Formal Documents
•Documents required for future system maintenance should be identified and specified as managed documents
Configuration Management Plan (1)
•Defines types of documents to be managed and a document naming scheme
•Defines who is responsible for the CM procedures and creation of baselines
•Defines policies
–change control and version management
•Defines the CM records which must be maintained
Configuration Management Plan (2)
•Describes the tools which should be used and any limitations on their use
•Defines the process of tool use
•Defines the CM database used to record configuration information
•May include information such as the CM of external software, process auditing, etc.
CM Item Identification
•Large projects typically produce thousands of documents which must be uniquely identified
•Some documents are maintained for the lifetime of the software
•Document naming scheme should be defined so that related documents have related names
•A hierarchical scheme with multi-level names is probably the most flexible approach
Configuration Hierarchy
CM Planning Database
•Maintain all CM information in a CM database
•Allow queries about configurations to be answered:
–Who has a particular system version?
–What platform is required for a particular version?
–What versions are affected by a change to component X?
–How many reported faults in version T?
•CM database should be linked to the software being managed
CM Database Implementation
•May be part of an integrated environment to support software development
–The CM database and the managed documents are all maintained on the same system
•CASE tools may be integrated so that there is a close relationship between the CASE tools and the CM tools
•Typically, the CM database is maintained separately as this is cheaper and more flexible
Change Management
•Software systems are subject to continual change requests from
–users
–developers
–market forces
•Change Management:
–keep managing these changes and ensuring that they are implemented in the most cost-effective way
Change Management Process
Change Request Form
•Definition of change request form is part of the CM planning process
•Records:
•Change required
•Suggestor of change
•Reason why change was suggested
•Urgency of change (from requestor of the change)
•Change evaluation
•Impact analysis
•Change cost and recommendations (System maintenance staff)
Change Request Form
•See second lecture part.
Change Tracking Tools
•Major problem in change management:
–tracking change status
•Change tracking tools:
–keep tracking the status of each change request and automatically ensure that change requests are sent to the right people at the right time
•Integrated with email systems allowing electronic change request distribution
Change Control Board
•Changes should be reviewed by an external group who decide whether or not they are cost-effective from a strategic and organizational viewpoint rather than a technical viewpoint
•Should be independent of project responsible for system
•May include representative from client and contractor staff
Derivation History
•Record of changes applied to a document or code component
•Should record, in outline, the change made, the rationale for the change, who made the change, and when it was implemented
•May be included as a comment in code. If a standard prologue style is used for the derivation history, tools can process this automatically
Example: Derivation History
Version and Release Management
•Invent identification scheme for system versions
•Plan when new system version is to be produced
•Ensure that version management procedures and tools are properly applied
•Plan and distribute new system releases
Versions / Variants / Releases
•Versions
–An instance of a system which is functionally distinct in some way from other system instances
• Variant
–An instance of a system which is functionally identical but non-functionally distinct from other instances of a system
•Release
–An instance of a system which is distributed to users outside of the development team
System Releases
•Not just a set of executable programs
•May also include
–Configuration files defining how the release is configured for a particular installation
–Data files needed for system operation
–An installation program or shell script to install the system on target hardware
–electronic and paper documentation
•Systems may be released on magnetic tape, floppy disk, or CD-ROM
Version Identification
•Simple naming scheme user a linear derivation (e.g. V1, V1.1, V1.2, V2.1, V2.2…)
•Actual derivation structure is a tree or a network rather than a sequence
•Names are not meaningful
•Hierarchical naming scheme may be better
Version Derivation Structure
Attributed Version Identification
•Attributes can be associated with a version with the combination of attributes identifying that version
•Examples of attributes are Date, Creator, Programming Language, Customer, Status, etc.
•More flexible than an explicit naming scheme for version retrieval; Can cause problems with uniqueness
•Needs an associated name for easy reference
Release Management
•Releases must incorporate changes forced on the system by errors discovered by users and by hardware changes
•They must also incorporate new system functionality
•Release planning is concerned with when to issue a system version as a release
Lehman’s Fifth Law
•The incremental system change which can be incorporated in each release of the system is approximately constant
•If too many new features are included at the same time as error repairs, the cost of producing a new release is significantly increased
•If a release has many changes incorporated, it must be followed by a further release fixing problems in the first release
System Release Strategy
Release Problems
•Customer may not want a new release of the system
–They may be happy with their current system as the new version may provide unwanted functionality (e.g. Word 6)
•Release management must not assume that all previous releases have been accepted. All files required for a release should be re-created with a new release is installed
Version Management Tools
•Version and release identification
–Systems assign identifiers automatically when a new version is submitted to the system
•Controlled change
–Only one version at a time may be checked out for change. Parallel working on different versions
•Storage management
–System stores the difference between versions rather than all the version code
•Change history recording
RCS - Revision Control System
•RCS is a relatively old tool but still widely used
•Minimized the disk requirements by only storing differences (deltas) from a base version
•Applies deltas to the latest release to re-create earlier system versions
•Allows any named version or release to be generated
•Allows independent development of different releases
Deltas in RCS
Parallel Development in RCS
RCS Limitations
•Designed as a code control system -- therefore intended for use with ASCII text
•Cannot be used to manage object code or other documents with non-ASCII representations (e.g. multimedia files)
•Test-based user interface. Version browsing is difficult
•Version retrieval based on the name rather than the version attributes
System Building
•Involves taking all system components and combining them into a single executable system
•Different systems are built from different component combinations
•May take several days for large systems if all components are compiled and linked at the same time
System Building Problems (1)
•Do the build instructions include all required components?
–When there are many hundreds of components making up a system, it is easy to miss one out. This should normally be detected by the linker
•Is the appropriate component version specified?
–A more significant problem. A system built with the wrong version may work initially but fail after delivery
•Are all data files available?
–The build should not rely on ‘standard’ data files. Standards vary from place to place
System Building Problems (2)
•Are data file references within components correct?
–Embedding absolute names in code almost always causes problems as naming conventions differ from place to place
•Is the system being built for the right platform?
–Sometimes must build for a specific OS version or hardware configuration
•Is the right version of the compiler and other software tools specified?
–Different compiler versions may actually generate different code and the compiled component will exhibit different behavior
Configuration Threads
•Identify the version to be built by specifying its attributes (e.g. Build the version with identifier attribute, R3; build the version with status attribute ‘beta test’ etc.)
•Identify the version of the compiler and support tools along with its parameters which is to be used in building a system version
CM Support with an Integrated DB
•CM tools may be implemented using database query and browsing facilities
•Using process information, other tools such as editors / compilers etc. can be integrated and can automate version creation
•Information dissemination of versions and changes con be incorporated in the process information
Database Oriented CM Tools
•Rely on a powerful semantic or object-oriented database
•Store both process and product information
•Provide an integrated set of tools for configuration management
•Integrated with other tools through the database
•Graphical user interface
•Still research prototypes
Summary (1)
•CM is the management of system change to software products
•Effective CM is essential in large software projects
•CM activities include CM planning, change management, system building, and version and release management
•A formal document naming scheme should be established and documents should be managed in a database
Summary (2)
•System releases should be phased with releases fixing problems interleaved with releases offering new functionality
•System building involves assembling components into a system. It is always supported by system building tools such as MAKE
Software Configuration Management
Course Objectives
•What is Configuration Management?
•Why Configuration Management ?
•Functions of Configuration Management:
–Configuration Identification
–Configuration Control
–Configuration Audit
–Configuration Status Accounting
•How to Form a Software Configuration Management Team and a Software Configuration Control Board
Chapter 1
Overview
What is Configuration Management?
•Definition from IEEE – A discipline applying technical and administrative direction and surveillance to:
–Identify and document the functional and physical characteristics of a configuration item
–Control changes to those characteristics
–Record and report change processing and implementation status
–Verify compliance with specified requirements
What is Configuration Mgmt (cont’d)?
•A way to control a product and its components over time
•A formal process that involves:
–Identifying the configuration of software work products and their descriptions at given points in time:
•Applications being developed or maintained
•Development and maintenance tools
–Systematically controlling changes to the configuration
What is Configuration Mgmt (cont’d)?
–Maintaining integrity and traceability of the configuration throughout the life cycle
•SCM is part of the system configuration management process
Source: Adapted from Paulk, M.C., et. al. (CMU/SEI-93-TR-25), p. L2-71.
Exercise
•As you watch the playlet on the next two pages, prepare to discuss the following questions:
–What are the problems?
–What are the underlying causes of the problems?
–What should FFI have done to avoid them?
Common Problems
•Updates are lost; over written.
•Problems and changes are not tracked or related.
•Changes are not related to crashes.
•It is unclear exactly what changes were made.
•It is unclear whether new requirements are in the product.
•It is unclear which version supports which customer.
•The previous version that worked cannot be rebuilt.
•Poor communication – People who might be able to help are not made aware of problems.
Misconceptions
•CM is not required in this program.
•CM is applied after development.
•CM procedures slow down development.
•The document can be changed later.
•We do not have time for change boards.
CM Objectives
Ensure that all project personal know:
–What is supposed to be built
–What is being built
– What has been built
To avoid:
–Delay in schedule
–Cost overruns
–Communication problems
Why Do We Need Configuration Management?
•Because we are good at:
–Creating
–Having Ideas
–Producing Things
–Making Decisions
–Writing Programs
–Changing Programs
–Issuing Instructions
Why Do We Need Configuration Management?
•Because we are not good at:
–Documenting
–Recording Changes
–Keeping History
–Recording Decisions
–Cleaning Up
–Communicating
Four Common Problems in Software Development
•Communication breakdown
•Shared data
•Multiple maintenance
•Simultaneous update
What is Configuration?
•A set of the artifacts or configuration items (intermediate and end-products) that define the system, or a part of the system, within the system’s lifecycle
What is a Configuration Item?
•An aggregation of hardware, software, or both designated for configuration management and treated as a single unit for the configuration management process.
Functions of Software Configuration Management
–Configuration identification
–Configuration control
–Configuration status accounting
–Configuration audit
Managing the products of system change
Four Types of Activities
•Configuration management planning
•Change management
•Version and release management
•System building
Configuration Management (1)
•New versions of software systems are created as they evolve
–different machines / OS
–offer different functionality
–Tailored for particular users / requirements
•CM is concerned with managing evolving software systems
–System change --> team activity
–control the costs and effort involved in making changes to a system
Configuration Management (2)
•Involves development and application of procedures and standards to manage an evolving software product
•Part of a more general quality management process
•When released to CM, software systems are sometimes called baselines
–a starting point for further development
System Families
CM Standards
•Based on a set of standards, applied within an organization
•Standards should define:
–how items are identified,
–how changes are controlled, and
–how new versions are managed
•Standards may be based on external CM standards (e.g. IEEE standard for CM)
CM Planning (1)
•All products of the software process may have to be managed
–Specifications
–Designs
–Programs
–Test Data
–User Manuals
•Thousands of separate documents are generated for a large software system
CM Planning (2)
•Start: early phases of the project
•Define the documents or document classes which are to be managed
–Formal Documents
•Documents required for future system maintenance should be identified and specified as managed documents
Configuration Management Plan (1)
•Defines types of documents to be managed and a document naming scheme
•Defines who is responsible for the CM procedures and creation of baselines
•Defines policies
–change control and version management
•Defines the CM records which must be maintained
Configuration Management Plan (2)
•Describes the tools which should be used and any limitations on their use
•Defines the process of tool use
•Defines the CM database used to record configuration information
•May include information such as the CM of external software, process auditing, etc.
CM Item Identification
•Large projects typically produce thousands of documents which must be uniquely identified
•Some documents are maintained for the lifetime of the software
•Document naming scheme should be defined so that related documents have related names
•A hierarchical scheme with multi-level names is probably the most flexible approach
Configuration Hierarchy
CM Planning Database
•Maintain all CM information in a CM database
•Allow queries about configurations to be answered:
–Who has a particular system version?
–What platform is required for a particular version?
–What versions are affected by a change to component X?
–How many reported faults in version T?
•CM database should be linked to the software being managed
CM Database Implementation
•May be part of an integrated environment to support software development
–The CM database and the managed documents are all maintained on the same system
•CASE tools may be integrated so that there is a close relationship between the CASE tools and the CM tools
•Typically, the CM database is maintained separately as this is cheaper and more flexible
Change Management
•Software systems are subject to continual change requests from
–users
–developers
–market forces
•Change Management:
–keep managing these changes and ensuring that they are implemented in the most cost-effective way
Change Management Process
Change Request Form
•Definition of change request form is part of the CM planning process
•Records:
•Change required
•Suggestor of change
•Reason why change was suggested
•Urgency of change (from requestor of the change)
•Change evaluation
•Impact analysis
•Change cost and recommendations (System maintenance staff)
Change Request Form
•See second lecture part.
Change Tracking Tools
•Major problem in change management:
–tracking change status
•Change tracking tools:
–keep tracking the status of each change request and automatically ensure that change requests are sent to the right people at the right time
•Integrated with email systems allowing electronic change request distribution
Change Control Board
•Changes should be reviewed by an external group who decide whether or not they are cost-effective from a strategic and organizational viewpoint rather than a technical viewpoint
•Should be independent of project responsible for system
•May include representative from client and contractor staff
Derivation History
•Record of changes applied to a document or code component
•Should record, in outline, the change made, the rationale for the change, who made the change, and when it was implemented
•May be included as a comment in code. If a standard prologue style is used for the derivation history, tools can process this automatically
Example: Derivation History
Version and Release Management
•Invent identification scheme for system versions
•Plan when new system version is to be produced
•Ensure that version management procedures and tools are properly applied
•Plan and distribute new system releases
Versions / Variants / Releases
•Versions
–An instance of a system which is functionally distinct in some way from other system instances
• Variant
–An instance of a system which is functionally identical but non-functionally distinct from other instances of a system
•Release
–An instance of a system which is distributed to users outside of the development team
System Releases
•Not just a set of executable programs
•May also include
–Configuration files defining how the release is configured for a particular installation
–Data files needed for system operation
–An installation program or shell script to install the system on target hardware
–electronic and paper documentation
•Systems may be released on magnetic tape, floppy disk, or CD-ROM
Version Identification
•Simple naming scheme user a linear derivation (e.g. V1, V1.1, V1.2, V2.1, V2.2…)
•Actual derivation structure is a tree or a network rather than a sequence
•Names are not meaningful
•Hierarchical naming scheme may be better
Version Derivation Structure
Attributed Version Identification
•Attributes can be associated with a version with the combination of attributes identifying that version
•Examples of attributes are Date, Creator, Programming Language, Customer, Status, etc.
•More flexible than an explicit naming scheme for version retrieval; Can cause problems with uniqueness
•Needs an associated name for easy reference
Release Management
•Releases must incorporate changes forced on the system by errors discovered by users and by hardware changes
•They must also incorporate new system functionality
•Release planning is concerned with when to issue a system version as a release
Lehman’s Fifth Law
•The incremental system change which can be incorporated in each release of the system is approximately constant
•If too many new features are included at the same time as error repairs, the cost of producing a new release is significantly increased
•If a release has many changes incorporated, it must be followed by a further release fixing problems in the first release
System Release Strategy
Release Problems
•Customer may not want a new release of the system
–They may be happy with their current system as the new version may provide unwanted functionality (e.g. Word 6)
•Release management must not assume that all previous releases have been accepted. All files required for a release should be re-created with a new release is installed
Version Management Tools
•Version and release identification
–Systems assign identifiers automatically when a new version is submitted to the system
•Controlled change
–Only one version at a time may be checked out for change. Parallel working on different versions
•Storage management
–System stores the difference between versions rather than all the version code
•Change history recording
RCS - Revision Control System
•RCS is a relatively old tool but still widely used
•Minimized the disk requirements by only storing differences (deltas) from a base version
•Applies deltas to the latest release to re-create earlier system versions
•Allows any named version or release to be generated
•Allows independent development of different releases
Deltas in RCS
Parallel Development in RCS
RCS Limitations
•Designed as a code control system -- therefore intended for use with ASCII text
•Cannot be used to manage object code or other documents with non-ASCII representations (e.g. multimedia files)
•Test-based user interface. Version browsing is difficult
•Version retrieval based on the name rather than the version attributes
System Building
•Involves taking all system components and combining them into a single executable system
•Different systems are built from different component combinations
•May take several days for large systems if all components are compiled and linked at the same time
System Building Problems (1)
•Do the build instructions include all required components?
–When there are many hundreds of components making up a system, it is easy to miss one out. This should normally be detected by the linker
•Is the appropriate component version specified?
–A more significant problem. A system built with the wrong version may work initially but fail after delivery
•Are all data files available?
–The build should not rely on ‘standard’ data files. Standards vary from place to place
System Building Problems (2)
•Are data file references within components correct?
–Embedding absolute names in code almost always causes problems as naming conventions differ from place to place
•Is the system being built for the right platform?
–Sometimes must build for a specific OS version or hardware configuration
•Is the right version of the compiler and other software tools specified?
–Different compiler versions may actually generate different code and the compiled component will exhibit different behavior
Configuration Threads
•Identify the version to be built by specifying its attributes (e.g. Build the version with identifier attribute, R3; build the version with status attribute ‘beta test’ etc.)
•Identify the version of the compiler and support tools along with its parameters which is to be used in building a system version
CM Support with an Integrated DB
•CM tools may be implemented using database query and browsing facilities
•Using process information, other tools such as editors / compilers etc. can be integrated and can automate version creation
•Information dissemination of versions and changes con be incorporated in the process information
Database Oriented CM Tools
•Rely on a powerful semantic or object-oriented database
•Store both process and product information
•Provide an integrated set of tools for configuration management
•Integrated with other tools through the database
•Graphical user interface
•Still research prototypes
Summary (1)
•CM is the management of system change to software products
•Effective CM is essential in large software projects
•CM activities include CM planning, change management, system building, and version and release management
•A formal document naming scheme should be established and documents should be managed in a database
Summary (2)
•System releases should be phased with releases fixing problems interleaved with releases offering new functionality
•System building involves assembling components into a system. It is always supported by system building tools such as MAKE
Software Configuration Management
Course Objectives
•What is Configuration Management?
•Why Configuration Management ?
•Functions of Configuration Management:
–Configuration Identification
–Configuration Control
–Configuration Audit
–Configuration Status Accounting
•How to Form a Software Configuration Management Team and a Software Configuration Control Board
Chapter 1
Overview
What is Configuration Management?
•Definition from IEEE – A discipline applying technical and administrative direction and surveillance to:
–Identify and document the functional and physical characteristics of a configuration item
–Control changes to those characteristics
–Record and report change processing and implementation status
–Verify compliance with specified requirements
What is Configuration Mgmt (cont’d)?
•A way to control a product and its components over time
•A formal process that involves:
–Identifying the configuration of software work products and their descriptions at given points in time:
•Applications being developed or maintained
•Development and maintenance tools
–Systematically controlling changes to the configuration
What is Configuration Mgmt (cont’d)?
–Maintaining integrity and traceability of the configuration throughout the life cycle
•SCM is part of the system configuration management process
Source: Adapted from Paulk, M.C., et. al. (CMU/SEI-93-TR-25), p. L2-71.
Exercise
•As you watch the playlet on the next two pages, prepare to discuss the following questions:
–What are the problems?
–What are the underlying causes of the problems?
–What should FFI have done to avoid them?
Common Problems
•Updates are lost; over written.
•Problems and changes are not tracked or related.
•Changes are not related to crashes.
•It is unclear exactly what changes were made.
•It is unclear whether new requirements are in the product.
•It is unclear which version supports which customer.
•The previous version that worked cannot be rebuilt.
•Poor communication – People who might be able to help are not made aware of problems.
Misconceptions
•CM is not required in this program.
•CM is applied after development.
•CM procedures slow down development.
•The document can be changed later.
•We do not have time for change boards.
CM Objectives
Ensure that all project personal know:
–What is supposed to be built
–What is being built
– What has been built
To avoid:
–Delay in schedule
–Cost overruns
–Communication problems
Why Do We Need Configuration Management?
•Because we are good at:
–Creating
–Having Ideas
–Producing Things
–Making Decisions
–Writing Programs
–Changing Programs
–Issuing Instructions
Why Do We Need Configuration Management?
•Because we are not good at:
–Documenting
–Recording Changes
–Keeping History
–Recording Decisions
–Cleaning Up
–Communicating
Four Common Problems in Software Development
•Communication breakdown
•Shared data
•Multiple maintenance
•Simultaneous update
What is Configuration?
•A set of the artifacts or configuration items (intermediate and end-products) that define the system, or a part of the system, within the system’s lifecycle
What is a Configuration Item?
•An aggregation of hardware, software, or both designated for configuration management and treated as a single unit for the configuration management process.
Functions of Software Configuration Management
–Configuration identification
–Configuration control
–Configuration status accounting
–Configuration audit
Subscribe to:
Posts (Atom)