|
|||||||||
Remote Database AdministrationIT Consulting ServicesQuality Assurance TestingSoftware testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software defects and bugs. Software testing can be stated as the process of validating and verifying that a computer program/application/product: Meets the requirements that guided its design and development, Works as expected, Can be implemented with the same characteristics, And satisfies the needs of stakeholders. Software testing, depending on the testing method employed, can be implemented at any time in the development process. Traditionally most of the test effort occurs after the requirements have been defined and the coding process has been completed, but in the Agile approaches most of the test effort is on-going. As such, the methodology of the test is governed by the chosen software development methodology. There are lots of Software Development Lifecycles (SDLCs) out there. The selected SDLC affects everything from requirements gathering to QA and testing. So just how does the selected SDLC affect what you do for QA? In the article by Eric Mumford titled How is QA different for Waterfall, Agile, and XP?, the author looks at each of the methodologies and expresses his opinion on how QA works. I have included excerpts of his opinions below. Waterfall: The QA cycle involves authoring manual tests to match and cover the product requirements, authoring automated scripts to test the product features, updating regression scripts to test the defects that were found in past builds, and to run performance analysis on the build. It [sic] requires larger toolsets to track test cases, testing results, performance testing, and automated scripting. Waterfall requires a heavy investment in tools to get the job done because of the copious amount of work that needs to be tracked. Agile: QA focuses on writing automated scripts, usually using an open source test framework, against the software product as the features are being built. QA prepares a performance test and adjusts the navigation scripts and virtual user balance ratio as necessary based on their estimation of the features in that iteration. When the software is delivered, QA often has only a few days to complete testing rather than weeks or months. The primary focus of the Oracle Database Administrators (DBA) is to build and maintain our customer databases. The main responsibilities of the DBA team include, but are not limited to, keeping the databases secure, available and maintaining their integrity. At least three members of the DBA team share the responsibility, knowledge, and the primary contacts for the following technologies: Installation, configuration, upgrade, and migration Although system administrators are generally responsible for the hardware and operating system on a given server, installation of the database software is typically up to the DBA. This job role requires knowledge of the hardware prerequisites for an efficient database server, and communicating those requirements to the system administrator. The DBA then installs the database software and selects from various options in the product to configure it for the purpose it is being deployed. As new releases and patches are developed, it is the DBA's job to decide which are appropriate and to install them. Finally, if this server is a replacement for an existing one, it is the DBA's job to get the data from the old server to the new one and keep the database as close as possible to the latest version to be supported by Oracle Corporation. Database upgrades, migration Although system administrators are generally responsible for the hardware and operating system on a given server, installation of the database software is typically up to the DBA. This job role requires knowledge of the hardware prerequisites for an efficient database server, and communicating those requirements to the system administrator. The DBA then installs the database software and selects from various options in the product to configure it for the purpose it is being deployed. As new releases and patches are developed, it is the DBA's job to decide which are appropriate and to install them. Finally, if this server is a replacement for an existing one, it is the DBA's job to get the data from the old server to the new one and keep the database as close as possible to the latest version to be supported by Oracle Corporation. Quality Assurance Testing Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to, the process of executing a program or application with the intent of finding software defects and bugs. Software testing can be stated as the process of validating and verifying that a computer program/application/product: meets the requirements that guided its design and development, works as expected, can be implemented with the same characteristics, and satisfies the needs of stakeholders. Software testing, depending on the testing method employed, can be implemented at any time in the development process. Traditionally most of the test effort occurs after the requirements have been defined and the coding process has been completed, but in the Agile approaches most of the test effort is on-going. As such, the methodology of the test is governed by the chosen software development methodology. There are lots of Software Development Lifecycles (SDLCs) out there. The selected SDLC affects everything from requirements gathering to QA and testing. So just how does the selected SDLC affect what you do for QA? In the article by Eric Mumford titled How is QA different for Waterfall, Agile, and XP?, the author looks at each of the methodologies and expresses his opinion on how QA works. I have included excerpts of his opinions below. Waterfall: The QA cycle involves authoring manual tests to match and cover the product requirements, authoring automated scripts to test the product features, updating regression scripts to test the defects that were found in past builds, and to run performance analysis on the build. It [sic] requires larger toolsets to track test cases, testing results, performance testing, and automated scripting. Waterfall requires a heavy investment in tools to get the job done because of the copious amount of work that needs to be tracked. Agile: QA focuses on writing automated scripts, usually using an open source test framework, against the software product as the features are being built. QA prepares a performance test and adjusts the navigation scripts and virtual user balance ratio as necessary based on their estimation of the features in that iteration. When the software is delivered, QA often has only a few days to complete testing rather than weeks or months. The primary focus of the Oracle Database Administrators (DBA) is to build and maintain our customer databases. The main responsibilities of the DBA team include, but are not limited to, keeping the databases secure, available and maintaining their integrity. At least three members of the DBA team share the responsibility, knowledge, and the primary contacts for the following technologies: Installation, configuration, upgrade, and migration Although system administrators are generally responsible for the hardware and operating system on a given server, installation of the database software is typically up to the DBA. This job role requires knowledge of the hardware prerequisites for an efficient database server, and communicating those requirements to the system administrator. The DBA then installs the database software and selects from various options in the product to configure it for the purpose it is being deployed. As new releases and patches are developed, it is the DBA's job to decide which are appropriate and to install them. Finally, if this server is a replacement for an existing one, it is the DBA's job to get the data from the old server to the new one and keep the database as close as possible to the latest version to be supported by Oracle Corporation. Database Monitoring - The DBA is responsible for monitoring the database server on a regular basis to identify bottlenecks. A DBA needs to understand which monitoring tools are available at each of these levels and how to use them to tune the system. Proactive prevention Maintenance is an attitude of designing performance into an application from the start rather than waiting for problems to occur and fixing them. It requires working closely with developers of applications that run against the database to make sure that best practices are followed so good performance will result. It is the DBAs responsibility to write shell scripts and schedule them to monitor the following the database processes: Database availability Database Storage Disk Tables Tablespaces Extents Account and schemas close to expiration RMAN Backups for both Windows and AIX Oracle DataGuard status Database Performance Invalid Oracle Objects Biometrics Ready to Archive Records Auditing Users Logs Users Privileges modifications Data Modified Nightly Processes Status Performance Tuning The DBA is responsible for tuning the databases independently from each other in accordance with the size of the database and applications and for having solutions to remedy the parts of the system that are slowing down processing. Tuning a database server is done on multiple levels. The capacity of the server hardware and the way the operating system is configured can become limiting factors, as can the database software configuration. The way the database is physically laid out on the disk drives and the types of indexing chosen also have an effect. Finally, the way queries against the database are coded can significantly change how fast results are returned. For this reason database tuning must be taken into consideration as: Performance Tuning Write appropriate tuning goals Apply the tuning methodology Balance performance and safety trade-offs Identify common tuning problems Log a performance Service Request with Oracle Support Statistics and Wait Events Identify dynamic performance views useful in tuning Identify key tuning components of the alert log file Identify key tuning components of user trace files Use dynamic performance views to view statistics and wait events Metrics, Alerts, and Baselines View metrics using the metrics history views Create metric thresholds View alerts Create metric baselines Enable adaptive thresholds Using Statspack Install Statspack Create Statspack snapshots Generate Statspack reports Identify the major sections of the Statspack report Using AWR Create and manage AWR snapshots Generate AWR reports Create snapshot sets and compare periods Generate ADDM reports Generate ASH reports Reactive Tuning Use Enterprise Manager pages to identify symptoms Eliminate operating system issues Tuning the Shared Pool Diagnose shared pool problems Size the shared pool Size the reserved area Keep objects in the shared pool Tuning the Buffer Cache Describe the buffer cache architecture Size the buffer cache Resolve common performance issues related to the buffer cache Use common diagnostic indicators to suggest a possible solution Automatic Shared Memory Enable Automatic Shared Memory Set auto-tuned memory parameters Set the manually tuned SGA parameters Use the SGA advisor to set SGA target Checkpoint and Redo Tuning Diagnose checkpoint and redo issues Implement Fast Start MTTR target Monitor performance impact of Fast Start MTTR target Implement multiple database writers Tune the redo chain Size the redo log file Size the redo log buffer Tuning I/O Diagnose database I/O issues Describe the Stripe and Mirror Everything (SAME) concept Explain the benefits of asynchronous I/O Choose appropriate I/O solutions Tuning PGA and Temporary Space Diagnose PGA memory issues Size the PGA memory Diagnose temporary space issues Specify temporary tablespace parameters for efficient operation Tuning Block Space Usage Tune segment space management Convert from dictionary managed tablespaces Convert to automatic segment space management Tune block space management Diagnose and correct row chaining Diagnose table fragmentation Compare characteristics of big file and small file tablespaces |
||||||||